Subversion Repositories SmartDukaan

Rev

Rev 34055 | Rev 34098 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
33917 ranu 1
package com.spice.profitmandi.service;
2
 
3
import com.spice.profitmandi.common.model.ProfitMandiConstants;
33985 ranu 4
import com.spice.profitmandi.dao.entity.inventory.RbmAchievements;
33926 ranu 5
import com.spice.profitmandi.dao.entity.inventory.RbmTargets;
33917 ranu 6
import com.spice.profitmandi.dao.model.*;
33985 ranu 7
import com.spice.profitmandi.dao.repository.catalog.RbmAchievementsRepository;
33926 ranu 8
import com.spice.profitmandi.dao.repository.catalog.RbmTargetsRepository;
33917 ranu 9
import org.apache.logging.log4j.LogManager;
10
import org.apache.logging.log4j.Logger;
11
import org.hibernate.Session;
12
import org.hibernate.SessionFactory;
13
import org.hibernate.query.NativeQuery;
14
import org.springframework.beans.factory.annotation.Autowired;
15
import org.springframework.stereotype.Component;
16
 
17
import javax.persistence.TypedQuery;
18
import java.time.LocalDate;
33926 ranu 19
import java.time.LocalDateTime;
20
import java.time.LocalTime;
33917 ranu 21
import java.util.ArrayList;
22
import java.util.List;
33997 ranu 23
import java.util.Map;
34034 ranu 24
import java.util.Optional;
33997 ranu 25
import java.util.stream.Collectors;
33917 ranu 26
 
