Subversion Repositories SmartDukaan

Rev

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

Rev 24819 Rev 24883
Line 27... Line 27...
27
import com.spice.profitmandi.common.util.Utils;
27
import com.spice.profitmandi.common.util.Utils;
28
import com.spice.profitmandi.dao.entity.fofo.CurrentInventorySnapshot;
28
import com.spice.profitmandi.dao.entity.fofo.CurrentInventorySnapshot;
29
import com.spice.profitmandi.dao.entity.fofo.FofoOrder;
29
import com.spice.profitmandi.dao.entity.fofo.FofoOrder;
30
import com.spice.profitmandi.dao.entity.fofo.FofoOrderItem;
30
import com.spice.profitmandi.dao.entity.fofo.FofoOrderItem;
31
import com.spice.profitmandi.dao.entity.fofo.InventoryItem;
31
import com.spice.profitmandi.dao.entity.fofo.InventoryItem;
-
 
32
import com.spice.profitmandi.dao.entity.fofo.PartnerTargetDetails;
32
import com.spice.profitmandi.dao.entity.fofo.Purchase;
33
import com.spice.profitmandi.dao.entity.fofo.Purchase;
33
import com.spice.profitmandi.dao.entity.fofo.ScanRecord;
34
import com.spice.profitmandi.dao.entity.fofo.ScanRecord;
-
 
35
import com.spice.profitmandi.dao.entity.fofo.TargetSlab;
34
import com.spice.profitmandi.dao.entity.transaction.LineItem;
36
import com.spice.profitmandi.dao.entity.transaction.LineItem;
35
import com.spice.profitmandi.dao.entity.transaction.LineItemImei;
37
import com.spice.profitmandi.dao.entity.transaction.LineItemImei;
36
import com.spice.profitmandi.dao.entity.transaction.Order;
38
import com.spice.profitmandi.dao.entity.transaction.Order;
37
import com.spice.profitmandi.dao.entity.transaction.SellerWarehouse;
39
import com.spice.profitmandi.dao.entity.transaction.SellerWarehouse;
38
import com.spice.profitmandi.dao.enumuration.fofo.ScanType;
40
import com.spice.profitmandi.dao.enumuration.fofo.ScanType;
Line 42... Line 44...
42
import com.spice.profitmandi.dao.repository.fofo.DebitNoteRepository;
44
import com.spice.profitmandi.dao.repository.fofo.DebitNoteRepository;
43
import com.spice.profitmandi.dao.repository.fofo.FofoOrderItemRepository;
45
import com.spice.profitmandi.dao.repository.fofo.FofoOrderItemRepository;
44
import com.spice.profitmandi.dao.repository.fofo.FofoOrderRepository;
46
import com.spice.profitmandi.dao.repository.fofo.FofoOrderRepository;
45
import com.spice.profitmandi.dao.repository.fofo.InventoryItemRepository;
47
import com.spice.profitmandi.dao.repository.fofo.InventoryItemRepository;
46
import com.spice.profitmandi.dao.repository.fofo.InvoiceNumberGenerationSequenceRepository;
48
import com.spice.profitmandi.dao.repository.fofo.InvoiceNumberGenerationSequenceRepository;
-
 
49
import com.spice.profitmandi.dao.repository.fofo.PartnerTargetRepository;
47
import com.spice.profitmandi.dao.repository.fofo.PurchaseRepository;
50
import com.spice.profitmandi.dao.repository.fofo.PurchaseRepository;
48
import com.spice.profitmandi.dao.repository.fofo.ScanRecordRepository;
51
import com.spice.profitmandi.dao.repository.fofo.ScanRecordRepository;
49
import com.spice.profitmandi.dao.repository.fofo.SchemeInOutRepository;
52
import com.spice.profitmandi.dao.repository.fofo.SchemeInOutRepository;
-
 
53
import com.spice.profitmandi.dao.repository.fofo.TargetSlabRepository;
-
 
