| 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 |
|