| Line 21... |
Line 21... |
| 21 |
import com.spice.profitmandi.common.util.StringUtils;
|
21 |
import com.spice.profitmandi.common.util.StringUtils;
|
| 22 |
import com.spice.profitmandi.dao.entity.catalog.Item;
|
22 |
import com.spice.profitmandi.dao.entity.catalog.Item;
|
| 23 |
import com.spice.profitmandi.dao.entity.catalog.RetailerScheme;
|
23 |
import com.spice.profitmandi.dao.entity.catalog.RetailerScheme;
|
| 24 |
import com.spice.profitmandi.dao.entity.catalog.Scheme;
|
24 |
import com.spice.profitmandi.dao.entity.catalog.Scheme;
|
| 25 |
import com.spice.profitmandi.dao.entity.fofo.FofoLineItem;
|
25 |
import com.spice.profitmandi.dao.entity.fofo.FofoLineItem;
|
| - |
|
26 |
import com.spice.profitmandi.dao.entity.fofo.FofoOrder;
|
| 26 |
import com.spice.profitmandi.dao.entity.fofo.FofoOrderItem;
|
27 |
import com.spice.profitmandi.dao.entity.fofo.FofoOrderItem;
|
| 27 |
import com.spice.profitmandi.dao.entity.fofo.InventoryItem;
|
28 |
import com.spice.profitmandi.dao.entity.fofo.InventoryItem;
|
| 28 |
import com.spice.profitmandi.dao.entity.fofo.Purchase;
|
29 |
import com.spice.profitmandi.dao.entity.fofo.Purchase;
|
| 29 |
import com.spice.profitmandi.dao.entity.fofo.SchemeInOut;
|
30 |
import com.spice.profitmandi.dao.entity.fofo.SchemeInOut;
|
| 30 |
import com.spice.profitmandi.dao.entity.fofo.SchemeItem;
|
31 |
import com.spice.profitmandi.dao.entity.fofo.SchemeItem;
|
| Line 35... |
Line 36... |
| 35 |
import com.spice.profitmandi.dao.repository.catalog.RetailerSchemeRepository;
|
36 |
import com.spice.profitmandi.dao.repository.catalog.RetailerSchemeRepository;
|
| 36 |
import com.spice.profitmandi.dao.repository.catalog.SchemeRepository;
|
37 |
import com.spice.profitmandi.dao.repository.catalog.SchemeRepository;
|
| 37 |
import com.spice.profitmandi.dao.repository.dtr.RetailerRepository;
|
38 |
import com.spice.profitmandi.dao.repository.dtr.RetailerRepository;
|
| 38 |
import com.spice.profitmandi.dao.repository.fofo.FofoLineItemRepository;
|
39 |
import com.spice.profitmandi.dao.repository.fofo.FofoLineItemRepository;
|
| 39 |
import com.spice.profitmandi.dao.repository.fofo.FofoOrderItemRepository;
|
40 |
import com.spice.profitmandi.dao.repository.fofo.FofoOrderItemRepository;
|
| - |
|
41 |
import com.spice.profitmandi.dao.repository.fofo.FofoOrderRepository;
|
| 40 |
import com.spice.profitmandi.dao.repository.fofo.InventoryItemRepository;
|
42 |
import com.spice.profitmandi.dao.repository.fofo.InventoryItemRepository;
|
| 41 |
import com.spice.profitmandi.dao.repository.fofo.PurchaseRepository;
|
43 |
import com.spice.profitmandi.dao.repository.fofo.PurchaseRepository;
|
| 42 |
import com.spice.profitmandi.dao.repository.fofo.SchemeInOutRepository;
|
44 |
import com.spice.profitmandi.dao.repository.fofo.SchemeInOutRepository;
|
| 43 |
import com.spice.profitmandi.dao.repository.fofo.SchemeItemRepository;
|
45 |
import com.spice.profitmandi.dao.repository.fofo.SchemeItemRepository;
|
| 44 |
import com.spice.profitmandi.dao.repository.transaction.OrderRepository;
|
46 |
import com.spice.profitmandi.dao.repository.transaction.OrderRepository;
|
| 45 |
import com.spice.profitmandi.service.inventory.OrderService;
|
47 |
import com.spice.profitmandi.service.order.OrderService;
|
| 46 |
import com.spice.profitmandi.service.wallet.WalletService;
|
48 |
import com.spice.profitmandi.service.wallet.WalletService;
|
| 47 |
|
49 |
|
| 48 |
import in.shop2020.model.v1.catalog.ItemType;
|
50 |
import in.shop2020.model.v1.catalog.ItemType;
|
| 49 |
import in.shop2020.model.v1.order.WalletReferenceType;
|
51 |
import in.shop2020.model.v1.order.WalletReferenceType;
|
| 50 |
|
52 |
|
| Line 90... |
Line 92... |
| 90 |
private PurchaseRepository purchaseRepository;
|
92 |
private PurchaseRepository purchaseRepository;
|
| 91 |
|
93 |
|
| 92 |
@Autowired
|
94 |
@Autowired
|
| 93 |
private OrderRepository orderRepository;
|
95 |
private OrderRepository orderRepository;
|
| 94 |
|
96 |
|
| - |
|
97 |
@Autowired
|
| - |
|
98 |
private FofoOrderRepository fofoOrderRepository;
|
| - |
|
99 |
|
| 95 |
@Override
|
100 |
@Override
|
| 96 |
public void saveScheme(int creatorId, CreateSchemeRequest createSchemeRequest) throws ProfitMandiBusinessException {
|
101 |
public void saveScheme(int creatorId, CreateSchemeRequest createSchemeRequest) throws ProfitMandiBusinessException {
|
| 97 |
|
102 |
|
| 98 |
this.validateCreateSchemeRequest(createSchemeRequest);
|
103 |
this.validateCreateSchemeRequest(createSchemeRequest);
|
| 99 |
|
104 |
|
| Line 503... |
Line 508... |
| 503 |
}
|
508 |
}
|
| 504 |
return fofoOrderItemSchemsMap;
|
509 |
return fofoOrderItemSchemsMap;
|
| 505 |
}
|
510 |
}
|
| 506 |
|
511 |
|
| 507 |
@Override
|
512 |
@Override
|
| 508 |
public float processSchemeIn(int purchaseId, int retailerId) throws ProfitMandiBusinessException {
|
513 |
public void processSchemeIn(int purchaseId, int retailerId) throws ProfitMandiBusinessException {
|
| 509 |
Purchase purchase = purchaseRepository.selectByIdAndFofoId(purchaseId, retailerId);
|
514 |
Purchase purchase = purchaseRepository.selectByIdAndFofoId(purchaseId, retailerId);
|
| - |
|
515 |
if(purchase.getCompleteTimestamp() != null) {
|
| 510 |
List<Order> orders = orderRepository.selectByAirwayBillOrInvoiceNumber(purchase.getPurchaseReference(), retailerId);
|
516 |
List<Order> orders = orderRepository.selectByAirwayBillOrInvoiceNumber(purchase.getPurchaseReference(), retailerId);
|
| 511 |
LocalDateTime billingTimestamp = LocalDateTime.now();
|
517 |
LocalDateTime billingTimestamp = LocalDateTime.now();
|
| 512 |
if(!orders.isEmpty()){
|
518 |
if(!orders.isEmpty()){
|
| 513 |
billingTimestamp = orders.get(0).getBillingTimestamp();
|
519 |
billingTimestamp = orders.get(0).getBillingTimestamp();
|
| 514 |
}
|
520 |
}
|
| 515 |
List<Scheme> schemes = schemeRepository.selectActiveAll(SchemeType.IN, billingTimestamp);
|
521 |
List<Scheme> schemes = schemeRepository.selectActiveAll(SchemeType.IN, billingTimestamp);
|
| 516 |
float totalCashback = 0;
|
522 |
float totalCashback = 0;
|
| 517 |
if(schemes.isEmpty()){
|
523 |
if(schemes.isEmpty()){
|
| 518 |
return 0;
|
524 |
return;
|
| 519 |
}
|
525 |
}
|
| 520 |
List<InventoryItem> inventoryItems = inventoryItemRepository.selectByPurchaseId(purchaseId);
|
526 |
List<InventoryItem> inventoryItems = inventoryItemRepository.selectByPurchaseId(purchaseId);
|
| 521 |
LOGGER.info("SchemeIn filter inventoryItems {}", inventoryItems);
|
527 |
LOGGER.info("SchemeIn filter inventoryItems {}", inventoryItems);
|
| 522 |
|
528 |
|
| 523 |
Map<InventoryItem, Set<Scheme>> inventoryItemSchemesMap = this.toInventoryItemSchemesMap(schemes, inventoryItems);
|
529 |
Map<InventoryItem, Set<Scheme>> inventoryItemSchemesMap = this.toInventoryItemSchemesMap(schemes, inventoryItems);
|
| 524 |
|
530 |
|
| 525 |
if(inventoryItemSchemesMap.isEmpty()){
|
531 |
if(inventoryItemSchemesMap.isEmpty()){
|
| 526 |
return 0;
|
532 |
return;
|
| 527 |
}
|
533 |
}
|
| 528 |
Map<InventoryItem, Set<Scheme>> notAllInventoryItemSchemesMap = new HashMap<>();
|
534 |
Map<InventoryItem, Set<Scheme>> notAllInventoryItemSchemesMap = new HashMap<>();
|
| 529 |
Map<InventoryItem, Set<Scheme>> allInventoryItemSchemesMap = new HashMap<>();
|
535 |
Map<InventoryItem, Set<Scheme>> allInventoryItemSchemesMap = new HashMap<>();
|
| 530 |
Set<Integer> itemIds = new HashSet<>();
|
536 |
Set<Integer> itemIds = new HashSet<>();
|
| 531 |
|
537 |
|
| 532 |
for(Map.Entry<InventoryItem, Set<Scheme>> inventoryItemSchemesEntry : inventoryItemSchemesMap.entrySet()){
|
538 |
for(Map.Entry<InventoryItem, Set<Scheme>> inventoryItemSchemesEntry : inventoryItemSchemesMap.entrySet()){
|
| 533 |
Set<Scheme> notAllSchemes = new HashSet<>();
|
539 |
Set<Scheme> notAllSchemes = new HashSet<>();
|
| 534 |
Set<Scheme> allSchemes = new HashSet<>();
|
540 |
Set<Scheme> allSchemes = new HashSet<>();
|
| 535 |
for(Scheme scheme : inventoryItemSchemesEntry.getValue()){
|
541 |
for(Scheme scheme : inventoryItemSchemesEntry.getValue()){
|
| 536 |
if(!scheme.isRetailerAll()){
|
542 |
if(!scheme.isRetailerAll()){
|
| 537 |
notAllSchemes.add(scheme);
|
543 |
notAllSchemes.add(scheme);
|
| 538 |
}else{
|
544 |
}else{
|
| 539 |
allSchemes.add(scheme);
|
545 |
allSchemes.add(scheme);
|
| - |
|
546 |
}
|
| 540 |
}
|
547 |
}
|
| - |
|
548 |
notAllInventoryItemSchemesMap.put(inventoryItemSchemesEntry.getKey(), notAllSchemes);
|
| - |
|
549 |
allInventoryItemSchemesMap.put(inventoryItemSchemesEntry.getKey(), allSchemes);
|
| - |
|
550 |
itemIds.add(inventoryItemSchemesEntry.getKey().getItemId());
|
| 541 |
}
|
551 |
}
|
| 542 |
notAllInventoryItemSchemesMap.put(inventoryItemSchemesEntry.getKey(), notAllSchemes);
|
- |
|
| 543 |
allInventoryItemSchemesMap.put(inventoryItemSchemesEntry.getKey(), allSchemes);
|
- |
|
| 544 |
itemIds.add(inventoryItemSchemesEntry.getKey().getItemId());
|
- |
|
| 545 |
}
|
552 |
|
| 546 |
|
- |
|
| 547 |
List<Item> items = itemRepository.selectByIds(itemIds);
|
553 |
List<Item> items = itemRepository.selectByIds(itemIds);
|
| 548 |
Map<Integer, String> itemStringMap = this.toItemStringMap(items);
|
554 |
Map<Integer, String> itemStringMap = this.toItemStringMap(items);
|
| 549 |
|
555 |
|
| 550 |
Map<Integer, Float> itemIdCashbackMap = new HashMap<>();
|
556 |
Map<Integer, Float> itemIdCashbackMap = new HashMap<>();
|
| 551 |
Map<Integer, Integer> itemIdCashbackCountMap = new HashMap<>();
|
557 |
Map<Integer, Integer> itemIdCashbackCountMap = new HashMap<>();
|
| 552 |
|
558 |
|
| 553 |
for(Map.Entry<InventoryItem, Set<Scheme>> allInventoryItemSchemesEntry : allInventoryItemSchemesMap.entrySet()){
|
559 |
for(Map.Entry<InventoryItem, Set<Scheme>> allInventoryItemSchemesEntry : allInventoryItemSchemesMap.entrySet()){
|
| 554 |
for(Scheme scheme : allInventoryItemSchemesEntry.getValue()){
|
560 |
for(Scheme scheme : allInventoryItemSchemesEntry.getValue()){
|
| 555 |
InventoryItem inventoryItem = allInventoryItemSchemesEntry.getKey();
|
561 |
InventoryItem inventoryItem = allInventoryItemSchemesEntry.getKey();
|
| 556 |
float cashback = this.createSchemeInOut(scheme, inventoryItem);
|
562 |
float cashback = this.createSchemeInOut(scheme, inventoryItem);
|
| 557 |
if(!itemIdCashbackMap.containsKey(inventoryItem.getItemId())){
|
563 |
if(!itemIdCashbackMap.containsKey(inventoryItem.getItemId())){
|
| 558 |
itemIdCashbackMap.put(inventoryItem.getItemId(), cashback);
|
564 |
itemIdCashbackMap.put(inventoryItem.getItemId(), cashback);
|
| 559 |
itemIdCashbackCountMap.put(inventoryItem.getItemId(), 1);
|
565 |
itemIdCashbackCountMap.put(inventoryItem.getItemId(), 1);
|
| 560 |
}else{
|
566 |
}else{
|
| 561 |
itemIdCashbackMap.put(inventoryItem.getItemId(), itemIdCashbackMap.get(inventoryItem.getItemId()) + cashback);
|
567 |
itemIdCashbackMap.put(inventoryItem.getItemId(), itemIdCashbackMap.get(inventoryItem.getItemId()) + cashback);
|
| 562 |
itemIdCashbackCountMap.put(inventoryItem.getItemId(), itemIdCashbackCountMap.get(inventoryItem.getItemId()) + 1);
|
568 |
itemIdCashbackCountMap.put(inventoryItem.getItemId(), itemIdCashbackCountMap.get(inventoryItem.getItemId()) + 1);
|
| - |
|
569 |
}
|
| - |
|
570 |
totalCashback = totalCashback + cashback;
|
| 563 |
}
|
571 |
}
|
| 564 |
totalCashback = totalCashback + cashback;
|
- |
|
| 565 |
}
|
572 |
}
|
| 566 |
}
|
- |
|
| 567 |
|
- |
|
| 568 |
//Map<Integer, Float> itemIdCashbackMap = new HashMap<>();
|
- |
|
| 569 |
|
- |
|
| 570 |
|
573 |
|
| - |
|
574 |
//Map<Integer, Float> itemIdCashbackMap = new HashMap<>();
|
| - |
|
575 |
|
| - |
|
576 |
|
| 571 |
Set<Integer> schemeIds = this.inventoryItemSchemesMapToSchemeIds(notAllInventoryItemSchemesMap);
|
577 |
Set<Integer> schemeIds = this.inventoryItemSchemesMapToSchemeIds(notAllInventoryItemSchemesMap);
|
| 572 |
if(!schemeIds.isEmpty()){
|
578 |
if(!schemeIds.isEmpty()){
|
| 573 |
List<Integer> foundSchemeIds = retailerSchemeRepository.selectSchemeIds(schemeIds, retailerId);
|
579 |
List<Integer> foundSchemeIds = retailerSchemeRepository.selectSchemeIds(schemeIds, retailerId);
|
| 574 |
for(Map.Entry<InventoryItem, Set<Scheme>> notAllInventoryItemSchemesEntry : notAllInventoryItemSchemesMap.entrySet()){
|
580 |
for(Map.Entry<InventoryItem, Set<Scheme>> notAllInventoryItemSchemesEntry : notAllInventoryItemSchemesMap.entrySet()){
|
| 575 |
for(Scheme scheme : notAllInventoryItemSchemesEntry.getValue()){
|
581 |
for(Scheme scheme : notAllInventoryItemSchemesEntry.getValue()){
|
| 576 |
if(foundSchemeIds.contains(scheme.getId())){
|
582 |
if(foundSchemeIds.contains(scheme.getId())){
|
| 577 |
InventoryItem inventoryItem = notAllInventoryItemSchemesEntry.getKey();
|
583 |
InventoryItem inventoryItem = notAllInventoryItemSchemesEntry.getKey();
|
| 578 |
float cashback = this.createSchemeInOut(scheme, inventoryItem);
|
584 |
float cashback = this.createSchemeInOut(scheme, inventoryItem);
|
| 579 |
if(!itemIdCashbackMap.containsKey(inventoryItem.getItemId())){
|
585 |
if(!itemIdCashbackMap.containsKey(inventoryItem.getItemId())){
|
| 580 |
itemIdCashbackMap.put(inventoryItem.getItemId(), cashback);
|
586 |
itemIdCashbackMap.put(inventoryItem.getItemId(), cashback);
|
| 581 |
itemIdCashbackCountMap.put(inventoryItem.getItemId(), 1);
|
587 |
itemIdCashbackCountMap.put(inventoryItem.getItemId(), 1);
|
| 582 |
}else{
|
588 |
}else{
|
| 583 |
itemIdCashbackMap.put(inventoryItem.getItemId(), itemIdCashbackMap.get(inventoryItem.getItemId()) + cashback);
|
589 |
itemIdCashbackMap.put(inventoryItem.getItemId(), itemIdCashbackMap.get(inventoryItem.getItemId()) + cashback);
|
| 584 |
itemIdCashbackCountMap.put(inventoryItem.getItemId(), itemIdCashbackCountMap.get(inventoryItem.getItemId()) + 1);
|
590 |
itemIdCashbackCountMap.put(inventoryItem.getItemId(), itemIdCashbackCountMap.get(inventoryItem.getItemId()) + 1);
|
| - |
|
591 |
}
|
| - |
|
592 |
totalCashback = totalCashback + cashback;
|
| 585 |
}
|
593 |
}
|
| 586 |
totalCashback = totalCashback + cashback;
|
- |
|
| 587 |
}
|
594 |
}
|
| 588 |
}
|
595 |
}
|
| 589 |
}
|
596 |
}
|
| - |
|
597 |
for(Map.Entry<Integer, Float> itemIdCashbackEntry : itemIdCashbackMap.entrySet()){
|
| - |
|
598 |
walletService.addAmountToWallet(retailerId, purchaseId, WalletReferenceType.SCHEME_IN,
|
| - |
|
599 |
itemIdCashbackCountMap.get(itemIdCashbackEntry.getKey())+"pcs of item "+
|
| - |
|
600 |
itemStringMap.get(itemIdCashbackEntry.getKey()) +
|
| - |
|
601 |
" Added for SCHEME_IN against invoiceNumber ["+purchase.getPurchaseReference()+"]", totalCashback);
|
| - |
|
602 |
}
|
| - |
|
603 |
purchase.setCashback(totalCashback);
|
| - |
|
604 |
purchaseRepository.persist(purchase);
|
| 590 |
}
|
605 |
}
|
| 591 |
for(Map.Entry<Integer, Float> itemIdCashbackEntry : itemIdCashbackMap.entrySet()){
|
- |
|
| 592 |
walletService.addAmountToWallet(retailerId, purchaseId, WalletReferenceType.SCHEME_IN,
|
- |
|
| 593 |
itemIdCashbackCountMap.get(itemIdCashbackEntry.getKey())+"pcs of item "+
|
- |
|
| 594 |
itemStringMap.get(itemIdCashbackEntry.getKey()) +
|
- |
|
| 595 |
" Added for SCHEME_IN against invoiceNumber ["+purchase.getPurchaseReference()+"]", totalCashback);
|
- |
|
| 596 |
}
|
- |
|
| 597 |
return totalCashback;
|
- |
|
| 598 |
}
|
606 |
}
|
| 599 |
|
607 |
|
| 600 |
private float createSchemeInOut(Scheme scheme, InventoryItem inventoryItem){
|
608 |
private float createSchemeInOut(Scheme scheme, InventoryItem inventoryItem){
|
| 601 |
float amount = this.getAmount(inventoryItem, scheme);
|
609 |
float amount = this.getAmount(inventoryItem, scheme);
|
| 602 |
SchemeInOut schemeInOut = new SchemeInOut();
|
610 |
SchemeInOut schemeInOut = new SchemeInOut();
|
| Line 639... |
Line 647... |
| 639 |
}
|
647 |
}
|
| 640 |
return inventoryItemIds;
|
648 |
return inventoryItemIds;
|
| 641 |
}
|
649 |
}
|
| 642 |
|
650 |
|
| 643 |
@Override
|
651 |
@Override
|
| 644 |
public float processSchemeOut(int fofoOrderId, int retailerId) throws ProfitMandiBusinessException {
|
652 |
public void processSchemeOut(int fofoOrderId, int retailerId) throws ProfitMandiBusinessException {
|
| - |
|
653 |
FofoOrder fofoOrder = fofoOrderRepository.selectByFofoIdAndOrderId(retailerId, fofoOrderId);
|
| 645 |
List<Scheme> schemes = schemeRepository.selectActiveAll(SchemeType.OUT, LocalDateTime.now());
|
654 |
List<Scheme> schemes = schemeRepository.selectActiveAll(SchemeType.OUT, LocalDateTime.now());
|
| 646 |
LOGGER.info("Active Schemes {}", schemes);
|
655 |
LOGGER.info("Active Schemes {}", schemes);
|
| 647 |
float totalCashback = 0;
|
656 |
float totalCashback = 0;
|
| 648 |
if(schemes.isEmpty()){
|
657 |
if(schemes.isEmpty()){
|
| 649 |
return 0;
|
658 |
return;
|
| 650 |
}
|
659 |
}
|
| 651 |
|
660 |
|
| 652 |
List<FofoOrderItem> fofoOrderItems = orderService.getByOrderId(fofoOrderId);
|
661 |
List<FofoOrderItem> fofoOrderItems = orderService.getByOrderId(fofoOrderId);
|
| 653 |
//LOGGER.info("fofoOrderItems {}", fofoOrderItems);
|
662 |
//LOGGER.info("fofoOrderItems {}", fofoOrderItems);
|
| 654 |
|
663 |
|
| 655 |
Map<FofoOrderItem, Set<Scheme>> fofoOrderItemSchemesMap = this.toFofoOrderItemSchemesMap(schemes, fofoOrderItems);
|
664 |
Map<FofoOrderItem, Set<Scheme>> fofoOrderItemSchemesMap = this.toFofoOrderItemSchemesMap(schemes, fofoOrderItems);
|
| 656 |
|
665 |
|
| 657 |
LOGGER.info("fofoOrderItemSchemesMap {}", fofoOrderItemSchemesMap);
|
666 |
LOGGER.info("fofoOrderItemSchemesMap {}", fofoOrderItemSchemesMap);
|
| 658 |
|
667 |
|
| 659 |
if(fofoOrderItemSchemesMap.isEmpty()){
|
668 |
if(fofoOrderItemSchemesMap.isEmpty()){
|
| 660 |
return 0;
|
669 |
return;
|
| 661 |
}
|
670 |
}
|
| 662 |
|
671 |
|
| 663 |
Set<Integer> inventoryItemIds = this.toInventoryItemIds(fofoOrderItemSchemesMap.keySet());
|
672 |
Set<Integer> inventoryItemIds = this.toInventoryItemIds(fofoOrderItemSchemesMap.keySet());
|
| 664 |
|
673 |
|
| 665 |
List<InventoryItem> inventoryItems = inventoryItemRepository.selectByIds(inventoryItemIds);
|
674 |
List<InventoryItem> inventoryItems = inventoryItemRepository.selectByIds(inventoryItemIds);
|
| Line 708... |
Line 717... |
| 708 |
}
|
717 |
}
|
| 709 |
}
|
718 |
}
|
| 710 |
}
|
719 |
}
|
| 711 |
if(totalCashback > 0){
|
720 |
if(totalCashback > 0){
|
| 712 |
walletService.addAmountToWallet(retailerId, fofoOrderId, WalletReferenceType.SCHEME_OUT, "Added for SCHEME_OUT", totalCashback);
|
721 |
walletService.addAmountToWallet(retailerId, fofoOrderId, WalletReferenceType.SCHEME_OUT, "Added for SCHEME_OUT", totalCashback);
|
| - |
|
722 |
fofoOrder.setCashback(totalCashback);
|
| - |
|
723 |
fofoOrderRepository.persist(fofoOrder);
|
| 713 |
}
|
724 |
}
|
| 714 |
return totalCashback;
|
- |
|
| 715 |
}
|
725 |
}
|
| 716 |
|
726 |
|
| 717 |
}
|
727 |
}
|