54
import com.spice.profitmandi.dao.repository.fofo.TargetSlabRepositoryImpl;
50
import com.spice.profitmandi.dao.repository.transaction.LineItemImeisRepository;
55
import com.spice.profitmandi.dao.repository.transaction.LineItemImeisRepository;
51
import com.spice.profitmandi.dao.repository.transaction.LineItemRepository;
56
import com.spice.profitmandi.dao.repository.transaction.LineItemRepository;
52
import com.spice.profitmandi.dao.repository.transaction.OrderRepository;
57
import com.spice.profitmandi.dao.repository.transaction.OrderRepository;
53
import com.spice.profitmandi.dao.repository.transaction.ReturnOrderRepository;
58
import com.spice.profitmandi.dao.repository.transaction.ReturnOrderRepository;
54
import com.spice.profitmandi.dao.repository.transaction.SellerWarehouseRepository;
59
import com.spice.profitmandi.dao.repository.transaction.SellerWarehouseRepository;
Line 73... Line 78...
73
 
78
 
74
	@Autowired
79
	@Autowired
75
	private LineItemRepository lineItemRepository;
80
	private LineItemRepository lineItemRepository;
76
 
81
 
77
	@Autowired
82
	@Autowired
-
 
83
	private TargetSlabRepository targetSlabRepository;
-
 
84
 
-
 
85
	@Autowired
-
 
86
	private PartnerTargetRepository partnerTargetRepository;
-
 
87
 
-
 
88
	@Autowired
78
	private SellerWarehouseRepository sellerWarehouseRepository;
89
	private SellerWarehouseRepository sellerWarehouseRepository;
79
 
90
 
80
	@Autowired
91
	@Autowired
81
	private FofoOrderItemRepository fofoOrderItemRepository;
92
	private FofoOrderItemRepository fofoOrderItemRepository;
82
 
93
 
Line 135... Line 146...
135
	@Autowired
146
	@Autowired
136
	private PurchaseRepository purchaseRepository;
147
	private PurchaseRepository purchaseRepository;
137
 
148
 
138
	@Autowired
149
	@Autowired
139
	private PriceDropService priceDropService;
150
	private PriceDropService priceDropService;
140
	
151
 
141
	@Autowired
152
	@Autowired
142
	private JavaMailSender googleMailSender;
153
	private JavaMailSender googleMailSender;
143
 
154
 
144
	@Autowired
155
	@Autowired
145
	private SchemeService schemeService;
156
	private SchemeService schemeService;
Line 321... Line 332...
321
			int totalOrders = invoiceOrdersMap.get(invoice).size();
332
			int totalOrders = invoiceOrdersMap.get(invoice).size();
322
			LineItem lineItem = oneOrder.getLineItem();
333
			LineItem lineItem = oneOrder.getLineItem();
323
			oneOrder.setBillingTimestamp(LocalDateTime.now());
334
			oneOrder.setBillingTimestamp(LocalDateTime.now());
324
			oneOrder.setInvoiceNumber(getInvoiceNumber(oneOrder));
335
			oneOrder.setInvoiceNumber(getInvoiceNumber(oneOrder));
325
			rows.add(Arrays.asList(oneOrder.getId(), invoice, oneOrder.getInvoiceNumber(), lineItem.getQuantity()));
336
			rows.add(Arrays.asList(oneOrder.getId(), invoice, oneOrder.getInvoiceNumber(), lineItem.getQuantity()));
326
			LOGGER.info(invoice + "\t" + oneOrder.getInvoiceNumber() + oneOrder.getId() + "\t", "\t" + totalOrders + "\t" + lineItem.getQuantity());
337
			LOGGER.info(invoice + "\t" + oneOrder.getInvoiceNumber() + oneOrder.getId() + "\t",
-
 
338
					"\t" + totalOrders + "\t" + lineItem.getQuantity());
327
			Purchase p = null;
339
			Purchase p = null;
328
			try {
340
			try {
329
				p = purchaseRepository.selectByPurchaseReferenceAndFofoId(invoice, oneOrder.getRetailerId());
341
				p = purchaseRepository.selectByPurchaseReferenceAndFofoId(invoice, oneOrder.getRetailerId());
330
			} catch (Exception e) {
342
			} catch (Exception e) {
331
				LOGGER.info("Could not find purchase for invoice {}", invoice);
343
				LOGGER.info("Could not find purchase for invoice {}", invoice);
332
			}
344
			}
