| Line 1... |
Line 1... |
| 1 |
package com.spice.profitmandi.service;
|
1 |
package com.spice.profitmandi.service;
|
| 2 |
|
2 |
|
| 3 |
import com.spice.profitmandi.common.model.ProfitMandiConstants;
|
3 |
import com.spice.profitmandi.common.model.ProfitMandiConstants;
|
| - |
|
4 |
import com.spice.profitmandi.dao.entity.fofo.MonthlyTarget;
|
| 4 |
import com.spice.profitmandi.dao.entity.inventory.RbmAchievements;
|
5 |
import com.spice.profitmandi.dao.entity.inventory.RbmAchievements;
|
| 5 |
import com.spice.profitmandi.dao.entity.inventory.RbmTargets;
|
6 |
import com.spice.profitmandi.dao.entity.inventory.RbmTargets;
|
| 6 |
import com.spice.profitmandi.dao.model.*;
|
7 |
import com.spice.profitmandi.dao.model.*;
|
| 7 |
import com.spice.profitmandi.dao.repository.catalog.RbmAchievementsRepository;
|
8 |
import com.spice.profitmandi.dao.repository.catalog.RbmAchievementsRepository;
|
| 8 |
import com.spice.profitmandi.dao.repository.catalog.RbmTargetsRepository;
|
9 |
import com.spice.profitmandi.dao.repository.catalog.RbmTargetsRepository;
|
| - |
|
10 |
import com.spice.profitmandi.dao.repository.fofo.MonthlyTargetRepository;
|
| - |
|
11 |
import com.spice.profitmandi.dao.repository.transaction.OrderRepository;
|
| 9 |
import org.apache.logging.log4j.LogManager;
|
12 |
import org.apache.logging.log4j.LogManager;
|
| 10 |
import org.apache.logging.log4j.Logger;
|
13 |
import org.apache.logging.log4j.Logger;
|
| 11 |
import org.hibernate.Session;
|
14 |
import org.hibernate.Session;
|
| 12 |
import org.hibernate.SessionFactory;
|
15 |
import org.hibernate.SessionFactory;
|
| 13 |
import org.hibernate.query.NativeQuery;
|
16 |
import org.hibernate.query.NativeQuery;
|
| Line 16... |
Line 19... |
| 16 |
|
19 |
|
| 17 |
import javax.persistence.TypedQuery;
|
20 |
import javax.persistence.TypedQuery;
|
| 18 |
import java.time.LocalDate;
|
21 |
import java.time.LocalDate;
|
| 19 |
import java.time.LocalDateTime;
|
22 |
import java.time.LocalDateTime;
|
| 20 |
import java.time.LocalTime;
|
23 |
import java.time.LocalTime;
|
| - |
|
24 |
import java.time.YearMonth;
|
| 21 |
import java.util.ArrayList;
|
25 |
import java.util.ArrayList;
|
| 22 |
import java.util.List;
|
26 |
import java.util.List;
|
| 23 |
import java.util.Map;
|
27 |
import java.util.Map;
|
| 24 |
import java.util.Optional;
|
28 |
import java.util.Optional;
|
| 25 |
import java.util.stream.Collectors;
|
29 |
import java.util.stream.Collectors;
|
| Line 35... |
Line 39... |
| 35 |
RbmTargetsRepository rbmTargetsRepository;
|
39 |
RbmTargetsRepository rbmTargetsRepository;
|
| 36 |
|
40 |
|
| 37 |
@Autowired
|
41 |
@Autowired
|
| 38 |
RbmAchievementsRepository rbmAchievementsRepository;
|
42 |
RbmAchievementsRepository rbmAchievementsRepository;
|
| 39 |
|
43 |
|
| - |
|
44 |
@Autowired
|
| - |
|
45 |
MonthlyTargetRepository monthlyTargetRepository;
|
| - |
|
46 |
|
| 40 |
@Override
|
47 |
@Override
|
| 41 |
public List<WarehouseRbmTargetModel> getWarehouseWiseRbmMonthlyTarget() {
|
48 |
public List<WarehouseRbmTargetModel> getWarehouseWiseRbmMonthlyTarget() {
|
| 42 |
Session session = sessionFactory.getCurrentSession();
|
49 |
Session session = sessionFactory.getCurrentSession();
|
| 43 |
final TypedQuery<WarehouseRbmTargetModel> typedQuerySimilar = session.createNamedQuery("RbmTarget.getWarehouseWiseMonthlyTarget", WarehouseRbmTargetModel.class);
|
50 |
final TypedQuery<WarehouseRbmTargetModel> typedQuerySimilar = session.createNamedQuery("RbmTarget.getWarehouseWiseMonthlyTarget", WarehouseRbmTargetModel.class);
|
| 44 |
|
51 |
|
| Line 444... |
Line 451... |
| 444 |
final TypedQuery<Our15DaysOldAgingStock> typedQuerySimilar = session.createNamedQuery("Aging.15DaysOurStock", Our15DaysOldAgingStock.class);
|
451 |
final TypedQuery<Our15DaysOldAgingStock> typedQuerySimilar = session.createNamedQuery("Aging.15DaysOurStock", Our15DaysOldAgingStock.class);
|
| 445 |
return typedQuerySimilar.getResultList();
|
452 |
return typedQuerySimilar.getResultList();
|
| 446 |
|
453 |
|
| 447 |
}
|
454 |
}
|
| 448 |
|
455 |
|
| - |
|
456 |
@Autowired
|
| - |
|
457 |
OrderRepository orderRepository;
|
| - |
|
458 |
|
| - |
|
459 |
@Override
|
| - |
|
460 |
public double calculateFofoIdTodayTarget(int fofoId, double secondryMtd) {
|
| - |
|
461 |
|
| - |
|
462 |
LocalDate todayDate = LocalDate.now();
|
| - |
|
463 |
|
| - |
|
464 |
MonthlyTarget monthlyTarget = monthlyTargetRepository.selectByDateAndFofoId(YearMonth.now(), fofoId);
|
| - |
|
465 |
|
| - |
|
466 |
double remainingTarget = monthlyTarget.getPurchaseTarget() - secondryMtd;
|
| - |
|
467 |
|
| - |
|
468 |
double remainingWorkingDays = getWorkingDaysCount(todayDate);
|
| - |
|
469 |
|
| - |
|
470 |
if (remainingWorkingDays == 0) return remainingTarget; // Last day
|
| - |
|
471 |
|
| - |
|
472 |
return (int) Math.ceil(remainingTarget / remainingWorkingDays);
|
| - |
|
473 |
}
|
| - |
|
474 |
|
| - |
|
475 |
|
| 449 |
|
476 |
|
| 450 |
}
|
477 |
}
|