| Line 243... |
Line 243... |
| 243 |
Map<Integer, CustomFofoOrderItem> itemIdCustomFofoOrderItemMap = new HashMap<>();
|
243 |
Map<Integer, CustomFofoOrderItem> itemIdCustomFofoOrderItemMap = new HashMap<>();
|
| 244 |
Map<Integer, Float> lineItemPrice = new HashMap<>(); // this is for pricing error
|
244 |
Map<Integer, Float> lineItemPrice = new HashMap<>(); // this is for pricing error
|
| 245 |
|
245 |
|
| 246 |
|
246 |
|
| 247 |
float totalAmount = 0;
|
247 |
float totalAmount = 0;
|
| - |
|
248 |
boolean noGST = false;
|
| 248 |
for (CustomFofoOrderItem customFofoOrderItem : createOrderRequest.getFofoOrderItems()) {
|
249 |
for (CustomFofoOrderItem customFofoOrderItem : createOrderRequest.getFofoOrderItems()) {
|
| 249 |
// itemIds.add(customFofoOrderItem.getItemId());
|
250 |
// itemIds.add(customFofoOrderItem.getItemId());
|
| 250 |
Set<String> serialNumbers = this
|
251 |
Set<String> serialNumbers = this
|
| 251 |
.serialNumberDetailsToSerialNumbers(customFofoOrderItem.getSerialNumberDetails());
|
252 |
.serialNumberDetailsToSerialNumbers(customFofoOrderItem.getSerialNumberDetails());
|
| 252 |
if (!serialNumbers.isEmpty() && customFofoOrderItem.getQuantity() != serialNumbers.size()) {
|
253 |
if (!serialNumbers.isEmpty() && customFofoOrderItem.getQuantity() != serialNumbers.size()) {
|
| Line 304... |
Line 305... |
| 304 |
Map<String, Float> insuranceSerialNumberSaleAmount = new HashMap<>();
|
305 |
Map<String, Float> insuranceSerialNumberSaleAmount = new HashMap<>();
|
| 305 |
Map<String, String> serialNumberModelName = new HashMap<>();
|
306 |
Map<String, String> serialNumberModelName = new HashMap<>();
|
| 306 |
Map<String, String> serialNumberBrand = new HashMap<>();
|
307 |
Map<String, String> serialNumberBrand = new HashMap<>();
|
| 307 |
for (CustomFofoOrderItem customFofoOrderItem : createOrderRequest.getFofoOrderItems()) {
|
308 |
for (CustomFofoOrderItem customFofoOrderItem : createOrderRequest.getFofoOrderItems()) {
|
| 308 |
Item item = itemMap.get(customFofoOrderItem.getItemId());
|
309 |
Item item = itemMap.get(customFofoOrderItem.getItemId());
|
| - |
|
310 |
noGST = item.getHsnCode().equals("NOGST");
|
| 309 |
if (item.getType().equals(ItemType.SERIALIZED)) {
|
311 |
if (item.getType().equals(ItemType.SERIALIZED)) {
|
| 310 |
for (SerialNumberDetail serialNumberDetail : customFofoOrderItem.getSerialNumberDetails()) {
|
312 |
for (SerialNumberDetail serialNumberDetail : customFofoOrderItem.getSerialNumberDetails()) {
|
| 311 |
serialNumbers.add(serialNumberDetail.getSerialNumber());
|
313 |
serialNumbers.add(serialNumberDetail.getSerialNumber());
|
| 312 |
if (serialNumberDetail.isInsurance()) {
|
314 |
if (serialNumberDetail.isInsurance()) {
|
| 313 |
insuranceSerialNumberItemPrice.put(serialNumberDetail.getSerialNumber(),
|
315 |
insuranceSerialNumberItemPrice.put(serialNumberDetail.getSerialNumber(),
|
| Line 431... |
Line 433... |
| 431 |
} else {
|
433 |
} else {
|
| 432 |
this.validateMopPrice(itemIdMopPriceMap, itemIdCustomFofoOrderItemMap);
|
434 |
this.validateMopPrice(itemIdMopPriceMap, itemIdCustomFofoOrderItemMap);
|
| 433 |
}
|
435 |
}
|
| 434 |
|
436 |
|
| 435 |
String fofoStoreCode = this.getFofoStoreCode(fofoId);
|
437 |
String fofoStoreCode = this.getFofoStoreCode(fofoId);
|
| 436 |
|
- |
|
| 437 |
InvoiceNumberGenerationSequence invoiceNumberGenerationSequence = this
|
438 |
InvoiceNumberGenerationSequence invoiceNumberGenerationSequence = null;
|
| - |
|
439 |
String documentNumber = null;
|
| - |
|
440 |
if(noGST) {
|
| 438 |
.createAndGetInvoiceNumberGenerationSequence(fofoId, fofoStoreCode);
|
441 |
documentNumber = this.getSecurityDepositNumber(fofoId, fofoStoreCode);
|
| - |
|
442 |
|
| - |
|
443 |
} else {
|
| - |
|
444 |
documentNumber = this.getInvoiceNumber(fofoId, fofoStoreCode);
|
| - |
|
445 |
}
|
| - |
|
446 |
|
| 439 |
|
447 |
|
| 440 |
Customer customer = this.createAndGetCustomer(customCustomer);
|
448 |
Customer customer = this.createAndGetCustomer(customCustomer);
|
| 441 |
|
449 |
|
| 442 |
CustomerAddress customerAddress = this.createCustomerAddress(customCustomer.getAddress(), customer.getId());
|
450 |
CustomerAddress customerAddress = this.createCustomerAddress(customCustomer.getAddress(), customer.getId());
|
| 443 |
|
451 |
|
| 444 |
FofoOrder fofoOrder = this.createAndGetFofoOrder(customer.getId(), customCustomer.getGstNumber(), fofoId,
|
452 |
FofoOrder fofoOrder = this.createAndGetFofoOrder(customer.getId(), customCustomer.getGstNumber(), fofoId,
|
| 445 |
invoiceNumberGenerationSequence, totalAmount, customerAddress.getId());
|
453 |
documentNumber, totalAmount, customerAddress.getId());
|
| 446 |
|
454 |
|
| 447 |
this.createPaymentOptions(fofoOrder, createOrderRequest.getPaymentOptions());
|
455 |
this.createPaymentOptions(fofoOrder, createOrderRequest.getPaymentOptions());
|
| 448 |
|
456 |
|
| 449 |
int retailerAddressId = retailerRegisteredAddressRepository.selectAddressIdByRetailerId(fofoId);
|
457 |
int retailerAddressId = retailerRegisteredAddressRepository.selectAddressIdByRetailerId(fofoId);
|
| 450 |
|
458 |
|
| Line 521... |
Line 529... |
| 521 |
schemeService.processSchemeOut(fofoOrder.getId(), fofoId);
|
529 |
schemeService.processSchemeOut(fofoOrder.getId(), fofoId);
|
| 522 |
|
530 |
|
| 523 |
return fofoOrder.getId();
|
531 |
return fofoOrder.getId();
|
| 524 |
}
|
532 |
}
|
| 525 |
|
533 |
|
| - |
|
534 |
private String getSecurityDepositNumber(int fofoId,
|
| - |
|
535 |
String fofoStoreCode) {
|
| - |
|
536 |
InvoiceNumberGenerationSequence invoiceNumberGenerationSequence = null;
|
| - |
|
537 |
try {
|
| - |
|
538 |
invoiceNumberGenerationSequence = invoiceNumberGenerationSequenceRepository.selectByFofoId(fofoId);
|
| - |
|
539 |
invoiceNumberGenerationSequence.setChallanNumberSequence(invoiceNumberGenerationSequence.getChallanNumberSequence()+ 1);
|
| - |
|
540 |
} catch (ProfitMandiBusinessException profitMandiBusinessException) {
|
| - |
|
541 |
invoiceNumberGenerationSequence = new InvoiceNumberGenerationSequence();
|
| - |
|
542 |
invoiceNumberGenerationSequence.setFofoId(fofoId);
|
| - |
|
543 |
invoiceNumberGenerationSequence.setPrefix(fofoStoreCode);
|
| - |
|
544 |
invoiceNumberGenerationSequence.setChallanNumberSequence(1);
|
| - |
|
545 |
}
|
| - |
|
546 |
invoiceNumberGenerationSequenceRepository.persist(invoiceNumberGenerationSequence);
|
| - |
|
547 |
return invoiceNumberGenerationSequence.getPrefix() + "/SEC" + invoiceNumberGenerationSequence.getChallanNumberSequence();
|
| - |
|
548 |
}
|
| - |
|
549 |
|
| 526 |
private Set<String> serialNumberDetailsToSerialNumbers(Set<SerialNumberDetail> serialNumberDetails) {
|
550 |
private Set<String> serialNumberDetailsToSerialNumbers(Set<SerialNumberDetail> serialNumberDetails) {
|
| 527 |
Set<String> serialNumbers = new HashSet<>();
|
551 |
Set<String> serialNumbers = new HashSet<>();
|
| 528 |
for (SerialNumberDetail serialNumberDetail : serialNumberDetails) {
|
552 |
for (SerialNumberDetail serialNumberDetail : serialNumberDetails) {
|
| 529 |
if (serialNumberDetail.getSerialNumber() != null && !serialNumberDetail.getSerialNumber().isEmpty()) {
|
553 |
if (serialNumberDetail.getSerialNumber() != null && !serialNumberDetail.getSerialNumber().isEmpty()) {
|
| 530 |
serialNumbers.add(serialNumberDetail.getSerialNumber());
|
554 |
serialNumbers.add(serialNumberDetail.getSerialNumber());
|
| Line 1161... |
Line 1185... |
| 1161 |
}
|
1185 |
}
|
| 1162 |
}
|
1186 |
}
|
| 1163 |
}
|
1187 |
}
|
| 1164 |
|
1188 |
|
| 1165 |
private FofoOrder createAndGetFofoOrder(int customerId, String customerGstNumber, int fofoId,
|
1189 |
private FofoOrder createAndGetFofoOrder(int customerId, String customerGstNumber, int fofoId,
|
| 1166 |
InvoiceNumberGenerationSequence invoiceNumberGenerationSequence, float totalAmount, int customerAddressId) {
|
1190 |
String documentNumber, float totalAmount, int customerAddressId) {
|
| 1167 |
FofoOrder fofoOrder = new FofoOrder();
|
1191 |
FofoOrder fofoOrder = new FofoOrder();
|
| 1168 |
fofoOrder.setCustomerGstNumber(customerGstNumber);
|
1192 |
fofoOrder.setCustomerGstNumber(customerGstNumber);
|
| 1169 |
fofoOrder.setCustomerId(customerId);
|
1193 |
fofoOrder.setCustomerId(customerId);
|
| 1170 |
fofoOrder.setFofoId(fofoId);
|
1194 |
fofoOrder.setFofoId(fofoId);
|
| 1171 |
fofoOrder.setInvoiceNumber(
|
1195 |
fofoOrder.setInvoiceNumber(documentNumber);
|
| 1172 |
invoiceNumberGenerationSequence.getPrefix() + "/" + invoiceNumberGenerationSequence.getSequence());
|
- |
|
| 1173 |
fofoOrder.setTotalAmount(totalAmount);
|
1196 |
fofoOrder.setTotalAmount(totalAmount);
|
| 1174 |
fofoOrder.setCustomerAddressId(customerAddressId);
|
1197 |
fofoOrder.setCustomerAddressId(customerAddressId);
|
| 1175 |
fofoOrderRepository.persist(fofoOrder);
|
1198 |
fofoOrderRepository.persist(fofoOrder);
|
| 1176 |
return fofoOrder;
|
1199 |
return fofoOrder;
|
| 1177 |
}
|
1200 |
}
|
| Line 1190... |
Line 1213... |
| 1190 |
customer.setMobileNumber(customCustomer.getMobileNumber());
|
1213 |
customer.setMobileNumber(customCustomer.getMobileNumber());
|
| 1191 |
customerRepository.persist(customer);
|
1214 |
customerRepository.persist(customer);
|
| 1192 |
return customer;
|
1215 |
return customer;
|
| 1193 |
}
|
1216 |
}
|
| 1194 |
|
1217 |
|
| 1195 |
private InvoiceNumberGenerationSequence createAndGetInvoiceNumberGenerationSequence(int fofoId,
|
1218 |
private String getInvoiceNumber(int fofoId,
|
| 1196 |
String fofoStoreCode) {
|
1219 |
String fofoStoreCode) {
|
| 1197 |
InvoiceNumberGenerationSequence invoiceNumberGenerationSequence = null;
|
1220 |
InvoiceNumberGenerationSequence invoiceNumberGenerationSequence = null;
|
| 1198 |
try {
|
1221 |
try {
|
| 1199 |
invoiceNumberGenerationSequence = invoiceNumberGenerationSequenceRepository.selectByFofoId(fofoId);
|
1222 |
invoiceNumberGenerationSequence = invoiceNumberGenerationSequenceRepository.selectByFofoId(fofoId);
|
| 1200 |
invoiceNumberGenerationSequence.setSequence(invoiceNumberGenerationSequence.getSequence() + 1);
|
1223 |
invoiceNumberGenerationSequence.setSequence(invoiceNumberGenerationSequence.getSequence() + 1);
|
| Line 1203... |
Line 1226... |
| 1203 |
invoiceNumberGenerationSequence.setFofoId(fofoId);
|
1226 |
invoiceNumberGenerationSequence.setFofoId(fofoId);
|
| 1204 |
invoiceNumberGenerationSequence.setPrefix(fofoStoreCode);
|
1227 |
invoiceNumberGenerationSequence.setPrefix(fofoStoreCode);
|
| 1205 |
invoiceNumberGenerationSequence.setSequence(1);
|
1228 |
invoiceNumberGenerationSequence.setSequence(1);
|
| 1206 |
}
|
1229 |
}
|
| 1207 |
invoiceNumberGenerationSequenceRepository.persist(invoiceNumberGenerationSequence);
|
1230 |
invoiceNumberGenerationSequenceRepository.persist(invoiceNumberGenerationSequence);
|
| 1208 |
return invoiceNumberGenerationSequence;
|
1231 |
return invoiceNumberGenerationSequence.getPrefix() + "/SEC" + invoiceNumberGenerationSequence.getChallanNumberSequence();
|
| 1209 |
}
|
1232 |
}
|
| 1210 |
|
1233 |
|
| 1211 |
private void validateItemsSerializedNonSerialized(List<Item> items,
|
1234 |
private void validateItemsSerializedNonSerialized(List<Item> items,
|
| 1212 |
Map<Integer, CustomFofoOrderItem> customFofoOrderItemMap) throws ProfitMandiBusinessException {
|
1235 |
Map<Integer, CustomFofoOrderItem> customFofoOrderItemMap) throws ProfitMandiBusinessException {
|
| 1213 |
List<Integer> invalidItemIdSerialNumbers = new ArrayList<Integer>();
|
1236 |
List<Integer> invalidItemIdSerialNumbers = new ArrayList<Integer>();
|