Subversion Repositories SmartDukaan

Rev

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

Rev 24710 Rev 24711
Line 49... Line 49...
49
 
49
 
50
	private static final Logger LOGGER = LogManager.getLogger(RunOnceTasks.class);
50
	private static final Logger LOGGER = LogManager.getLogger(RunOnceTasks.class);
51
 
51
 
52
	@Autowired
52
	@Autowired
53
	private LineItemRepository lineItemRepository;
53
	private LineItemRepository lineItemRepository;
54
	
54
 
55
	@Autowired
55
	@Autowired
56
	private UserRepository userRepository;
56
	private UserRepository userRepository;
57
	
57
 
58
	@Autowired
58
	@Autowired
59
	private WalletService walletService;
59
	private WalletService walletService;
60
 
60
 
61
	@Autowired
61
	@Autowired
62
	private InventoryService inventoryService;
62
	private InventoryService inventoryService;
Line 64... Line 64...
64
	@Autowired
64
	@Autowired
65
	private TransactionService transactionService;
65
	private TransactionService transactionService;
66
 
66
 
67
	@Autowired
67
	@Autowired
68
	private OrderRepository orderRepository;
68
	private OrderRepository orderRepository;
69
	
69
 
70
	//Service for Tertiary/Partner Orders
70
	// Service for Tertiary/Partner Orders
71
	@Autowired
71
	@Autowired
72
	private OrderService orderService;
72
	private OrderService orderService;
73
 
73
 
74
	@Autowired
74
	@Autowired
75
	private FofoStoreRepository fofoStoreRepository;
75
	private FofoStoreRepository fofoStoreRepository;
76
 
76
 
77
	@Autowired
77
	@Autowired
78
	private LineItemImeisRepository lineItemImeisRepository;
78
	private LineItemImeisRepository lineItemImeisRepository;
79
	
79
 
80
	@Autowired
80
	@Autowired
81
	private InventoryItemRepository inventoryItemRepository;
81
	private InventoryItemRepository inventoryItemRepository;
82
 
82
 
83
	@Autowired
83
	@Autowired
84
	private RetailerService retailerService;
84
	private RetailerService retailerService;
85
	
85
 
86
	@Autowired
86
	@Autowired
87
	private SchemeInOutRepository schemeInOutRepository;
87
	private SchemeInOutRepository schemeInOutRepository;
88
	
88
 
89
	@Autowired
89
	@Autowired
90
	private DebitNoteRepository debitNoteRepository;
90
	private DebitNoteRepository debitNoteRepository;
91
 
91
 
92
	@Autowired
92
	@Autowired
93
	private PurchaseRepository purchaseRepository;
93
	private PurchaseRepository purchaseRepository;
94
	
-
 
95
	
94
 
96
	@Autowired
95
	@Autowired
97
	private PriceDropService priceDropService;
96
	private PriceDropService priceDropService;
98
	
97
 
99
	@Autowired
98
	@Autowired
100
	private SchemeService schemeService;
99
	private SchemeService schemeService;
101
	
-
 
102
	
100
 
