Subversion Repositories SmartDukaan

Rev

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

Rev 24215 Rev 24226
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>();