27
@Component
28
public class RbmTargetServiceImpl implements RbmTargetService {
29
    private static final Logger LOGGER = LogManager.getLogger(RbmTargetServiceImpl.class);
30
 
31
    @Autowired
32
    SessionFactory sessionFactory;
33
 
33926 ranu 34
    @Autowired
35
    RbmTargetsRepository rbmTargetsRepository;
33917 ranu 36
 
33985 ranu 37
    @Autowired
38
    RbmAchievementsRepository rbmAchievementsRepository;
39
 
33917 ranu 40
    @Override
41
    public List<WarehouseRbmTargetModel> getWarehouseWiseRbmMonthlyTarget() {
42
        Session session = sessionFactory.getCurrentSession();
43
        final TypedQuery<WarehouseRbmTargetModel> typedQuerySimilar = session.createNamedQuery("RbmTarget.getWarehouseWiseMonthlyTarget", WarehouseRbmTargetModel.class);
44
 
45
        return typedQuerySimilar.getResultList();
46
 
47
    }
48
 
49
    @Override
50
    public List<MTDAchievedTargetModel> getDateWiseAchievedTargetOfRbm(LocalDate startDate, LocalDate endDate) {
51
        Session session = sessionFactory.getCurrentSession();
52
        final TypedQuery<MTDAchievedTargetModel> typedQuerySimilar = session.createNamedQuery("RbmTarget.getRbmAchievedMonthlyTarget", MTDAchievedTargetModel.class);
53
        typedQuerySimilar.setParameter("startDate", startDate);
54
        typedQuerySimilar.setParameter("endDate", endDate);
55
        return typedQuerySimilar.getResultList();
56
 
57
    }
58
 
59
    @Override
34055 ranu 60
    public List<TodayAchievedMovementModel> getMovementWiseAchievementByDate(LocalDate startDate, LocalDate endDate) {
33917 ranu 61
        LOGGER.info("start date {}, end date {}", startDate, endDate);
62
        Session session = sessionFactory.getCurrentSession();
34055 ranu 63
        final TypedQuery<TodayAchievedMovementModel> typedQuerySimilar = session.createNamedQuery("RBMTarget.TodayAchivementByMovement", TodayAchievedMovementModel.class);
33917 ranu 64
        typedQuerySimilar.setParameter("startDate", startDate);
65
        typedQuerySimilar.setParameter("endDate", endDate);
66
        return typedQuerySimilar.getResultList();
67
 
68
    }
69
 
70
    @Override
71
    public List<WarehouseMobileStockByMovementModel> getWarehouseMobileStockByMovement() {
72
        Session session = sessionFactory.getCurrentSession();
73
        final TypedQuery<WarehouseMobileStockByMovementModel> typedQuerySimilar = session.createNamedQuery("WarehouseStock.MovementWiseMobileStock", WarehouseMobileStockByMovementModel.class);
74
 
75
        return typedQuerySimilar.getResultList();
76
 
77
    }
78
 
33991 ranu 79
    @Override
80
    public List<SoldCatalogsReportModel> getCatalogSoldReport(LocalDate startDate, LocalDate endDate) {
81
        Session session = sessionFactory.getCurrentSession();
82
        final TypedQuery<SoldCatalogsReportModel> typedQuerySimilar = session.createNamedQuery("CatalogsReport.SoldCatalogsReport", SoldCatalogsReportModel.class);
83
        typedQuerySimilar.setParameter("startDate", startDate);
84
        typedQuerySimilar.setParameter("endDate", endDate);
85
        return typedQuerySimilar.getResultList();
33917 ranu 86
 
33991 ranu 87
    }
88
 
89
 
33917 ranu 90
    public int getWorkingDaysCount(LocalDate startDate) {
91
        Session session = sessionFactory.getCurrentSession();
92
 
93
        // Convert the LocalDate to a format MySQL can interpret
94
        String startDateString = startDate.toString();
95
 
96
        final NativeQuery<?> nativeQuery = session.createNativeQuery(
97
                "SELECT (DATEDIFF(LAST_DAY(:startDate), :startDate) + 1) " +
98
                        " - (FLOOR((DATEDIFF(LAST_DAY(:startDate), :startDate) + (WEEKDAY(:startDate) + 1)) / 7)) " +
99
                        " - (CASE WHEN WEEKDAY(:startDate) = 6 THEN 1 ELSE 0 END) " +
100
                        " - (SELECT COUNT(*) " +
101
                        " FROM logistics.publicholidays " +
102
                        " WHERE date BETWEEN :startDate AND LAST_DAY(:startDate) " +
103
                        " AND WEEKDAY(date) != 6) AS working_days"
104
        );
105
 
106
        // Set the start date parameter for each placeholder
107
        nativeQuery.setParameter("startDate", startDateString);
108
 
109
        Object result = nativeQuery.getSingleResult();
110
        return result != null ? ((Number) result).intValue() : 0;
111
    }
112
 
113
 
114
    @Override
115
    public List<RbmArrViewModel> getRbmTodayArr() throws Exception {
116
        LocalDate todayDate = LocalDate.now();
117
        return getRbmTodayArr(todayDate);
118
    }
119
 
120
    @Override
33997 ranu 121
    public List<RbmTargetAndAchievementsModel> getRbmTargetsAndAchievemnts(LocalDate startDate, LocalDate endDate) {
122
 
34002 ranu 123
        List<RbmTargetsModel> rbmTargetsList = rbmTargetsRepository.selectTargetsModelListByDates(startDate.atStartOfDay(), endDate.atTime(LocalTime.MAX));
33997 ranu 124
 
125
        LOGGER.info("rbmTargetsList {}", rbmTargetsList);
126
        // Group Targtes by RBM and Warehouse
34002 ranu 127
        Map<String, RbmTargetsModel> targetsMap = rbmTargetsList.stream()
33997 ranu 128
                .collect(Collectors.toMap(
129
                        a -> a.getRbmAuthId() + "-" + a.getWarehouseId(),
130
                        a -> a,
131
                        (a1, a2) -> mergeTargets(a1, a2) // Handle duplicates by merging
132
                ));
133
 
134
 
34002 ranu 135
        List<RbmAchievementsModel> rbmAchievements = rbmAchievementsRepository.selectAchievementsModelListByDates(startDate.atStartOfDay(), endDate.atTime(LocalTime.MAX));
33997 ranu 136
        LOGGER.info("rbmTargetsList {}", rbmAchievements);
137
        // Group achievements by RBM and Warehouse
34002 ranu 138
        Map<String, RbmAchievementsModel> achievementMap = rbmAchievements.stream()
33997 ranu 139
                .collect(Collectors.toMap(
140
                        a -> a.getRbmAuthId() + "-" + a.getWarehouseId(),
141
                        a -> a,
142
                        (a1, a2) -> mergeAchievements(a1, a2) // Handle duplicates by merging
143
                ));
144
 
145
        return targetsMap.keySet().stream()
146
                .map(key -> {
147
                    String[] parts = key.split("-");
148
                    int rbmAuthId = Integer.parseInt(parts[0]);
149
                    int warehouseId = Integer.parseInt(parts[1]);
150
 
34002 ranu 151
                    RbmTargetsModel target = targetsMap.get(key);
152
                    RbmAchievementsModel achievement = achievementMap.getOrDefault(key, new RbmAchievementsModel());
33997 ranu 153
 
154
                    RbmTargetAndAchievementsModel model = new RbmTargetAndAchievementsModel();
155
                    model.setAuthId(rbmAuthId);
156
                    model.setRbmName(target.getRbmName());
157
                    model.setWarehouseName(ProfitMandiConstants.WAREHOUSE_MAP.getOrDefault(warehouseId, "Unknown"));
158
 
159
                    // Set target values
34006 ranu 160
                    model.setHidTarget((long) target.getHidTarget());
161
                    model.setEolTarget((long) target.getEolTarget());
162
                    model.setFastMovingTarget((long) target.getFastMovingTarget());
163
                    model.setSlowMovingTarget((long) target.getSlowMovingTarget());
164
                    model.setOtherMovingTarget((long) target.getOtherTarget());
33997 ranu 165
 
166
                    // Set achievement values
34006 ranu 167
                    model.setAchievedHid((long) achievement.getAchievedHidTarget());
168
                    model.setAchievedEol((long) achievement.getAchievedEolTarget());
169
                    model.setAchievedFastMoving((long) achievement.getAchievedFastMovingTarget());
170
                    model.setAchievedSlowMoving((long) achievement.getAchievedSlowMovingTarget());
171
                    model.setAchievedOtherMoving((long) achievement.getAchievedOtherTarget());
33997 ranu 172
 
173
                    model.setTotalTarget(
34006 ranu 174
                            (long) target.getHidTarget() +
175
                                    (long) target.getEolTarget() +
176
                                    (long) target.getFastMovingTarget() +
177
                                    (long) target.getSlowMovingTarget() +
178
                                    (long) target.getOtherTarget()
33997 ranu 179
                    );
180
                    model.setTotalAchievemnt(
34006 ranu 181
                            (long) achievement.getAchievedHidTarget() +
182
                                    (long) achievement.getAchievedEolTarget() +
183
                                    (long) achievement.getAchievedFastMovingTarget() +
184
                                    (long) achievement.getAchievedSlowMovingTarget() +
185
                                    (long) achievement.getAchievedOtherTarget()
33997 ranu 186
                    );
187
 
188
                    return model;
189
                })
190
                .collect(Collectors.toList());
191
 
192
    }
193
 
34002 ranu 194
    private RbmTargetsModel mergeTargets(RbmTargetsModel a1, RbmTargetsModel a2) {
33997 ranu 195
 
196
        // Merge logic for achievements (aggregate the target and achieved values)
34006 ranu 197
        a1.setHidTarget((a1.getHidTarget()) +
198
                (a2.getHidTarget()));
33997 ranu 199
 
34006 ranu 200
        a1.setFastMovingTarget((a1.getFastMovingTarget()) +
201
                (a2.getFastMovingTarget()));
33997 ranu 202
 
34006 ranu 203
        a1.setSlowMovingTarget((a1.getSlowMovingTarget()) +
204
                (a2.getSlowMovingTarget()));
33997 ranu 205
 
34006 ranu 206
        a1.setEolTarget((a1.getEolTarget()) +
207
                (a2.getEolTarget()));
33997 ranu 208
 
34006 ranu 209
        a1.setOtherTarget((a1.getOtherTarget()) +
210
                (a2.getOtherTarget()));
33997 ranu 211
        return a1;
212
    }
213
 
34002 ranu 214
    private RbmAchievementsModel mergeAchievements(RbmAchievementsModel a1, RbmAchievementsModel a2) {
33997 ranu 215
        // Merge logic for achievements (aggregate the target and achieved values)
34006 ranu 216
        a1.setAchievedHidTarget((a1.getAchievedHidTarget()) +
217
                (a2.getAchievedHidTarget()));
33997 ranu 218
 
34006 ranu 219
        a1.setAchievedEolTarget((a1.getAchievedEolTarget()) +
220
                (a2.getAchievedEolTarget()));
33997 ranu 221
 
34006 ranu 222
        a1.setAchievedFastMovingTarget((a1.getAchievedFastMovingTarget()) +
223
                (a2.getAchievedFastMovingTarget()));
33997 ranu 224
 
34006 ranu 225
        a1.setAchievedSlowMovingTarget((a1.getAchievedSlowMovingTarget()) +
226
                (a2.getAchievedSlowMovingTarget()));
33997 ranu 227
 
34006 ranu 228
        a1.setAchievedOtherTarget((a1.getAchievedOtherTarget()) +
229
                (a2.getAchievedOtherTarget()));
33997 ranu 230
 
231
        return a1;
232
    }
34002 ranu 233
 
33997 ranu 234
    @Override
33917 ranu 235
    public List<RbmArrViewModel> getRbmTodayArr(LocalDate todayDate) throws Exception {
236
 
237
        LocalDate startDateOfMonthDay1 = LocalDate.now().withDayOfMonth(1);
238
 
239
        List<WarehouseRbmTargetModel> warehouseRbmTargetModels = this.getWarehouseWiseRbmMonthlyTarget();
240
 
34055 ranu 241
        List<TodayAchievedMovementModel> todayAchievedMovementModels = getMovementWiseAchievementByDate(todayDate, todayDate.plusDays(1));
33917 ranu 242
 
243
        List<MTDAchievedTargetModel> mtdAchievedTargetModels = getDateWiseAchievedTargetOfRbm(startDateOfMonthDay1, todayDate);
244
 
245
        int remainingWorkingDaysCount = getWorkingDaysCount(todayDate);
246
 
33926 ranu 247
        List<RbmTargets> todayRbmTargetsList = rbmTargetsRepository.selectTargetsByDates(todayDate.atStartOfDay(), todayDate.atTime(LocalTime.MAX));
33917 ranu 248
 
33926 ranu 249
        LOGGER.info("todayRbmTargetsList {}", todayRbmTargetsList);
33917 ranu 250
 
251
        List<RbmArrViewModel> rbmArrViewModels = new ArrayList<>();
252
 
34028 ranu 253
        if (!todayRbmTargetsList.isEmpty()) {
33917 ranu 254
 
34028 ranu 255
            for (WarehouseRbmTargetModel rbmTarget : warehouseRbmTargetModels) {
33917 ranu 256
 
34028 ranu 257
                float monthlyTarget = rbmTarget.getMonthlyTarget();
258
                float achievedSoFar = (float) mtdAchievedTargetModels.stream()
259
                        .filter(x -> x.getAuthId() == rbmTarget.getAuthId() && x.getWarehouseId() == rbmTarget.getWarehouseId())
260
                        .mapToDouble(MTDAchievedTargetModel::getAcheivedMonthlyTarget)
261
                        .sum();
33917 ranu 262
 
34028 ranu 263
                float remainingTarget = monthlyTarget - achievedSoFar;
33953 ranu 264
 
34028 ranu 265
                float todayTarget = (remainingWorkingDaysCount > 0 && remainingTarget > 0) ? remainingTarget / remainingWorkingDaysCount : 0;
266
 
33926 ranu 267
                String warehouseName = ProfitMandiConstants.WAREHOUSE_MAP.getOrDefault(rbmTarget.getWarehouseId(), "Unknown");
33917 ranu 268
 
33926 ranu 269
                TodayAchievedMovementModel todayAchievedMovementModel = todayAchievedMovementModels.stream().filter(x -> x.getAuthId() == rbmTarget.getAuthId() && x.getWarehouseId() == rbmTarget.getWarehouseId()).findFirst().get();
33917 ranu 270
 
34034 ranu 271
                Optional<RbmTargets> optionalTodayRbmTargets = todayRbmTargetsList.stream()
272
                        .filter(x -> x.getRbmAuthId() == rbmTarget.getAuthId() && x.getWarehouseId() == rbmTarget.getWarehouseId())
273
                        .findFirst();
33917 ranu 274
 
34034 ranu 275
                if (optionalTodayRbmTargets.isPresent()) {
276
                    RbmTargets todayRbmTargets = optionalTodayRbmTargets.get();
277
                    LOGGER.info("todayRbmTargets {}", todayRbmTargets);
278
                    RbmArrViewModel viewModel = new RbmArrViewModel();
33917 ranu 279
 
34034 ranu 280
                    viewModel.setAuthId(rbmTarget.getAuthId());
281
                    viewModel.setRbmName(rbmTarget.getRbmName());
282
                    viewModel.setWarehouseName(warehouseName);
283
                    viewModel.setTodayTarget(Math.round(todayTarget));
284
                    viewModel.setMonthlyTarget(Math.round(monthlyTarget));
285
                    viewModel.setMtdAchievedTarget(Math.round(achievedSoFar));
33926 ranu 286
 
34034 ranu 287
                    viewModel.setTodayHidTarget(Math.round((todayRbmTargets.getHidTarget())));
288
                    viewModel.setTodayFastMovingTarget(Math.round(todayRbmTargets.getFastMovingTarget()));
289
                    viewModel.setTodaySlowMovingTarget(Math.round(todayRbmTargets.getSlowMovingTarget()));
290
                    viewModel.setTodayEolTarget(Math.round(todayRbmTargets.getEolTarget()));
291
                    viewModel.setTodayOtherMovingTarget(Math.round(todayRbmTargets.getOtherTarget()));
33926 ranu 292
 
34034 ranu 293
                    viewModel.setTodayAchievedHidTarget(Math.round(todayAchievedMovementModel.getHidBilled()));
294
                    viewModel.setTodayAchievedFastMovingTarget(Math.round(todayAchievedMovementModel.getFastMovingBilled()));
295
                    viewModel.setTodayAchievedSlowMovingTarget(Math.round(todayAchievedMovementModel.getSlowMovingBilled()));
296
                    viewModel.setTodayAchievedEolTarget(Math.round(todayAchievedMovementModel.getEolBilled()));
297
                    viewModel.setTodayAchievedOtherMovingTarget(Math.round(todayAchievedMovementModel.getOtherBilled()));
298
                    viewModel.setTotalAchievedTarget(Math.round(todayAchievedMovementModel.getHidBilled() + todayAchievedMovementModel.getFastMovingBilled() + todayAchievedMovementModel.getSlowMovingBilled() + todayAchievedMovementModel.getEolBilled() + todayAchievedMovementModel.getOtherBilled()));
33917 ranu 299
 
34034 ranu 300
                    rbmArrViewModels.add(viewModel);
301
                } else {
302
                    LOGGER.info("No matching RbmTargets found for AuthId: {} and rbmname {} and WarehouseId: {}", rbmTarget.getAuthId(), rbmTarget.getRbmName(), rbmTarget.getWarehouseId());
303
                }
33917 ranu 304
 
34034 ranu 305
 
306
 
34028 ranu 307
            }
33917 ranu 308
        }
309
 
310
        LOGGER.info("rbmArrViewModels {}", rbmArrViewModels);
311
        return rbmArrViewModels;
312
    }
313
 
33926 ranu 314
    @Override
315
    public void setMovementWiseRbmTargets() {
316
        LocalDate todayDate = LocalDate.now();
33917 ranu 317
 
33926 ranu 318
        LocalDate startDateOfMonthDay1 = LocalDate.now().withDayOfMonth(1);
319
 
320
        List<WarehouseRbmTargetModel> warehouseRbmTargetModels = this.getWarehouseWiseRbmMonthlyTarget();
321
 
322
        List<MTDAchievedTargetModel> mtdAchievedTargetModels = getDateWiseAchievedTargetOfRbm(startDateOfMonthDay1, todayDate);
323
 
324
 
325
        int remainingWorkingDaysCount = getWorkingDaysCount(todayDate);
326
 
327
        List<WarehouseMobileStockByMovementModel> warehouseMobileStockByMovementModels = getWarehouseMobileStockByMovement();
328
 
329
        for (WarehouseRbmTargetModel rbmTarget : warehouseRbmTargetModels) {
330
 
331
            float monthlyTarget = rbmTarget.getMonthlyTarget();
332
            float achievedSoFar = (float) mtdAchievedTargetModels.stream()
333
                    .filter(x -> x.getAuthId() == rbmTarget.getAuthId() && x.getWarehouseId() == rbmTarget.getWarehouseId())
334
                    .mapToDouble(MTDAchievedTargetModel::getAcheivedMonthlyTarget)
335
                    .sum();
336
 
337
 
338
            float remainingTarget = monthlyTarget - achievedSoFar;
33953 ranu 339
            LOGGER.info("remainingTarget {}", remainingTarget);
33926 ranu 340
 
33953 ranu 341
            float todayTarget = (remainingWorkingDaysCount > 0 && remainingTarget > 0) ? remainingTarget / remainingWorkingDaysCount : 0;
342
            LOGGER.info("todayTarget {}", todayTarget);
343
 
33926 ranu 344
            // Get the warehouse stock data
345
            WarehouseMobileStockByMovementModel warehouseMobileStockByMovementModel = warehouseMobileStockByMovementModels.stream()
346
                    .filter(x -> x.getWarehouseId() == rbmTarget.getWarehouseId()).findFirst().orElse(null);
347
 
348
 
349
            if (warehouseMobileStockByMovementModel != null) {
350
 
351
                // Total stock value for this warehouse
352
                float totalStockValue = warehouseMobileStockByMovementModel.getTotalAvailabilityPrice();
353
 
354
                // Calculate target allocation based on stock value proportion
355
                float hidTarget = (warehouseMobileStockByMovementModel.getTotalHidCatalogPrice() / totalStockValue) * todayTarget;
356
                float fastMovingTarget = (warehouseMobileStockByMovementModel.getTotalFastMovingCatalogPrice() / totalStockValue) * todayTarget;
357
                float slowMovingTarget = (warehouseMobileStockByMovementModel.getTotalSlowMovingCatalogPrice() / totalStockValue) * todayTarget;
358
                float eolTarget = (warehouseMobileStockByMovementModel.getTotalEolCatalogPrice() / totalStockValue) * todayTarget;
359
                float otherTarget = (warehouseMobileStockByMovementModel.getTotalOtherCategoryCatalogPrice() / totalStockValue) * todayTarget;
360
 
361
                RbmTargets rbmTargets = new RbmTargets();
362
                rbmTargets.setWarehouseId(rbmTarget.getWarehouseId());
363
                rbmTargets.setRbmAuthId(rbmTarget.getAuthId());
364
                rbmTargets.setRbmName(rbmTarget.getRbmName());
365
                rbmTargets.setEolTarget(eolTarget);
366
                rbmTargets.setHidTarget(hidTarget);
367
                rbmTargets.setFastMovingTarget(fastMovingTarget);
368
                rbmTargets.setSlowMovingTarget(slowMovingTarget);
369
                rbmTargets.setOtherTarget(otherTarget);
370
                rbmTargets.setCreateTimestamp(LocalDateTime.now());
371
 
372
                rbmTargetsRepository.persist(rbmTargets);
373
 
374
            }
375
        }
376
 
377
    }
378
 
379
 
33985 ranu 380
    @Override
381
    public void setMovementWiseRbmAchievement() {
382
        LocalDate todayDate = LocalDate.now();
383
 
34055 ranu 384
        List<TodayAchievedMovementModel> todayAchievedMovementModels = getMovementWiseAchievementByDate(todayDate, todayDate.plusDays(1));
33985 ranu 385
 
386
 
387
        for (TodayAchievedMovementModel achievement : todayAchievedMovementModels) {
388
 
389
            RbmAchievements rbmAchievements = new RbmAchievements();
390
 
391
            rbmAchievements.setRbmAuthId(achievement.getAuthId());
392
            rbmAchievements.setRbmName(achievement.getRbmName());
393
            rbmAchievements.setWarehouseId(achievement.getWarehouseId());
394
            rbmAchievements.setAchievedHidTarget(achievement.getHidBilled());
395
            rbmAchievements.setAchievedFastMovingTarget(achievement.getFastMovingBilled());
396
            rbmAchievements.setAchievedSlowMovingTarget(achievement.getSlowMovingBilled());
397
            rbmAchievements.setAchievedEolTarget(achievement.getEolBilled());
34012 ranu 398
            rbmAchievements.setAchievedOtherTarget(achievement.getOtherBilled());
33985 ranu 399
            rbmAchievements.setCreateTimestamp(LocalDateTime.now());
400
 
401
            rbmAchievementsRepository.persist(rbmAchievements);
402
 
403
        }
404
 
405
    }
406
 
34055 ranu 407
    @Override
408
    public List<Sold15daysOldAgingModel> getAgingSale(LocalDate startDate, LocalDate endDate) {
409
        Session session = sessionFactory.getCurrentSession();
410
        final TypedQuery<Sold15daysOldAgingModel> typedQuerySimilar = session.createNamedQuery("Aging.SoldAgingModel", Sold15daysOldAgingModel.class);
34056 ranu 411
        typedQuerySimilar.setParameter("startDate", startDate);
412
        typedQuerySimilar.setParameter("endDate", endDate);
34055 ranu 413
        return typedQuerySimilar.getResultList();
33985 ranu 414
 
34055 ranu 415
    }
416
 
417
    public List<Our15DaysOldAgingStock> our15DaysAgingStock() {
418
        Session session = sessionFactory.getCurrentSession();
419
        final TypedQuery<Our15DaysOldAgingStock> typedQuerySimilar = session.createNamedQuery("Aging.15DaysOurStock", Our15DaysOldAgingStock.class);
420
        return typedQuerySimilar.getResultList();
421
 
422
    }
423
 
424
 
33917 ranu 425
}