103
	public void dropCorrection() throws Exception {
101
	public void dropCorrection() throws Exception {
104
		
-
 
105
		walletService.rollbackAmountFromWallet(175128034, 274, 4, WalletReferenceType.PRICE_DROP, "Scheme  differential for Price Drop of Rs.712 on Samsung J6 J600GG, on 01-08-2018 for missing 1pc");
-
 
106
		walletService.rollbackAmountFromWallet(175128034, -259, 4, WalletReferenceType.PRICE_DROP, "Scheme  differential for Price Drop of Rs.712 on Samsung J6 J600GG, on 01-08-2018 for missing 1pc");
-
 
107
		List<InventoryItem> iis =  inventoryItemRepository.selectByIds(new HashSet<>(Arrays.asList(3518, 3516)));
-
 
108
		schemeService.reverseSchemes(iis, 8, "Scheme  differential for Price Drop of Rs.712 on Samsung J6 J600GG, on 01-08-2018. Total 2 item(s)");
-
 
109
		List<InventoryItem> iis1 =  inventoryItemRepository.selectByIds(new HashSet<>(Arrays.asList(3502, 3334,3503)));
-
 
110
		schemeService.reverseSchemes(iis1, 13, "Scheme  differential for Price Drop of Rs.485 on Samsung Galaxy J4 J400FD, on 18-07-2018. Total 3 item(s)");
-
 
111
 
102
 
-
 
103
		walletService.rollbackAmountFromWallet(175128034, 274, 4, WalletReferenceType.PRICE_DROP,
-
 
104
				"Scheme  differential for Price Drop of Rs.712 on Samsung J6 J600GG, on 01-08-2018 for missing 1pc");
-
 
105
		walletService.rollbackAmountFromWallet(175128034, -259, 4, WalletReferenceType.PRICE_DROP,
-
 
106
				"Scheme  differential for Price Drop of Rs.712 on Samsung J6 J600GG, on 01-08-2018 for missing 1pc");
-
 
107
		List<InventoryItem> iis = inventoryItemRepository.selectByIds(new HashSet<>(Arrays.asList(3518, 3516)));
-
 
108
		schemeService.reverseSchemes(iis, 8,
-
 
109
				"Scheme  differential for Price Drop of Rs.712 on Samsung J6 J600GG, on 01-08-2018. Total 2 item(s)");
-
 
110
		List<InventoryItem> iis1 = inventoryItemRepository.selectByIds(new HashSet<>(Arrays.asList(3502, 3334, 3503)));
-
 
111
		schemeService.reverseSchemes(iis1, 13,
-
 
112
				"Scheme  differential for Price Drop of Rs.485 on Samsung Galaxy J4 J400FD, on 18-07-2018. Total 3 item(s)");
-
 
113
 
112
		List<InventoryItem> iis2 =  inventoryItemRepository.selectByIds(new HashSet<>(Arrays.asList(3319)));
114
		List<InventoryItem> iis2 = inventoryItemRepository.selectByIds(new HashSet<>(Arrays.asList(3319)));
-
 
115
		schemeService.reverseSchemes(iis2, 13,
113
		schemeService.reverseSchemes(iis2, 13, "Scheme  differential for Price Drop of Rs.485 on Samsung Galaxy J4 J400FD, on 18-07-2018. Total 1 item(s)");
116
				"Scheme  differential for Price Drop of Rs.485 on Samsung Galaxy J4 J400FD, on 18-07-2018. Total 1 item(s)");
114
	}
117
	}
115
	
118
 
116
	public void schemeRollback() {
119
	public void schemeRollback() {
117
		Map<Integer, Float> fofoIdAmount = new HashMap<>();
120
		Map<Integer, Float> fofoIdAmount = new HashMap<>();
118
		fofoIdAmount.put(175135218, 1942f);
121
		fofoIdAmount.put(175135218, 1942f);
119
		String description = "Price drop/differential rolled out as, they were already returned, Total 2pcs.";
122
		String description = "Price drop/differential rolled out as, they were already returned, Total 2pcs.";
120
		for(Map.Entry<Integer, Float> fofoIdAmountEntry: fofoIdAmount.entrySet()) {
123
		for (Map.Entry<Integer, Float> fofoIdAmountEntry : fofoIdAmount.entrySet()) {
121
			Integer fofoId=fofoIdAmountEntry.getKey();
124
			Integer fofoId = fofoIdAmountEntry.getKey();
122
			Float amount = fofoIdAmountEntry.getValue();
125
			Float amount = fofoIdAmountEntry.getValue();
123
			walletService.rollbackAmountFromWallet(fofoId, amount, 4, WalletReferenceType.PRICE_DROP, description);
126
			walletService.rollbackAmountFromWallet(fofoId, amount, 4, WalletReferenceType.PRICE_DROP, description);
124
		}
127
		}
125
		fofoIdAmount.put(175135218, 438f);
128
		fofoIdAmount.put(175135218, 438f);
126
		for(Map.Entry<Integer, Float> fofoIdAmountEntry: fofoIdAmount.entrySet()) {
129
		for (Map.Entry<Integer, Float> fofoIdAmountEntry : fofoIdAmount.entrySet()) {
127
			Integer fofoId=fofoIdAmountEntry.getKey();
130
			Integer fofoId = fofoIdAmountEntry.getKey();
128
			Float amount = fofoIdAmountEntry.getValue();
131
			Float amount = fofoIdAmountEntry.getValue();
129
			walletService.rollbackAmountFromWallet(fofoId, amount, 4, WalletReferenceType.PRICE_DROP, description);
132
			walletService.rollbackAmountFromWallet(fofoId, amount, 4, WalletReferenceType.PRICE_DROP, description);
130
		}
133
		}
131
	}
134
	}
132
 
135
 
Line 190... Line 193...
190
	}
193
	}
191
 
194
 
192
	public void cancelOrder(List<String> invoiceNumbers) throws Exception {
195
	public void cancelOrder(List<String> invoiceNumbers) throws Exception {
193
		orderService.cancelOrder(invoiceNumbers);
196
		orderService.cancelOrder(invoiceNumbers);
194
	}
197
	}
195
	
-
 
196
	
198
 
