Subversion Repositories SmartDukaan

Rev

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

Rev 24240 Rev 24241
Line 8... Line 8...
8
import java.time.LocalDateTime;
8
import java.time.LocalDateTime;
9
import java.time.temporal.ChronoUnit;
9
import java.time.temporal.ChronoUnit;
10
import java.util.ArrayList;
10
import java.util.ArrayList;
11
import java.util.Arrays;
11
import java.util.Arrays;
12
import java.util.HashMap;
12
import java.util.HashMap;
-
 
13
import java.util.HashSet;
13
import java.util.List;
14
import java.util.List;
14
import java.util.Map;
15
import java.util.Map;
15
import java.util.stream.Collectors;
16
import java.util.stream.Collectors;
16
 
17
 
17
import javax.mail.MessagingException;
18
import javax.mail.MessagingException;
Line 48... Line 49...
48
import com.spice.profitmandi.dao.entity.fofo.FofoOrder;
49
import com.spice.profitmandi.dao.entity.fofo.FofoOrder;
49
import com.spice.profitmandi.dao.entity.fofo.FofoStore;
50
import com.spice.profitmandi.dao.entity.fofo.FofoStore;
50
import com.spice.profitmandi.dao.entity.fofo.PartnerTargetDetails;
51
import com.spice.profitmandi.dao.entity.fofo.PartnerTargetDetails;
51
import com.spice.profitmandi.dao.entity.fofo.Purchase;
52
import com.spice.profitmandi.dao.entity.fofo.Purchase;
52
import com.spice.profitmandi.dao.entity.fofo.SaleHeadDetails;
53
import com.spice.profitmandi.dao.entity.fofo.SaleHeadDetails;
-
 
54
import com.spice.profitmandi.dao.entity.fofo.SchemeInOut;
53
import com.spice.profitmandi.dao.entity.transaction.Order;
55
import com.spice.profitmandi.dao.entity.transaction.Order;
-
 
56
import com.spice.profitmandi.dao.enumuration.catalog.AmountType;
-
 
57
import com.spice.profitmandi.dao.repository.catalog.SchemeRepository;
54
import com.spice.profitmandi.dao.repository.dtr.DailyRechargeRepository;
58
import com.spice.profitmandi.dao.repository.dtr.DailyRechargeRepository;
55
import com.spice.profitmandi.dao.repository.dtr.FofoStoreRepository;
59
import com.spice.profitmandi.dao.repository.dtr.FofoStoreRepository;
56
import com.spice.profitmandi.dao.repository.dtr.RechargeProviderCreditWalletHistoryRepository;
60
import com.spice.profitmandi.dao.repository.dtr.RechargeProviderCreditWalletHistoryRepository;
57
import com.spice.profitmandi.dao.repository.dtr.RechargeProviderRepository;
61
import com.spice.profitmandi.dao.repository.dtr.RechargeProviderRepository;
58
import com.spice.profitmandi.dao.repository.dtr.RechargeTransactionRepository;
62
import com.spice.profitmandi.dao.repository.dtr.RechargeTransactionRepository;
59
import com.spice.profitmandi.dao.repository.fofo.FofoOrderRepository;
63
import com.spice.profitmandi.dao.repository.fofo.FofoOrderRepository;
60
import com.spice.profitmandi.dao.repository.fofo.PartnerTargetRepository;
64
import com.spice.profitmandi.dao.repository.fofo.PartnerTargetRepository;
61
import com.spice.profitmandi.dao.repository.fofo.PurchaseRepository;
65
import com.spice.profitmandi.dao.repository.fofo.PurchaseRepository;
-
 
66
import com.spice.profitmandi.dao.repository.fofo.SchemeInOutRepository;
62
import com.spice.profitmandi.dao.repository.transaction.OrderRepository;
67
import com.spice.profitmandi.dao.repository.transaction.OrderRepository;
63
import com.spice.profitmandi.service.inventory.InventoryService;
68
import com.spice.profitmandi.service.inventory.InventoryService;
64
import com.spice.profitmandi.service.recharge.provider.OxigenRechargeProviderService;
69
import com.spice.profitmandi.service.recharge.provider.OxigenRechargeProviderService;
65
import com.spice.profitmandi.service.recharge.provider.ThinkWalnutDigitalRechargeProviderService;
70
import com.spice.profitmandi.service.recharge.provider.ThinkWalnutDigitalRechargeProviderService;
66
import com.spice.profitmandi.service.scheme.SchemeService;
71
import com.spice.profitmandi.service.scheme.SchemeService;
Line 116... Line 121...
116
 
121
 
117
	@Autowired
122
	@Autowired
118
	private SchemeService schemeService;
123
	private SchemeService schemeService;
119
 
124
 
120
	@Autowired
125
	@Autowired
-
 
126
	private SchemeInOutRepository schemeInOutRepository;
-
 
127
 
-
 
128
	@Autowired
121
	private RechargeTransactionRepository rechargeTransactionRepository;
129
	private RechargeTransactionRepository rechargeTransactionRepository;
122
 
130
 
123
	@Autowired
131
	@Autowired
124
	private RechargeProviderCreditWalletHistoryRepository rechargeProviderCreditWalletHistoryRepository;
132
	private RechargeProviderCreditWalletHistoryRepository rechargeProviderCreditWalletHistoryRepository;
125
 
133
 
Line 158... Line 166...
158
 
166
 
159
	@Autowired
167
	@Autowired
160
	private OrderRepository orderRepository;
168
	private OrderRepository orderRepository;
161
 