333
			if (p != null) {
345
			if (p != null) {
334
				List<InventoryItem> inventoryItems = inventoryItemRepository.selectByPurchaseId(p.getId());
346
				List<InventoryItem> inventoryItems = inventoryItemRepository.selectByPurchaseId(p.getId());
335
				for (InventoryItem inventoryItem : inventoryItems) {
347
				for (InventoryItem inventoryItem : inventoryItems) {
336
					LOGGER.info(inventoryItem.getItemId() + " " + inventoryItem.getGoodQuantity() + " "
348
					LOGGER.info(inventoryItem.getItemId() + " " + inventoryItem.getGoodQuantity() + " "
337
							+ inventoryItem.getHsnCode() + " " + inventoryItem.getSerialNumber() + " " + p.getPurchaseReference());
349
							+ inventoryItem.getHsnCode() + " " + inventoryItem.getSerialNumber() + " "
-
 
350
							+ p.getPurchaseReference());
338
				}
351
				}
339
			}
352
			}
340
 
353
 
341
		}
354
		}
342
		changePartnerInvoices();
355
		changePartnerInvoices();
-
 
356
		ByteArrayOutputStream baos = FileUtil
343
		ByteArrayOutputStream baos = FileUtil.getCSVByteStream(Arrays.asList("Order id", "Challan", "Invoice", "Quantity"), rows);
357
				.getCSVByteStream(Arrays.asList("Order id", "Challan", "Invoice", "Quantity"), rows);
344
		
358
 
345
		Utils.sendMailWithAttachment(googleMailSender,
359
		Utils.sendMailWithAttachment(googleMailSender,
346
				new String[] { "amit.gupta@shop2020.in", "sunny.yadav@smartdukaan.com" }, null,
360
				new String[] { "amit.gupta@shop2020.in", "sunny.yadav@smartdukaan.com" }, null,
347
				"Challans Converted to Invoice", "PFA", "Challans-To-Invoice.csv", new ByteArrayResource(baos.toByteArray()));
361
				"Challans Converted to Invoice", "PFA", "Challans-To-Invoice.csv",
-
 
362
				new ByteArrayResource(baos.toByteArray()));
348
		//throw new Exception();
363
		// throw new Exception();
349
	}
364
	}
350
 
365
 
351
	private String getInvoiceNumber(Order oneOrder) {
366
	private String getInvoiceNumber(Order oneOrder) {
352
		String prefix = oneOrder.getInvoiceNumber().split("-")[1].replaceAll("\\d*", "");
367
		String prefix = oneOrder.getInvoiceNumber().split("-")[1].replaceAll("\\d*", "");
353
		System.out.println("Prefix is " + prefix);
368
		System.out.println("Prefix is " + prefix);
Line 372... Line 387...
372
			}
387
			}
373
 
388
 
374
		}
389
		}
375
	}
390
	}
376
 
391
 
-
 
392
	public void createMonthlyTargets() throws Exception {
-
 
393
		Map<String, List<TargetSlab>> defaultSlabs = targetSlabRepository.getAllDefaultSlabs();
-
 
394
		for (String memberType : defaultSlabs.keySet()) {
-
 
395
			PartnerTargetDetails ptd = new PartnerTargetDetails();
-
 
396
			ptd.setBrandName(null);
-
 
397
 
-
 
398
			LocalDate startDate = LocalDate.now().withDayOfMonth(1);
-
 
399
			int totalDays = startDate.lengthOfMonth();
-
 
400
			String monthName = startDate.getMonth().toString();
-
 
401
			ptd.setStartDate(startDate.atStartOfDay());
-
 
402
			ptd.setEndDate(startDate.plusDays(totalDays - 1).atTime(LocalTime.MAX));
-
 
403
			ptd.setTargetName(String.format("%s Sales Target for %s Partners", monthName, memberType));
-
 
404
			partnerTargetRepository.persist(ptd);
-
 
405
			TargetSlabRepositoryImpl.TYPE_PARTNER_MAPPING.get(memberType).forEach(x -> {
-
 
406
				x.setTargetId(ptd.getId());
-
 
407
				partnerTargetRepository.persist(x);
-
 
408
			});
-
 
409
 
-
 
410
			List<TargetSlab> slabs = defaultSlabs.get(memberType);
-
 
411
			slabs.stream().forEach(x -> {
-
 
412
				x.setTargetId(ptd.getId());
-
 
413
				targetSlabRepository.persist(x);
-
 
414
			});
-
 
415
		}
-
 
416
	}
-
 
417
 
377
}
418
}
378
419