197
	public void migratePurchase() {
199
	public void migratePurchase() {
198
		List<Purchase> purchases = purchaseRepository.selectPurchaseAllPurchasesLessThanZero();
200
		List<Purchase> purchases = purchaseRepository.selectPurchaseAllPurchasesLessThanZero();
199
		System.out.printf("Total Purchases count is %s", purchases.size());
201
		System.out.printf("Total Purchases count is %s", purchases.size());
200
		for(Purchase purchase : purchases) {
202
		for (Purchase purchase : purchases) {
201
			List<InventoryItem> inventoryItems =  inventoryItemRepository.selectByPurchaseId(purchase.getId());
203
			List<InventoryItem> inventoryItems = inventoryItemRepository.selectByPurchaseId(purchase.getId());
202
			Map<Integer, List<InventoryItem>> itemIdInventoryMap = inventoryItems.stream().collect(
204
			Map<Integer, List<InventoryItem>> itemIdInventoryMap = inventoryItems.stream()
203
					Collectors.groupingBy(InventoryItem::getItemId));
205
					.collect(Collectors.groupingBy(InventoryItem::getItemId));
204
			List<Order> orders = orderRepository.selectByAirwayBillOrInvoiceNumber(purchase.getPurchaseReference(), purchase.getFofoId());
206
			List<Order> orders = orderRepository.selectByAirwayBillOrInvoiceNumber(purchase.getPurchaseReference(),
-
 
207
					purchase.getFofoId());
205
			Map<Integer, Integer> ourSaleItemQtyMap = orders.stream().collect(Collectors.groupingBy(x->x.getLineItem().getItemId(), 
208
			Map<Integer, Integer> ourSaleItemQtyMap = orders.stream().collect(Collectors.groupingBy(
206
					Collectors.summingInt(x->x.getLineItem().getQuantity())));
209
					x -> x.getLineItem().getItemId(), Collectors.summingInt(x -> x.getLineItem().getQuantity())));
207
			Map<Integer, Integer> theirPurchaseItemQtyMap = inventoryItems.stream().collect(Collectors.groupingBy(InventoryItem::getItemId, 
210
			Map<Integer, Integer> theirPurchaseItemQtyMap = inventoryItems.stream().collect(Collectors
208
					Collectors.summingInt(InventoryItem::getInitialQuantity)));
211
					.groupingBy(InventoryItem::getItemId, Collectors.summingInt(InventoryItem::getInitialQuantity)));
209
			for (Map.Entry<Integer, Integer> itemQtyEntry : theirPurchaseItemQtyMap.entrySet()) {
212
			for (Map.Entry<Integer, Integer> itemQtyEntry : theirPurchaseItemQtyMap.entrySet()) {
210
				if(!ourSaleItemQtyMap.containsKey(itemQtyEntry.getKey())) {
213
				if (!ourSaleItemQtyMap.containsKey(itemQtyEntry.getKey())) {
211
					LOGGER.info("Cannot find in Invoice {} item {}", purchase.getPurchaseReference(), itemQtyEntry.getKey());
214
					LOGGER.info("Cannot find in Invoice {} item {}", purchase.getPurchaseReference(),
-
 
215
							itemQtyEntry.getKey());
212
					continue;
216
					continue;
213
				}
217
				}
214
				int ourSale = ourSaleItemQtyMap.get(itemQtyEntry.getKey());
218
				int ourSale = ourSaleItemQtyMap.get(itemQtyEntry.getKey());
215
				if(itemQtyEntry.getValue() - ourSale > 0) {
219
				if (itemQtyEntry.getValue() - ourSale > 0) {
216
					int quantityToReduce = itemQtyEntry.getValue() - ourSale;
220
					int quantityToReduce = itemQtyEntry.getValue() - ourSale;
217
					List<InventoryItem> itemIis = itemIdInventoryMap.get(itemQtyEntry.getKey());
221
					List<InventoryItem> itemIis = itemIdInventoryMap.get(itemQtyEntry.getKey());
-
 
222
					if (itemIdInventoryMap != null) {
218
					for(InventoryItem ii : itemIis) {
223
						for (InventoryItem ii : itemIis) {
-
 
224
							if (ii.getGoodQuantity() >= quantityToReduce
219
						if(ii.getGoodQuantity() >= quantityToReduce && ii.getInitialQuantity() > quantityToReduce) {
225
									&& ii.getInitialQuantity() > quantityToReduce) {
220
							LOGGER.info("Invoice {} item {} can be reduced to {}", purchase.getPurchaseReference(), ii.getItemId(), ii.getGoodQuantity() - quantityToReduce);
226
								LOGGER.info("Invoice {} item {} can be reduced to {}", purchase.getPurchaseReference(),
-
 
227
										ii.getItemId(), ii.getGoodQuantity() - quantityToReduce);
-
 
228
							}
221
						}
229
						}
222
					}
230
					}
223
				}
231
				}
224
			}
232
			}
225
		}
233
		}