| Line 216... |
Line 216... |
| 216 |
|
216 |
|
| 217 |
@Autowired
|
217 |
@Autowired
|
| 218 |
private CustomerCreditNoteRepository customerCreditNoteRepository;
|
218 |
private CustomerCreditNoteRepository customerCreditNoteRepository;
|
| 219 |
|
219 |
|
| 220 |
@Override
|
220 |
@Override
|
| 221 |
public int createOrder(CreateOrderRequest createOrderRequest, int fofoId, boolean accessoriesDeals) throws ProfitMandiBusinessException {
|
221 |
public int createOrder(CreateOrderRequest createOrderRequest, int fofoId, boolean accessoriesDeals)
|
| - |
|
222 |
throws ProfitMandiBusinessException {
|
| 222 |
|
223 |
|
| 223 |
CustomCustomer customCustomer = createOrderRequest.getCustomer();
|
224 |
CustomCustomer customCustomer = createOrderRequest.getCustomer();
|
| 224 |
|
225 |
|
| 225 |
if (!StringUtils.isValidEmailAddress(customCustomer.getEmailId())) {
|
226 |
if (!StringUtils.isValidEmailAddress(customCustomer.getEmailId())) {
|
| 226 |
LOGGER.error("invalid customer emailId {} ", customCustomer.getEmailId());
|
227 |
LOGGER.error("invalid customer emailId {} ", customCustomer.getEmailId());
|
| Line 242... |
Line 243... |
| 242 |
|
243 |
|
| 243 |
Map<Integer, Integer> itemIdQuantity = new HashMap<>(); // this is for error
|
244 |
Map<Integer, Integer> itemIdQuantity = new HashMap<>(); // this is for error
|
| 244 |
Map<Integer, CustomFofoOrderItem> itemIdCustomFofoOrderItemMap = new HashMap<>();
|
245 |
Map<Integer, CustomFofoOrderItem> itemIdCustomFofoOrderItemMap = new HashMap<>();
|
| 245 |
Map<Integer, Float> lineItemPrice = new HashMap<>(); // this is for pricing error
|
246 |
Map<Integer, Float> lineItemPrice = new HashMap<>(); // this is for pricing error
|
| 246 |
|
247 |
|
| 247 |
|
- |
|
| 248 |
float totalAmount = 0;
|
248 |
float totalAmount = 0;
|
| 249 |
boolean noGST = false;
|
249 |
boolean noGST = false;
|
| 250 |
for (CustomFofoOrderItem customFofoOrderItem : createOrderRequest.getFofoOrderItems()) {
|
250 |
for (CustomFofoOrderItem customFofoOrderItem : createOrderRequest.getFofoOrderItems()) {
|
| 251 |
// itemIds.add(customFofoOrderItem.getItemId());
|
251 |
// itemIds.add(customFofoOrderItem.getItemId());
|
| 252 |
Set<String> serialNumbers = this
|
252 |
Set<String> serialNumbers = this
|
| Line 273... |
Line 273... |
| 273 |
LOGGER.error("itemId's quantity should be equal to given serialnumber size {} ", itemIdQuantity);
|
273 |
LOGGER.error("itemId's quantity should be equal to given serialnumber size {} ", itemIdQuantity);
|
| 274 |
throw new ProfitMandiBusinessException("itemIdQuantity", itemIdQuantity, "FFORDR_1001");
|
274 |
throw new ProfitMandiBusinessException("itemIdQuantity", itemIdQuantity, "FFORDR_1001");
|
| 275 |
// return "error";
|
275 |
// return "error";
|
| 276 |
}
|
276 |
}
|
| 277 |
|
277 |
|
| 278 |
|
- |
|
| 279 |
this.validatePaymentOptionsAndTotalAmount(createOrderRequest.getPaymentOptions(),
|
278 |
this.validatePaymentOptionsAndTotalAmount(createOrderRequest.getPaymentOptions(), totalAmount);
|
| 280 |
totalAmount);
|
- |
|
| 281 |
|
279 |
|
| 282 |
if (!lineItemPrice.isEmpty()) {
|
280 |
if (!lineItemPrice.isEmpty()) {
|
| 283 |
// given fofo line item price must be greater than zero
|
281 |
// given fofo line item price must be greater than zero
|
| 284 |
LOGGER.error("requested itemId's selling price must greater than 0");
|
282 |
LOGGER.error("requested itemId's selling price must greater than 0");
|
| 285 |
throw new ProfitMandiBusinessException(ProfitMandiConstants.PRICE, lineItemPrice, "FFORDR_1002");
|
283 |
throw new ProfitMandiBusinessException(ProfitMandiConstants.PRICE, lineItemPrice, "FFORDR_1002");
|
| Line 306... |
Line 304... |
| 306 |
Map<String, Float> insuranceSerialNumberSaleAmount = new HashMap<>();
|
304 |
Map<String, Float> insuranceSerialNumberSaleAmount = new HashMap<>();
|
| 307 |
Map<String, String> serialNumberModelName = new HashMap<>();
|
305 |
Map<String, String> serialNumberModelName = new HashMap<>();
|
| 308 |
Map<String, String> serialNumberBrand = new HashMap<>();
|
306 |
Map<String, String> serialNumberBrand = new HashMap<>();
|
| 309 |
for (CustomFofoOrderItem customFofoOrderItem : createOrderRequest.getFofoOrderItems()) {
|
307 |
for (CustomFofoOrderItem customFofoOrderItem : createOrderRequest.getFofoOrderItems()) {
|
| 310 |
Item item = itemMap.get(customFofoOrderItem.getItemId());
|
308 |
Item item = itemMap.get(customFofoOrderItem.getItemId());
|
| 311 |
noGST = item.getHsnCode().equals("NOGST");
|
309 |
noGST = item.getHsnCode().equals("NOGST");
|
| 312 |
if (item.getType().equals(ItemType.SERIALIZED)) {
|
310 |
if (item.getType().equals(ItemType.SERIALIZED)) {
|
| 313 |
for (SerialNumberDetail serialNumberDetail : customFofoOrderItem.getSerialNumberDetails()) {
|
311 |
for (SerialNumberDetail serialNumberDetail : customFofoOrderItem.getSerialNumberDetails()) {
|
| 314 |
serialNumbers.add(serialNumberDetail.getSerialNumber());
|
312 |
serialNumbers.add(serialNumberDetail.getSerialNumber());
|
| 315 |
if (serialNumberDetail.isInsurance()) {
|
313 |
if (serialNumberDetail.isInsurance()) {
|
| 316 |
insuranceSerialNumberItemPrice.put(serialNumberDetail.getSerialNumber(),
|
314 |
insuranceSerialNumberItemPrice.put(serialNumberDetail.getSerialNumber(),
|
| Line 427... |
Line 425... |
| 427 |
}
|
425 |
}
|
| 428 |
}
|
426 |
}
|
| 429 |
|
427 |
|
| 430 |
Map<Integer, PriceModel> itemIdMopPriceMap = pricingService
|
428 |
Map<Integer, PriceModel> itemIdMopPriceMap = pricingService
|
| 431 |
.getPurchasePriceMopPriceNotFound(itemIdCustomFofoOrderItemMap.keySet(), fofoId);
|
429 |
.getPurchasePriceMopPriceNotFound(itemIdCustomFofoOrderItemMap.keySet(), fofoId);
|
| 432 |
if(accessoriesDeals) {
|
430 |
if (accessoriesDeals) {
|
| 433 |
this.validateDpPrice(itemIdMopPriceMap, itemIdCustomFofoOrderItemMap);
|
431 |
this.validateDpPrice(itemIdMopPriceMap, itemIdCustomFofoOrderItemMap);
|
| 434 |
} else {
|
432 |
} else {
|
| 435 |
this.validateMopPrice(itemIdMopPriceMap, itemIdCustomFofoOrderItemMap);
|
433 |
this.validateMopPrice(itemIdMopPriceMap, itemIdCustomFofoOrderItemMap);
|
| 436 |
}
|
434 |
}
|
| 437 |
|
435 |
|
| 438 |
String fofoStoreCode = this.getFofoStoreCode(fofoId);
|
436 |
String fofoStoreCode = this.getFofoStoreCode(fofoId);
|
| 439 |
InvoiceNumberGenerationSequence invoiceNumberGenerationSequence = null;
|
437 |
InvoiceNumberGenerationSequence invoiceNumberGenerationSequence = null;
|
| 440 |
String documentNumber = null;
|
438 |
String documentNumber = null;
|
| 441 |
if(noGST) {
|
439 |
if (noGST) {
|
| 442 |
documentNumber = this.getSecurityDepositNumber(fofoId, fofoStoreCode);
|
440 |
documentNumber = this.getSecurityDepositNumber(fofoId, fofoStoreCode);
|
| 443 |
|
441 |
|
| 444 |
} else {
|
442 |
} else {
|
| 445 |
documentNumber = this.getInvoiceNumber(fofoId, fofoStoreCode);
|
443 |
documentNumber = this.getInvoiceNumber(fofoId, fofoStoreCode);
|
| 446 |
}
|
444 |
}
|
| 447 |
|
- |
|
| 448 |
|
445 |
|
| 449 |
Customer customer = this.createAndGetCustomer(customCustomer);
|
446 |
Customer customer = this.createAndGetCustomer(customCustomer);
|
| 450 |
|
447 |
|
| 451 |
CustomerAddress customerAddress = this.createCustomerAddress(customCustomer.getAddress(), customer.getId());
|
448 |
CustomerAddress customerAddress = this.createCustomerAddress(customCustomer.getAddress(), customer.getId());
|
| 452 |
|
449 |
|
| Line 477... |
Line 474... |
| 477 |
this.createFofoLineItem(fofoOrderItem.getId(), inventoryItems, inventoryItemIdQuantityUsed);
|
474 |
this.createFofoLineItem(fofoOrderItem.getId(), inventoryItems, inventoryItemIdQuantityUsed);
|
| 478 |
|
475 |
|
| 479 |
this.updateCurrentInventorySnapshot(currentInventorySnapshots, fofoId, customFofoOrderItem.getItemId(),
|
476 |
this.updateCurrentInventorySnapshot(currentInventorySnapshots, fofoId, customFofoOrderItem.getItemId(),
|
| 480 |
customFofoOrderItem.getQuantity());
|
477 |
customFofoOrderItem.getQuantity());
|
| 481 |
|
478 |
|
| 482 |
this.updateInventoryItemsAndScanRecord(inventoryItems, fofoId, inventoryItemIdQuantityUsed, fofoOrder.getId());
|
479 |
this.updateInventoryItemsAndScanRecord(inventoryItems, fofoId, inventoryItemIdQuantityUsed,
|
| - |
|
480 |
fofoOrder.getId());
|
| 483 |
}
|
481 |
}
|
| 484 |
|
482 |
|
| 485 |
// insurance calculation is insurance flag is enabled
|
483 |
// insurance calculation is insurance flag is enabled
|
| 486 |
if (!insuranceSerialNumberItemPrice.isEmpty()) {
|
484 |
if (!insuranceSerialNumberItemPrice.isEmpty()) {
|
| 487 |
LOGGER.info("Processing for insurence for serialNumbers");
|
485 |
LOGGER.info("Processing for insurence for serialNumbers");
|
| Line 530... |
Line 528... |
| 530 |
schemeService.processSchemeOut(fofoOrder.getId(), fofoId);
|
528 |
schemeService.processSchemeOut(fofoOrder.getId(), fofoId);
|
| 531 |
|
529 |
|
| 532 |
return fofoOrder.getId();
|
530 |
return fofoOrder.getId();
|
| 533 |
}
|
531 |
}
|
| 534 |
|
532 |
|
| 535 |
|
- |
|
| 536 |
private String getInvoiceNumber(int fofoId,
|
533 |
private String getInvoiceNumber(int fofoId, String fofoStoreCode) {
|
| 537 |
String fofoStoreCode) {
|
- |
|
| 538 |
InvoiceNumberGenerationSequence invoiceNumberGenerationSequence = null;
|
534 |
InvoiceNumberGenerationSequence invoiceNumberGenerationSequence = null;
|
| 539 |
try {
|
535 |
try {
|
| 540 |
invoiceNumberGenerationSequence = invoiceNumberGenerationSequenceRepository.selectByFofoId(fofoId);
|
536 |
invoiceNumberGenerationSequence = invoiceNumberGenerationSequenceRepository.selectByFofoId(fofoId);
|
| 541 |
invoiceNumberGenerationSequence.setSequence(invoiceNumberGenerationSequence.getSequence() + 1);
|
537 |
invoiceNumberGenerationSequence.setSequence(invoiceNumberGenerationSequence.getSequence() + 1);
|
| 542 |
} catch (ProfitMandiBusinessException profitMandiBusinessException) {
|
538 |
} catch (ProfitMandiBusinessException profitMandiBusinessException) {
|
| Line 546... |
Line 542... |
| 546 |
invoiceNumberGenerationSequence.setSequence(1);
|
542 |
invoiceNumberGenerationSequence.setSequence(1);
|
| 547 |
}
|
543 |
}
|
| 548 |
invoiceNumberGenerationSequenceRepository.persist(invoiceNumberGenerationSequence);
|
544 |
invoiceNumberGenerationSequenceRepository.persist(invoiceNumberGenerationSequence);
|
| 549 |
return invoiceNumberGenerationSequence.getPrefix() + "/" + invoiceNumberGenerationSequence.getSequence();
|
545 |
return invoiceNumberGenerationSequence.getPrefix() + "/" + invoiceNumberGenerationSequence.getSequence();
|
| 550 |
}
|
546 |
}
|
| 551 |
|
547 |
|
| 552 |
private String getSecurityDepositNumber(int fofoId,
|
548 |
private String getSecurityDepositNumber(int fofoId, String fofoStoreCode) {
|
| 553 |
String fofoStoreCode) {
|
- |
|
| 554 |
InvoiceNumberGenerationSequence invoiceNumberGenerationSequence = null;
|
549 |
InvoiceNumberGenerationSequence invoiceNumberGenerationSequence = null;
|
| 555 |
try {
|
550 |
try {
|
| 556 |
invoiceNumberGenerationSequence = invoiceNumberGenerationSequenceRepository.selectByFofoId(fofoId);
|
551 |
invoiceNumberGenerationSequence = invoiceNumberGenerationSequenceRepository.selectByFofoId(fofoId);
|
| - |
|
552 |
invoiceNumberGenerationSequence
|
| 557 |
invoiceNumberGenerationSequence.setChallanNumberSequence(invoiceNumberGenerationSequence.getChallanNumberSequence()+ 1);
|
553 |
.setChallanNumberSequence(invoiceNumberGenerationSequence.getChallanNumberSequence() + 1);
|
| 558 |
} catch (ProfitMandiBusinessException profitMandiBusinessException) {
|
554 |
} catch (ProfitMandiBusinessException profitMandiBusinessException) {
|
| 559 |
invoiceNumberGenerationSequence = new InvoiceNumberGenerationSequence();
|
555 |
invoiceNumberGenerationSequence = new InvoiceNumberGenerationSequence();
|
| 560 |
invoiceNumberGenerationSequence.setFofoId(fofoId);
|
556 |
invoiceNumberGenerationSequence.setFofoId(fofoId);
|
| 561 |
invoiceNumberGenerationSequence.setPrefix(fofoStoreCode);
|
557 |
invoiceNumberGenerationSequence.setPrefix(fofoStoreCode);
|
| 562 |
invoiceNumberGenerationSequence.setChallanNumberSequence(1);
|
558 |
invoiceNumberGenerationSequence.setChallanNumberSequence(1);
|
| 563 |
}
|
559 |
}
|
| 564 |
invoiceNumberGenerationSequenceRepository.persist(invoiceNumberGenerationSequence);
|
560 |
invoiceNumberGenerationSequenceRepository.persist(invoiceNumberGenerationSequence);
|
| - |
|
561 |
return invoiceNumberGenerationSequence.getPrefix() + "/SEC"
|
| 565 |
return invoiceNumberGenerationSequence.getPrefix() + "/SEC" + invoiceNumberGenerationSequence.getChallanNumberSequence();
|
562 |
+ invoiceNumberGenerationSequence.getChallanNumberSequence();
|
| 566 |
}
|
563 |
}
|
| 567 |
|
564 |
|
| 568 |
private Set<String> serialNumberDetailsToSerialNumbers(Set<SerialNumberDetail> serialNumberDetails) {
|
565 |
private Set<String> serialNumberDetailsToSerialNumbers(Set<SerialNumberDetail> serialNumberDetails) {
|
| 569 |
Set<String> serialNumbers = new HashSet<>();
|
566 |
Set<String> serialNumbers = new HashSet<>();
|
| 570 |
for (SerialNumberDetail serialNumberDetail : serialNumberDetails) {
|
567 |
for (SerialNumberDetail serialNumberDetail : serialNumberDetails) {
|
| Line 597... |
Line 594... |
| 597 |
paymentOptionRepository.selectById(paymentOptionTransaction.getPaymentOptionId()).getName());
|
594 |
paymentOptionRepository.selectById(paymentOptionTransaction.getPaymentOptionId()).getName());
|
| 598 |
paymentOptions.add(cpi);
|
595 |
paymentOptions.add(cpi);
|
| 599 |
}
|
596 |
}
|
| 600 |
List<FofoOrderItem> fofoOrderItems = this.getByOrderId(fofoOrder.getId());
|
597 |
List<FofoOrderItem> fofoOrderItems = this.getByOrderId(fofoOrder.getId());
|
| 601 |
|
598 |
|
| 602 |
|
- |
|
| 603 |
|
- |
|
| 604 |
pdfModel.setTitle("Retailer Invoice");
|
599 |
pdfModel.setTitle("Retailer Invoice");
|
| 605 |
if(fofoOrderItems.stream().findAny().get().getHsnCode().equals("NOGST")) {
|
600 |
if (fofoOrderItems.stream().findAny().get().getHsnCode().equals("NOGST")) {
|
| 606 |
pdfModel.setTitle("Security Deposit Receipt");
|
601 |
pdfModel.setTitle("Security Deposit Receipt");
|
| 607 |
}
|
602 |
}
|
| 608 |
pdfModel.setPaymentOptions(paymentOptions);
|
603 |
pdfModel.setPaymentOptions(paymentOptions);
|
| 609 |
pdfModel.setAuther("SmartDukaan");
|
604 |
pdfModel.setAuther("SmartDukaan");
|
| 610 |
pdfModel.setInvoiceDate(fofoOrder.getFormattedDate());
|
605 |
pdfModel.setInvoiceDate(fofoOrder.getFormattedDate());
|
| Line 637... |
Line 632... |
| 637 |
tncs.add("Warranty for the goods received by me is the responsibility of the manufacturer only.");
|
632 |
tncs.add("Warranty for the goods received by me is the responsibility of the manufacturer only.");
|
| 638 |
if (pdfModel.getInsurancePolicies() != null && pdfModel.getInsurancePolicies().size() > 0) {
|
633 |
if (pdfModel.getInsurancePolicies() != null && pdfModel.getInsurancePolicies().size() > 0) {
|
| 639 |
tncs.add("Damage protection provided is the responisibility of Protection Provider only");
|
634 |
tncs.add("Damage protection provided is the responisibility of Protection Provider only");
|
| 640 |
}
|
635 |
}
|
| 641 |
pdfModel.setTncs(tncs);
|
636 |
pdfModel.setTncs(tncs);
|
| 642 |
|
637 |
|
| 643 |
pdfModel.setCustomer(getCustomCustomer(fofoOrder));
|
638 |
pdfModel.setCustomer(getCustomCustomer(fofoOrder));
|
| 644 |
pdfModel.setInvoiceNumber(fofoOrder.getInvoiceNumber());
|
639 |
pdfModel.setInvoiceNumber(fofoOrder.getInvoiceNumber());
|
| 645 |
pdfModel.setTotalAmount(fofoOrder.getTotalAmount());
|
640 |
pdfModel.setTotalAmount(fofoOrder.getTotalAmount());
|
| 646 |
|
641 |
|
| 647 |
Retailer retailer = retailerRepository.selectById(fofoOrder.getFofoId());
|
642 |
Retailer retailer = retailerRepository.selectById(fofoOrder.getFofoId());
|
| Line 818... |
Line 813... |
| 818 |
LocalDateTime startDate, LocalDateTime endDate, int offset, int limit) throws ProfitMandiBusinessException {
|
813 |
LocalDateTime startDate, LocalDateTime endDate, int offset, int limit) throws ProfitMandiBusinessException {
|
| 819 |
long countItems = 0;
|
814 |
long countItems = 0;
|
| 820 |
List<FofoOrder> fofoOrders = new ArrayList<>();
|
815 |
List<FofoOrder> fofoOrders = new ArrayList<>();
|
| 821 |
|
816 |
|
| 822 |
if (searchType == SearchType.CUSTOMER_MOBILE_NUMBER && !searchValue.isEmpty()) {
|
817 |
if (searchType == SearchType.CUSTOMER_MOBILE_NUMBER && !searchValue.isEmpty()) {
|
| 823 |
fofoOrders = fofoOrderRepository.selectByFofoIdAndCustomerMobileNumber(fofoId, searchValue, null,
|
818 |
fofoOrders = fofoOrderRepository.selectByFofoIdAndCustomerMobileNumber(fofoId, searchValue, null, null,
|
| 824 |
null, offset, limit);
|
819 |
offset, limit);
|
| 825 |
countItems = fofoOrderRepository.selectCountByCustomerMobileNumber(fofoId, searchValue, null,
|
820 |
countItems = fofoOrderRepository.selectCountByCustomerMobileNumber(fofoId, searchValue, null, null);
|
| 826 |
null);
|
- |
|
| 827 |
} else if (searchType == SearchType.CUSTOMER_NAME && !searchValue.isEmpty()) {
|
821 |
} else if (searchType == SearchType.CUSTOMER_NAME && !searchValue.isEmpty()) {
|
| 828 |
fofoOrders = fofoOrderRepository.selectByFofoIdAndCustomerName(fofoId, searchValue, null,
|
822 |
fofoOrders = fofoOrderRepository.selectByFofoIdAndCustomerName(fofoId, searchValue, null, null, offset,
|
| 829 |
null, offset, limit);
|
823 |
limit);
|
| 830 |
countItems = fofoOrderRepository.selectCountByCustomerName(fofoId, searchValue, null, null);
|
824 |
countItems = fofoOrderRepository.selectCountByCustomerName(fofoId, searchValue, null, null);
|
| 831 |
} else if (searchType == SearchType.IMEI && !searchValue.isEmpty()) {
|
825 |
} else if (searchType == SearchType.IMEI && !searchValue.isEmpty()) {
|
| 832 |
fofoOrders = fofoOrderRepository.selectByFofoIdAndSerialNumber(fofoId, searchValue, null,
|
826 |
fofoOrders = fofoOrderRepository.selectByFofoIdAndSerialNumber(fofoId, searchValue, null, null, offset,
|
| 833 |
null, offset, limit);
|
827 |
limit);
|
| 834 |
countItems = fofoOrderRepository.selectCountBySerialNumber(fofoId, searchValue, null, null);
|
828 |
countItems = fofoOrderRepository.selectCountBySerialNumber(fofoId, searchValue, null, null);
|
| 835 |
} else if (searchType == SearchType.ITEM_NAME && !searchValue.isEmpty()) {
|
829 |
} else if (searchType == SearchType.ITEM_NAME && !searchValue.isEmpty()) {
|
| 836 |
fofoOrders = fofoOrderRepository.selectByFofoIdAndItemName(fofoId, searchValue, null, null,
|
830 |
fofoOrders = fofoOrderRepository.selectByFofoIdAndItemName(fofoId, searchValue, null, null, offset, limit);
|
| 837 |
offset, limit);
|
- |
|
| 838 |
countItems=fofoOrderRepository.selectCountByItemName(fofoId, searchValue, null, null);
|
831 |
countItems = fofoOrderRepository.selectCountByItemName(fofoId, searchValue, null, null);
|
| 839 |
} else if (searchType == SearchType.INVOICE_NUMBER && !searchValue.isEmpty()) {
|
832 |
} else if (searchType == SearchType.INVOICE_NUMBER && !searchValue.isEmpty()) {
|
| 840 |
fofoOrders = Arrays.asList(fofoOrderRepository.selectByFofoIdAndInvoiceNumber(fofoId, searchValue));
|
833 |
fofoOrders = Arrays.asList(fofoOrderRepository.selectByFofoIdAndInvoiceNumber(fofoId, searchValue));
|
| 841 |
countItems = fofoOrders.size();
|
834 |
countItems = fofoOrders.size();
|
| 842 |
} else if(searchType == SearchType.DATE_RANGE){
|
835 |
} else if (searchType == SearchType.DATE_RANGE) {
|
| 843 |
fofoOrders = fofoOrderRepository.selectByFofoId(fofoId, startDate, endDate, offset, limit);
|
836 |
fofoOrders = fofoOrderRepository.selectByFofoId(fofoId, startDate, endDate, offset, limit);
|
| 844 |
countItems = fofoOrderRepository.selectCountByFofoId(fofoId, startDate, endDate);
|
837 |
countItems = fofoOrderRepository.selectCountByFofoId(fofoId, startDate, endDate);
|
| 845 |
}
|
838 |
}
|
| 846 |
Map<String, Object> map = new HashMap<>();
|
839 |
Map<String, Object> map = new HashMap<>();
|
| 847 |
|
840 |
|
| Line 868... |
Line 861... |
| 868 |
|
861 |
|
| 869 |
if (searchType == SearchType.CUSTOMER_MOBILE_NUMBER && !searchValue.isEmpty()) {
|
862 |
if (searchType == SearchType.CUSTOMER_MOBILE_NUMBER && !searchValue.isEmpty()) {
|
| 870 |
fofoOrders = fofoOrderRepository.selectByFofoIdAndCustomerMobileNumber(fofoId, searchValue, startDate,
|
863 |
fofoOrders = fofoOrderRepository.selectByFofoIdAndCustomerMobileNumber(fofoId, searchValue, startDate,
|
| 871 |
endDate, offset, limit);
|
864 |
endDate, offset, limit);
|
| 872 |
} else if (searchType == SearchType.CUSTOMER_NAME && !searchValue.isEmpty()) {
|
865 |
} else if (searchType == SearchType.CUSTOMER_NAME && !searchValue.isEmpty()) {
|
| 873 |
fofoOrders = fofoOrderRepository.selectByFofoIdAndCustomerName(fofoId, searchValue, startDate,
|
866 |
fofoOrders = fofoOrderRepository.selectByFofoIdAndCustomerName(fofoId, searchValue, startDate, endDate,
|
| 874 |
endDate, offset, limit);
|
867 |
offset, limit);
|
| 875 |
} else if (searchType == SearchType.IMEI && !searchValue.isEmpty()) {
|
868 |
} else if (searchType == SearchType.IMEI && !searchValue.isEmpty()) {
|
| 876 |
fofoOrders = fofoOrderRepository.selectByFofoIdAndSerialNumber(fofoId, searchValue, startDate,
|
- |
|
| 877 |
endDate, offset, limit);
|
- |
|
| 878 |
} else if (searchType == SearchType.ITEM_NAME && !searchValue.isEmpty()) {
|
- |
|
| 879 |
fofoOrders = fofoOrderRepository.selectByFofoIdAndItemName(fofoId, searchValue, startDate, endDate,
|
869 |
fofoOrders = fofoOrderRepository.selectByFofoIdAndSerialNumber(fofoId, searchValue, startDate, endDate,
|
| 880 |
offset, limit);
|
870 |
offset, limit);
|
| - |
|
871 |
} else if (searchType == SearchType.ITEM_NAME && !searchValue.isEmpty()) {
|
| - |
|
872 |
fofoOrders = fofoOrderRepository.selectByFofoIdAndItemName(fofoId, searchValue, startDate, endDate, offset,
|
| - |
|
873 |
limit);
|
| 881 |
|
874 |
|
| 882 |
} else if (searchType == SearchType.DATE_RANGE){
|
875 |
} else if (searchType == SearchType.DATE_RANGE) {
|
| 883 |
fofoOrders = fofoOrderRepository.selectByFofoId(fofoId, startDate, endDate, offset, limit);
|
876 |
fofoOrders = fofoOrderRepository.selectByFofoId(fofoId, startDate, endDate, offset, limit);
|
| 884 |
}
|
877 |
}
|
| 885 |
Map<String, Object> map = new HashMap<>();
|
878 |
Map<String, Object> map = new HashMap<>();
|
| 886 |
map.put("saleHistories", fofoOrders);
|
879 |
map.put("saleHistories", fofoOrders);
|
| 887 |
map.put("searchType", searchType);
|
880 |
map.put("searchType", searchType);
|
| Line 1055... |
Line 1048... |
| 1055 |
invalidInsuranceSalePurchaseAmount);
|
1048 |
invalidInsuranceSalePurchaseAmount);
|
| 1056 |
throw new ProfitMandiBusinessException("invalidInsuranceSalePurchaseAmount",
|
1049 |
throw new ProfitMandiBusinessException("invalidInsuranceSalePurchaseAmount",
|
| 1057 |
invalidInsuranceSalePurchaseAmount, "FFORDR_1009");
|
1050 |
invalidInsuranceSalePurchaseAmount, "FFORDR_1009");
|
| 1058 |
}
|
1051 |
}
|
| 1059 |
}
|
1052 |
}
|
| - |
|
1053 |
|
| 1060 |
private void validateDpPrice(Map<Integer, PriceModel> itemIdMopPriceMap,
|
1054 |
private void validateDpPrice(Map<Integer, PriceModel> itemIdMopPriceMap,
|
| 1061 |
Map<Integer, CustomFofoOrderItem> itemIdCustomFofoLineItemMap) throws ProfitMandiBusinessException {
|
1055 |
Map<Integer, CustomFofoOrderItem> itemIdCustomFofoLineItemMap) throws ProfitMandiBusinessException {
|
| 1062 |
for (Map.Entry<Integer, CustomFofoOrderItem> entry : itemIdCustomFofoLineItemMap.entrySet()) {
|
1056 |
for (Map.Entry<Integer, CustomFofoOrderItem> entry : itemIdCustomFofoLineItemMap.entrySet()) {
|
| 1063 |
int itemId = entry.getKey();
|
1057 |
int itemId = entry.getKey();
|
| 1064 |
CustomFofoOrderItem customFofoOrderItem = entry.getValue();
|
1058 |
CustomFofoOrderItem customFofoOrderItem = entry.getValue();
|
| 1065 |
PriceModel priceModel = itemIdMopPriceMap.get(itemId);
|
1059 |
PriceModel priceModel = itemIdMopPriceMap.get(itemId);
|
| 1066 |
if(customFofoOrderItem.getSerialNumberDetails().size() > 0) {
|
1060 |
if (customFofoOrderItem.getSerialNumberDetails().size() > 0) {
|
| 1067 |
if(priceModel.getPrice() > customFofoOrderItem.getSellingPrice()) {
|
1061 |
if (priceModel.getPrice() > customFofoOrderItem.getSellingPrice()) {
|
| - |
|
1062 |
throw new ProfitMandiBusinessException("Selling Price",
|
| 1068 |
throw new ProfitMandiBusinessException("Selling Price", itemRepository.selectById(itemId).getItemDescription(), "FFORDR_1010");
|
1063 |
itemRepository.selectById(itemId).getItemDescription(), "FFORDR_1010");
|
| 1069 |
}
|
1064 |
}
|
| 1070 |
} else {
|
1065 |
} else {
|
| 1071 |
if(priceModel.getPurchasePrice() > customFofoOrderItem.getSellingPrice()) {
|
1066 |
if (priceModel.getPurchasePrice() > customFofoOrderItem.getSellingPrice()) {
|
| - |
|
1067 |
throw new ProfitMandiBusinessException("Selling Price",
|
| 1072 |
throw new ProfitMandiBusinessException("Selling Price", itemRepository.selectById(itemId).getItemDescription(), "Selling Price should not be less than DP");
|
1068 |
itemRepository.selectById(itemId).getItemDescription(),
|
| - |
|
1069 |
"Selling Price should not be less than DP");
|
| 1073 |
}
|
1070 |
}
|
| 1074 |
}
|
1071 |
}
|
| 1075 |
}
|
1072 |
}
|
| 1076 |
}
|
1073 |
}
|
| - |
|
1074 |
|
| 1077 |
private void validateMopPrice(Map<Integer, PriceModel> itemIdMopPriceMap,
|
1075 |
private void validateMopPrice(Map<Integer, PriceModel> itemIdMopPriceMap,
|
| 1078 |
Map<Integer, CustomFofoOrderItem> itemIdCustomFofoLineItemMap) throws ProfitMandiBusinessException {
|
1076 |
Map<Integer, CustomFofoOrderItem> itemIdCustomFofoLineItemMap) throws ProfitMandiBusinessException {
|
| 1079 |
Map<Integer, Float> invalidMopItemIdPriceMap = new HashMap<>();
|
1077 |
Map<Integer, Float> invalidMopItemIdPriceMap = new HashMap<>();
|
| 1080 |
Map<Integer, Float> invalidDiscountAmountMap = new HashMap<>();
|
1078 |
Map<Integer, Float> invalidDiscountAmountMap = new HashMap<>();
|
| 1081 |
for (Map.Entry<Integer, PriceModel> entry : itemIdMopPriceMap.entrySet()) {
|
1079 |
for (Map.Entry<Integer, PriceModel> entry : itemIdMopPriceMap.entrySet()) {
|
| Line 1203... |
Line 1201... |
| 1203 |
paymentOptionTransactionRepository.persist(paymentOptionTransaction);
|
1201 |
paymentOptionTransactionRepository.persist(paymentOptionTransaction);
|
| 1204 |
}
|
1202 |
}
|
| 1205 |
}
|
1203 |
}
|
| 1206 |
}
|
1204 |
}
|
| 1207 |
|
1205 |
|
| 1208 |
private FofoOrder createAndGetFofoOrder(int customerId, String customerGstNumber, int fofoId,
|
1206 |
private FofoOrder createAndGetFofoOrder(int customerId, String customerGstNumber, int fofoId, String documentNumber,
|
| 1209 |
String documentNumber, float totalAmount, int customerAddressId) {
|
1207 |
float totalAmount, int customerAddressId) {
|
| 1210 |
FofoOrder fofoOrder = new FofoOrder();
|
1208 |
FofoOrder fofoOrder = new FofoOrder();
|
| 1211 |
fofoOrder.setCustomerGstNumber(customerGstNumber);
|
1209 |
fofoOrder.setCustomerGstNumber(customerGstNumber);
|
| 1212 |
fofoOrder.setCustomerId(customerId);
|
1210 |
fofoOrder.setCustomerId(customerId);
|
| 1213 |
fofoOrder.setFofoId(fofoId);
|
1211 |
fofoOrder.setFofoId(fofoId);
|
| 1214 |
fofoOrder.setInvoiceNumber(documentNumber);
|
1212 |
fofoOrder.setInvoiceNumber(documentNumber);
|
| Line 1455... |
Line 1453... |
| 1455 |
customerAddressRepository.persist(customerAddress);
|
1453 |
customerAddressRepository.persist(customerAddress);
|
| 1456 |
fofoOrder.setCustomerGstNumber(customCustomer.getGstNumber());
|
1454 |
fofoOrder.setCustomerGstNumber(customCustomer.getGstNumber());
|
| 1457 |
}
|
1455 |
}
|
| 1458 |
|
1456 |
|
| 1459 |
@Override
|
1457 |
@Override
|
| 1460 |
public CustomerCreditNote badReturn(int fofoId, FoiBadReturnRequest foiBadReturnRequest) throws ProfitMandiBusinessException {
|
1458 |
public CustomerCreditNote badReturn(int fofoId, FoiBadReturnRequest foiBadReturnRequest)
|
| - |
|
1459 |
throws ProfitMandiBusinessException {
|
| 1461 |
FofoOrderItem foi = fofoOrderItemRepository.selectById(foiBadReturnRequest.getFofoOrderItemId());
|
1460 |
FofoOrderItem foi = fofoOrderItemRepository.selectById(foiBadReturnRequest.getFofoOrderItemId());
|
| 1462 |
FofoOrder fofoOrder = fofoOrderRepository.selectByOrderId(foi.getOrderId());
|
1461 |
FofoOrder fofoOrder = fofoOrderRepository.selectByOrderId(foi.getOrderId());
|
| 1463 |
if (fofoOrder.getFofoId() != fofoId) {
|
1462 |
if (fofoOrder.getFofoId() != fofoId) {
|
| 1464 |
throw new ProfitMandiBusinessException("Partner Auth", "", "Invalid Order");
|
1463 |
throw new ProfitMandiBusinessException("Partner Auth", "", "Invalid Order");
|
| 1465 |
}
|
1464 |
}
|
| 1466 |
int billedQty = foi.getQuantity() - customerReturnItemRepository.selectAllByOrderItemId(foi.getId()).size();
|
1465 |
int billedQty = foi.getQuantity() - customerReturnItemRepository.selectAllByOrderItemId(foi.getId()).size();
|
| 1467 |
if(foiBadReturnRequest.getMarkedBadArr().size() > billedQty ) {
|
1466 |
if (foiBadReturnRequest.getMarkedBadArr().size() > billedQty) {
|
| 1468 |
throw new ProfitMandiBusinessException("Cant bad return more than what is billed", "", "Invalid Quantity");
|
1467 |
throw new ProfitMandiBusinessException("Cant bad return more than what is billed", "", "Invalid Quantity");
|
| 1469 |
}
|
1468 |
}
|
| 1470 |
List<CustomerReturnItem> customerReturnItems = new ArrayList<>();
|
1469 |
List<CustomerReturnItem> customerReturnItems = new ArrayList<>();
|
| 1471 |
for (BadReturnRequest badReturnRequest : foiBadReturnRequest.getMarkedBadArr()) {
|
1470 |
for (BadReturnRequest badReturnRequest : foiBadReturnRequest.getMarkedBadArr()) {
|
| 1472 |
CustomerReturnItem customerReturnItem = new CustomerReturnItem();
|
1471 |
CustomerReturnItem customerReturnItem = new CustomerReturnItem();
|
| Line 1475... |
Line 1474... |
| 1475 |
customerReturnItem.setFofoOrderId(fofoOrder.getId());
|
1474 |
customerReturnItem.setFofoOrderId(fofoOrder.getId());
|
| 1476 |
customerReturnItem.setRemarks(badReturnRequest.getRemarks());
|
1475 |
customerReturnItem.setRemarks(badReturnRequest.getRemarks());
|
| 1477 |
customerReturnItem.setInventoryItemId(badReturnRequest.getInventoryItemId());
|
1476 |
customerReturnItem.setInventoryItemId(badReturnRequest.getInventoryItemId());
|
| 1478 |
customerReturnItem.setQuantity(1);
|
1477 |
customerReturnItem.setQuantity(1);
|
| 1479 |
customerReturnItem.setType(ReturnType.BAD);
|
1478 |
customerReturnItem.setType(ReturnType.BAD);
|
| 1480 |
//customerReturnItemRepository.persist(customerReturnItem);
|
1479 |
// customerReturnItemRepository.persist(customerReturnItem);
|
| 1481 |
inventoryService.saleReturnInventoryItem(customerReturnItem);
|
1480 |
inventoryService.saleReturnInventoryItem(customerReturnItem);
|
| 1482 |
customerReturnItems.add(customerReturnItem);
|
1481 |
customerReturnItems.add(customerReturnItem);
|
| 1483 |
}
|
1482 |
}
|
| 1484 |
CustomerCreditNote creditNote = generateCreditNote(fofoOrder, customerReturnItems);
|
1483 |
CustomerCreditNote creditNote = generateCreditNote(fofoOrder, customerReturnItems);
|
| 1485 |
for (CustomerReturnItem customerReturnItem: customerReturnItems) {
|
1484 |
for (CustomerReturnItem customerReturnItem : customerReturnItems) {
|
| 1486 |
purchaseReturnService.returnInventoryItem(fofoId, false, customerReturnItem.getInventoryItemId(), ReturnType.BAD);
|
1485 |
purchaseReturnService.returnInventoryItem(fofoId, false, customerReturnItem.getInventoryItemId(),
|
| - |
|
1486 |
ReturnType.BAD);
|
| 1487 |
}
|
1487 |
}
|
| 1488 |
return creditNote;
|
1488 |
return creditNote;
|
| 1489 |
}
|
1489 |
}
|
| 1490 |
|
1490 |
|
| 1491 |
private CustomerCreditNote generateCreditNote(FofoOrder fofoOrder, List<CustomerReturnItem> customerReturnItems) throws ProfitMandiBusinessException {
|
1491 |
private CustomerCreditNote generateCreditNote(FofoOrder fofoOrder, List<CustomerReturnItem> customerReturnItems)
|
| - |
|
1492 |
throws ProfitMandiBusinessException {
|
| 1492 |
|
1493 |
|
| 1493 |
InvoiceNumberGenerationSequence sequence = invoiceNumberGenerationSequenceRepository
|
1494 |
InvoiceNumberGenerationSequence sequence = invoiceNumberGenerationSequenceRepository
|
| 1494 |
.selectByFofoId(fofoOrder.getFofoId());
|
1495 |
.selectByFofoId(fofoOrder.getFofoId());
|
| 1495 |
sequence.setCreditNoteSequence(sequence.getCreditNoteSequence() + 1);
|
1496 |
sequence.setCreditNoteSequence(sequence.getCreditNoteSequence() + 1);
|
| 1496 |
invoiceNumberGenerationSequenceRepository.persist(sequence);
|
1497 |
invoiceNumberGenerationSequenceRepository.persist(sequence);
|
| 1497 |
|
1498 |
|
| 1498 |
String creditNoteNumber = sequence.getPrefix() + "/" + sequence.getCreditNoteSequence();
|
1499 |
String creditNoteNumber = sequence.getPrefix() + "/" + sequence.getCreditNoteSequence();
|
| 1499 |
CustomerCreditNote creditNote = new CustomerCreditNote();
|
1500 |
CustomerCreditNote creditNote = new CustomerCreditNote();
|
| 1500 |
creditNote.setCreditNoteNumber(creditNoteNumber);
|
1501 |
creditNote.setCreditNoteNumber(creditNoteNumber);
|
| 1501 |
creditNote.setFofoId(fofoOrder.getFofoId());
|
1502 |
creditNote.setFofoId(fofoOrder.getFofoId());
|
| 1502 |
creditNote.setFofoOrderId(fofoOrder.getId());
|
1503 |
creditNote.setFofoOrderId(fofoOrder.getId());
|
| 1503 |
creditNote.setFofoOrderItemId(customerReturnItems.get(0).getFofoOrderItemId());
|
1504 |
creditNote.setFofoOrderItemId(customerReturnItems.get(0).getFofoOrderItemId());
|
| 1504 |
creditNote.setSettlementType(SettlementType.UNSETTLED);
|
1505 |
creditNote.setSettlementType(SettlementType.UNSETTLED);
|
| 1505 |
customerCreditNoteRepository.persist(creditNote);
|
1506 |
customerCreditNoteRepository.persist(creditNote);
|
| 1506 |
|
1507 |
|
| 1507 |
for (CustomerReturnItem customerReturnItem : customerReturnItems) {
|
1508 |
for (CustomerReturnItem customerReturnItem : customerReturnItems) {
|
| 1508 |
customerReturnItem.setCreditNoteId(creditNote.getId());
|
1509 |
customerReturnItem.setCreditNoteId(creditNote.getId());
|
| 1509 |
customerReturnItemRepository.persist(customerReturnItem);
|
1510 |
customerReturnItemRepository.persist(customerReturnItem);
|
| 1510 |
}
|
1511 |
}
|
| 1511 |
//this.returnInventoryItems(inventoryItems, debitNote);
|
1512 |
// this.returnInventoryItems(inventoryItems, debitNote);
|
| 1512 |
|
1513 |
|
| 1513 |
return creditNote;
|
1514 |
return creditNote;
|
| 1514 |
}
|
1515 |
}
|
| 1515 |
|
1516 |
|
| 1516 |
@Override
|
1517 |
@Override
|
| 1517 |
public CreditNotePdfModel getCreditNotePdfModel(int customerCreditNoteId) throws ProfitMandiBusinessException {
|
1518 |
public CreditNotePdfModel getCreditNotePdfModel(int customerCreditNoteId) throws ProfitMandiBusinessException {
|
| 1518 |
CustomerCreditNote creditNote = customerCreditNoteRepository.selectById(customerCreditNoteId);
|
1519 |
CustomerCreditNote creditNote = customerCreditNoteRepository.selectById(customerCreditNoteId);
|
| 1519 |
return getCreditNotePdfModel(creditNote);
|
1520 |
return getCreditNotePdfModel(creditNote);
|
| 1520 |
}
|
1521 |
}
|
| 1521 |
|
1522 |
|
| 1522 |
private CreditNotePdfModel getCreditNotePdfModel(CustomerCreditNote creditNote) throws ProfitMandiBusinessException {
|
1523 |
private CreditNotePdfModel getCreditNotePdfModel(CustomerCreditNote creditNote)
|
| - |
|
1524 |
throws ProfitMandiBusinessException {
|
| 1523 |
FofoOrder fofoOrder = fofoOrderRepository.selectByOrderId(creditNote.getFofoOrderId());
|
1525 |
FofoOrder fofoOrder = fofoOrderRepository.selectByOrderId(creditNote.getFofoOrderId());
|
| 1524 |
List<CustomerReturnItem> customerReturnItems = customerReturnItemRepository.selectAllByCreditNoteId(creditNote.getId());
|
1526 |
List<CustomerReturnItem> customerReturnItems = customerReturnItemRepository
|
| - |
|
1527 |
.selectAllByCreditNoteId(creditNote.getId());
|
| 1525 |
CustomCustomer customCustomer = getCustomCustomer(fofoOrder);
|
1528 |
CustomCustomer customCustomer = getCustomCustomer(fofoOrder);
|
| 1526 |
|
1529 |
|
| 1527 |
Set<CustomOrderItem> customerFofoOrderItems = new HashSet<>();
|
1530 |
Set<CustomOrderItem> customerFofoOrderItems = new HashSet<>();
|
| 1528 |
CustomRetailer customRetailer = retailerService.getFofoRetailers(Arrays.asList(fofoOrder.getFofoId())).get(fofoOrder.getFofoId());
|
1531 |
CustomRetailer customRetailer = retailerService.getFofoRetailers(Arrays.asList(fofoOrder.getFofoId()))
|
| - |
|
1532 |
.get(fofoOrder.getFofoId());
|
| 1529 |
|
1533 |
|
| 1530 |
FofoOrderItem fofoOrderItem = fofoOrderItemRepository.selectById(creditNote.getFofoOrderItemId());
|
1534 |
FofoOrderItem fofoOrderItem = fofoOrderItemRepository.selectById(creditNote.getFofoOrderItemId());
|
| 1531 |
float totalTaxRate = fofoOrderItem.getIgstRate() + fofoOrderItem.getSgstRate() + fofoOrderItem.getCgstRate();
|
1535 |
float totalTaxRate = fofoOrderItem.getIgstRate() + fofoOrderItem.getSgstRate() + fofoOrderItem.getCgstRate();
|
| 1532 |
float taxableSellingPrice = fofoOrderItem.getSellingPrice() / (1 + totalTaxRate / 100);
|
1536 |
float taxableSellingPrice = fofoOrderItem.getSellingPrice() / (1 + totalTaxRate / 100);
|
| 1533 |
float taxableDiscountPrice = fofoOrderItem.getDiscount() / (1 + totalTaxRate / 100);
|
1537 |
float taxableDiscountPrice = fofoOrderItem.getDiscount() / (1 + totalTaxRate / 100);
|
| 1534 |
|
1538 |
|
| 1535 |
CustomOrderItem customFofoOrderItem = new CustomOrderItem();
|
1539 |
CustomOrderItem customFofoOrderItem = new CustomOrderItem();
|
| 1536 |
customFofoOrderItem.setAmount(customerReturnItems.size() * (taxableSellingPrice - taxableDiscountPrice));
|
1540 |
customFofoOrderItem.setAmount(customerReturnItems.size() * (taxableSellingPrice - taxableDiscountPrice));
|
| 1537 |
customFofoOrderItem.setDescription(fofoOrderItem.getBrand() + " " + fofoOrderItem.getModelName() + " "
|
1541 |
customFofoOrderItem.setDescription(fofoOrderItem.getBrand() + " " + fofoOrderItem.getModelName() + " "
|
| 1538 |
+ fofoOrderItem.getModelNumber() + "-" + fofoOrderItem.getColor());
|
1542 |
+ fofoOrderItem.getModelNumber() + "-" + fofoOrderItem.getColor());
|
| 1539 |
|
1543 |
|
| 1540 |
if(ItemType.SERIALIZED.equals(itemRepository.selectById(fofoOrderItem.getItemId()).getType())){
|
1544 |
if (ItemType.SERIALIZED.equals(itemRepository.selectById(fofoOrderItem.getItemId()).getType())) {
|
| 1541 |
Set<Integer> inventoryItemIds = customerReturnItems.stream().map(x -> x.getInventoryItemId())
|
1545 |
Set<Integer> inventoryItemIds = customerReturnItems.stream().map(x -> x.getInventoryItemId())
|
| 1542 |
.collect(Collectors.toSet());
|
1546 |
.collect(Collectors.toSet());
|
| 1543 |
List<String> serialNumbers = inventoryItemRepository.selectByIds(inventoryItemIds).stream()
|
1547 |
List<String> serialNumbers = inventoryItemRepository.selectByIds(inventoryItemIds).stream()
|
| 1544 |
.map(x -> x.getSerialNumber()).collect(Collectors.toList());
|
1548 |
.map(x -> x.getSerialNumber()).collect(Collectors.toList());
|
| 1545 |
customFofoOrderItem.setDescription(
|
1549 |
customFofoOrderItem.setDescription(
|
| 1546 |
customFofoOrderItem.getDescription() + "\n IMEIS - " + String.join(", ", serialNumbers));
|
1550 |
customFofoOrderItem.getDescription() + "\n IMEIS - " + String.join(", ", serialNumbers));
|
| 1547 |
}
|
1551 |
}
|
| 1548 |
|
1552 |
|
| 1549 |
customFofoOrderItem.setRate(taxableSellingPrice);
|
1553 |
customFofoOrderItem.setRate(taxableSellingPrice);
|
| 1550 |
customFofoOrderItem.setDiscount(taxableDiscountPrice);
|
1554 |
customFofoOrderItem.setDiscount(taxableDiscountPrice);
|
| 1551 |
customFofoOrderItem.setQuantity(customerReturnItems.size());
|
1555 |
customFofoOrderItem.setQuantity(customerReturnItems.size());
|
| - |
|
1556 |
customFofoOrderItem.setNetAmount(
|
| 1552 |
customFofoOrderItem.setNetAmount((fofoOrderItem.getSellingPrice() - fofoOrderItem.getDiscount()) * customFofoOrderItem.getQuantity());
|
1557 |
(fofoOrderItem.getSellingPrice() - fofoOrderItem.getDiscount()) * customFofoOrderItem.getQuantity());
|
| 1553 |
|
1558 |
|
| 1554 |
float igstAmount = (customFofoOrderItem.getAmount() * fofoOrderItem.getIgstRate()) / 100;
|
1559 |
float igstAmount = (customFofoOrderItem.getAmount() * fofoOrderItem.getIgstRate()) / 100;
|
| 1555 |
float cgstAmount = (customFofoOrderItem.getAmount() * fofoOrderItem.getCgstRate()) / 100;
|
1560 |
float cgstAmount = (customFofoOrderItem.getAmount() * fofoOrderItem.getCgstRate()) / 100;
|
| 1556 |
float sgstAmount = (customFofoOrderItem.getAmount() * fofoOrderItem.getSgstRate()) / 100;
|
1561 |
float sgstAmount = (customFofoOrderItem.getAmount() * fofoOrderItem.getSgstRate()) / 100;
|
| 1557 |
LOGGER.info("fofoOrderItem - {}", fofoOrderItem);
|
1562 |
LOGGER.info("fofoOrderItem - {}", fofoOrderItem);
|
| Line 1562... |
Line 1567... |
| 1562 |
customFofoOrderItem.setSgstRate(fofoOrderItem.getSgstRate());
|
1567 |
customFofoOrderItem.setSgstRate(fofoOrderItem.getSgstRate());
|
| 1563 |
customFofoOrderItem.setSgstAmount(sgstAmount);
|
1568 |
customFofoOrderItem.setSgstAmount(sgstAmount);
|
| 1564 |
customFofoOrderItem.setHsnCode(fofoOrderItem.getHsnCode());
|
1569 |
customFofoOrderItem.setHsnCode(fofoOrderItem.getHsnCode());
|
| 1565 |
customFofoOrderItem.setOrderId(1);
|
1570 |
customFofoOrderItem.setOrderId(1);
|
| 1566 |
customerFofoOrderItems.add(customFofoOrderItem);
|
1571 |
customerFofoOrderItems.add(customFofoOrderItem);
|
| 1567 |
|
1572 |
|
| 1568 |
PdfModel pdfModel = new PdfModel();
|
1573 |
PdfModel pdfModel = new PdfModel();
|
| 1569 |
pdfModel.setAuther("NSSPL");
|
1574 |
pdfModel.setAuther("NSSPL");
|
| 1570 |
pdfModel.setCustomer(customCustomer);
|
1575 |
pdfModel.setCustomer(customCustomer);
|
| 1571 |
pdfModel.setInvoiceNumber(fofoOrder.getInvoiceNumber());
|
1576 |
pdfModel.setInvoiceNumber(fofoOrder.getInvoiceNumber());
|
| 1572 |
pdfModel.setInvoiceDate(FormattingUtils.formatDate(fofoOrder.getCreateTimestamp()));
|
1577 |
pdfModel.setInvoiceDate(FormattingUtils.formatDate(fofoOrder.getCreateTimestamp()));
|
| 1573 |
pdfModel.setTitle("Credit Note");
|
1578 |
pdfModel.setTitle("Credit Note");
|
| 1574 |
pdfModel.setRetailer(customRetailer);
|
1579 |
pdfModel.setRetailer(customRetailer);
|
| 1575 |
pdfModel.setTotalAmount(customFofoOrderItem.getNetAmount());
|
1580 |
pdfModel.setTotalAmount(customFofoOrderItem.getNetAmount());
|
| 1576 |
pdfModel.setOrderItems(customerFofoOrderItems);
|
1581 |
pdfModel.setOrderItems(customerFofoOrderItems);
|
| 1577 |
|
1582 |
|
| 1578 |
CreditNotePdfModel creditNotePdfModel = new CreditNotePdfModel();
|
1583 |
CreditNotePdfModel creditNotePdfModel = new CreditNotePdfModel();
|
| 1579 |
creditNotePdfModel.setCreditNoteDate(FormattingUtils.formatDate(creditNote.getCreateTimestamp()));
|
1584 |
creditNotePdfModel.setCreditNoteDate(FormattingUtils.formatDate(creditNote.getCreateTimestamp()));
|
| 1580 |
creditNotePdfModel.setCreditNoteNumber(creditNote.getCreditNoteNumber());
|
1585 |
creditNotePdfModel.setCreditNoteNumber(creditNote.getCreditNoteNumber());
|
| 1581 |
creditNotePdfModel.setPdfModel(pdfModel);
|
1586 |
creditNotePdfModel.setPdfModel(pdfModel);
|
| 1582 |
return creditNotePdfModel;
|
1587 |
return creditNotePdfModel;
|
| 1583 |
}
|
1588 |
}
|
| 1584 |
|
1589 |
|
| 1585 |
|
- |
|
| 1586 |
//This will remove the order and maintain order record and reverse inventory and scheme
|
1590 |
// This will remove the order and maintain order record and reverse inventory
|
| - |
|
1591 |
// and scheme
|
| 1587 |
@Override
|
1592 |
@Override
|
| 1588 |
public void cancelOrder(List<String> invoiceNumbers) throws Exception {
|
1593 |
public void cancelOrder(List<String> invoiceNumbers) throws Exception {
|
| 1589 |
for(String invoiceNumber : invoiceNumbers) {
|
1594 |
for (String invoiceNumber : invoiceNumbers) {
|
| 1590 |
FofoOrder fofoOrder = fofoOrderRepository.selectByInvoiceNumber(invoiceNumber);
|
1595 |
FofoOrder fofoOrder = fofoOrderRepository.selectByInvoiceNumber(invoiceNumber);
|
| 1591 |
fofoOrder.setCancelledTimestamp(LocalDateTime.now());
|
1596 |
fofoOrder.setCancelledTimestamp(LocalDateTime.now());
|
| 1592 |
fofoOrderRepository.persist(fofoOrder);
|
1597 |
fofoOrderRepository.persist(fofoOrder);
|
| 1593 |
List<PaymentOptionTransaction> paymentTransactions = paymentOptionTransactionRepository.selectByReferenceIdAndType(fofoOrder.getId(), PaymentOptionReferenceType.ORDER);
|
1598 |
List<PaymentOptionTransaction> paymentTransactions = paymentOptionTransactionRepository
|
| - |
|
1599 |
.selectByReferenceIdAndType(fofoOrder.getId(), PaymentOptionReferenceType.ORDER);
|
| 1594 |
for (PaymentOptionTransaction paymentOptionTransaction : paymentTransactions) {
|
1600 |
for (PaymentOptionTransaction paymentOptionTransaction : paymentTransactions) {
|
| 1595 |
paymentOptionTransactionRepository.delete(paymentOptionTransaction);
|
1601 |
paymentOptionTransactionRepository.delete(paymentOptionTransaction);
|
| 1596 |
}
|
1602 |
}
|
| 1597 |
List<FofoOrderItem> fois = fofoOrderItemRepository.selectByOrderId(fofoOrder.getId());
|
1603 |
List<FofoOrderItem> fois = fofoOrderItemRepository.selectByOrderId(fofoOrder.getId());
|
| 1598 |
List<InventoryItem> inventoryItems = new ArrayList<>();
|
1604 |
List<InventoryItem> inventoryItems = new ArrayList<>();
|
| 1599 |
fois.stream().forEach(x->{
|
1605 |
fois.stream().forEach(x -> {
|
| 1600 |
x.getFofoLineItems().stream().forEach(y->{
|
1606 |
x.getFofoLineItems().stream().forEach(y -> {
|
| 1601 |
inventoryService.rollbackInventory(y.getInventoryItemId(), y.getQuantity(), fofoOrder.getFofoId());
|
1607 |
inventoryService.rollbackInventory(y.getInventoryItemId(), y.getQuantity(), fofoOrder.getFofoId());
|
| 1602 |
inventoryItems.add(inventoryItemRepository.selectById(y.getInventoryItemId()));
|
1608 |
inventoryItems.add(inventoryItemRepository.selectById(y.getInventoryItemId()));
|
| 1603 |
});
|
1609 |
});
|
| 1604 |
});
|
1610 |
});
|
| 1605 |
String reversalReason = "Order Rolledback/Cancelled for Invoice Number " + invoiceNumber;
|
1611 |
String reversalReason = "Order Rolledback/Cancelled for Invoice Number " + invoiceNumber;
|
| 1606 |
schemeService.reverseSchemes(inventoryItems, fofoOrder.getId(), reversalReason, SchemeType.OUT);
|
1612 |
schemeService.reverseSchemes(inventoryItems, fofoOrder.getId(), reversalReason, SchemeType.OUT);
|
| 1607 |
}
|
1613 |
}
|
| 1608 |
}
|
1614 |
}
|
| 1609 |
|
1615 |
|
| 1610 |
|
- |
|
| 1611 |
@Override
|
1616 |
@Override
|
| 1612 |
public float getSales(int fofoId, LocalDateTime startDate, LocalDateTime endDate) {
|
1617 |
public float getSales(int fofoId, LocalDateTime startDate, LocalDateTime endDate) {
|
| 1613 |
// TODO Auto-generated method stub
|
1618 |
// TODO Auto-generated method stub
|
| 1614 |
return 0;
|
1619 |
return 0;
|
| 1615 |
}
|
1620 |
}
|
| 1616 |
|
1621 |
|
| 1617 |
|
- |
|
| 1618 |
@Override
|
1622 |
@Override
|
| 1619 |
public float getSales(int fofoId, LocalDate onDate) {
|
1623 |
public float getSales(int fofoId, LocalDate onDate) {
|
| 1620 |
return fofoOrderRepository.selectSaleSumGroupByFofoIds(LocalDateTime.of(onDate, LocalTime.MIDNIGHT),
|
1624 |
LocalDateTime startTime = LocalDateTime.of(onDate, LocalTime.MIDNIGHT).minusDays(1);
|
| 1621 |
LocalDateTime.of(onDate.plusDays(1), LocalTime.MIDNIGHT)).get(fofoId);
|
1625 |
LocalDateTime endTime = LocalDateTime.of(onDate, LocalTime.MIDNIGHT);
|
| - |
|
1626 |
Float sales = fofoOrderRepository.selectSaleSumGroupByFofoIds(startTime, endTime).get(fofoId);
|
| - |
|
1627 |
return sales == null ? 0f : sales;
|
| 1622 |
}
|
1628 |
}
|
| 1623 |
|
1629 |
|
| 1624 |
|
- |
|
| 1625 |
@Override
|
1630 |
@Override
|
| 1626 |
public float getSales(LocalDateTime onDate) {
|
1631 |
public float getSales(LocalDateTime onDate) {
|
| 1627 |
// TODO Auto-generated method stub
|
1632 |
// TODO Auto-generated method stub
|
| 1628 |
return 0;
|
1633 |
return 0;
|
| 1629 |
}
|
1634 |
}
|
| 1630 |
|
1635 |
|
| 1631 |
|
- |
|
| 1632 |
@Override
|
1636 |
@Override
|
| 1633 |
public float getSales(LocalDateTime startDate, LocalDateTime endDate) {
|
1637 |
public float getSales(LocalDateTime startDate, LocalDateTime endDate) {
|
| 1634 |
// TODO Auto-generated method stub
|
1638 |
// TODO Auto-generated method stub
|
| 1635 |
return 0;
|
1639 |
return 0;
|
| 1636 |
}
|
1640 |
}
|