Subversion Repositories SmartDukaan

Rev

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

Rev 34289 Rev 34397
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
}