169
 
162
	@Autowired
170
	@Autowired
-
 
171
	private SchemeRepository schemeRepository;
-
 
172
 
-
 
173
	@Autowired
163
	private JavaMailSender mailSender;
174
	private JavaMailSender mailSender;
164
 
175
 
165
	@Autowired
176
	@Autowired
166
	private PartnerTargetRepository partnerTargetRepository;
177
	private PartnerTargetRepository partnerTargetRepository;
167
 
178
 
Line 283... Line 294...
283
 
294
 
284
	// TemporaryMethod
295
	// TemporaryMethod
285
	public void migrateInvoice() {
296
	public void migrateInvoice() {
286
		List<FofoOrder> fofoOrders = fofoOrderRepository.selectFromSaleDate(LocalDateTime.now().minusDays(3));
297
		List<FofoOrder> fofoOrders = fofoOrderRepository.selectFromSaleDate(LocalDateTime.now().minusDays(3));
287
		Map<Integer, List<FofoOrder>> partnerOrdersMap = new HashMap<>();
298
		Map<Integer, List<FofoOrder>> partnerOrdersMap = new HashMap<>();
-
 
299
		partnerOrdersMap = fofoOrders.stream()
288
		partnerOrdersMap  = fofoOrders.stream().collect(Collectors.groupingBy(FofoOrder::getFofoId, Collectors.toList()));
300
				.collect(Collectors.groupingBy(FofoOrder::getFofoId, Collectors.toList()));
289
		for (List<FofoOrder> orderList : partnerOrdersMap.values()) {
301
		for (List<FofoOrder> orderList : partnerOrdersMap.values()) {
290
			int sequence = 0;
302
			int sequence = 0;
291
			String prefix = "";
303
			String prefix = "";
292
			List<FofoOrder> sortedList = orderList.stream().sorted((x1,x2)->x1.getId()-x2.getId()).collect(Collectors.toList());
304
			List<FofoOrder> sortedList = orderList.stream().sorted((x1, x2) -> x1.getId() - x2.getId())
-
 
305
					.collect(Collectors.toList());
293
			for(FofoOrder order : sortedList) {
306
			for (FofoOrder order : sortedList) {
294
				
307
 
295
				LOGGER.info("Order Id is {}, partner Id is {}", order.getId(), order.getFofoId());
308
				LOGGER.info("Order Id is {}, partner Id is {}", order.getId(), order.getFofoId());
296
				if(!order.getInvoiceNumber().contains("SEC")) {
309
				if (!order.getInvoiceNumber().contains("SEC")) {
297
					sequence = Integer.parseInt(order.getInvoiceNumber().split("/")[1]);
310
					sequence = Integer.parseInt(order.getInvoiceNumber().split("/")[1]);
298
					prefix = order.getInvoiceNumber().split("/")[0];
311
					prefix = order.getInvoiceNumber().split("/")[0];
299
				} else {
312
				} else {
300
					sequence += 1;
313
					sequence += 1;
301
					String invoiceNumber = prefix + "/" + sequence; 
314
					String invoiceNumber = prefix + "/" + sequence;
302
					order.setInvoiceNumber(invoiceNumber);
315
					order.setInvoiceNumber(invoiceNumber);
303
					fofoOrderRepository.persist(order);
316
					fofoOrderRepository.persist(order);
304
				}
317
				}
305
			}
318
			}
306
				
319
 
307
		}
320
		}
308
	}
321
	}
309
 
322
 
-
 
323
	// Temporary Method
-
 
324
	public void evaluateExcessSchemeOut() {
-
 
325
		schemeRepository.selectAll().stream().forEach(x -> {
-
 
326
			if (x.getAmountType().equals(AmountType.FIXED)) {
-
 
327
				List<SchemeInOut> sioList = schemeInOutRepository
-
 
328
						.selectBySchemeIds(new HashSet<>(Arrays.asList(x.getId())));
-
 
329
				if (x.getActiveTimestamp() != null) {
-
 
330
					LocalDateTime endDateTime = x.getEndDateTime();
-
 
331
					if (x.getExpireTimestamp() != null && x.getExpireTimestamp().isBefore(x.getEndDateTime())) {
-
 
332
						endDateTime = x.getExpireTimestamp();
-
 
333
					}
-
 
334
					for (SchemeInOut sio : sioList) {
-
 
335
						if(sio.getCreateTimestamp().isAfter(endDateTime) || sio.getCreateTimestamp().isBefore(x.getStartDateTime())) {
-
 
336
							LOGGER.info("Scheme disbursed for inventoryItem {} and scheme {}", sio.getInventoryItemId(), sio.getSchemeId());
-
 
337
						}
-
 
338
					}
-
 
339
				}
-
 
340
			}
-
 
341
		});
-
 
342
 
-
 
343
	}
-
 
344
 
310
	public void processScheme() throws Exception {
345
	public void processScheme() throws Exception {
311
		LocalDateTime fromDate = LocalDateTime.now().minusDays(15);
346
		LocalDateTime fromDate = LocalDateTime.now().minusDays(15);
312
		LOGGER.info("Started execution at {}", LocalDateTime.now());
347
		LOGGER.info("Started execution at {}", LocalDateTime.now());
313
		List<Purchase> purchases = purchaseRepository.selectFromPurchaseCompleteDate(fromDate);
348
		List<Purchase> purchases = purchaseRepository.selectFromPurchaseCompleteDate(fromDate);
314
		for (Purchase purchase : purchases) {
349
		for (Purchase purchase : purchases) {