Subversion Repositories SmartDukaan

Rev

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

Rev 35458 Rev 35577
Line 17... Line 17...
17
import org.springframework.beans.factory.annotation.Autowired;
17
import org.springframework.beans.factory.annotation.Autowired;
18
import org.springframework.core.io.ByteArrayResource;
18
import org.springframework.core.io.ByteArrayResource;
19
import org.springframework.mail.javamail.JavaMailSender;
19
import org.springframework.mail.javamail.JavaMailSender;
20
import org.springframework.mail.javamail.MimeMessageHelper;
20
import org.springframework.mail.javamail.MimeMessageHelper;
21
import org.springframework.stereotype.Service;
21
import org.springframework.stereotype.Service;
22
import org.springframework.transaction.annotation.Transactional;
-
 
23
 
22
 
24
import javax.mail.MessagingException;
23
import javax.mail.MessagingException;
25
import javax.mail.internet.InternetAddress;
24
import javax.mail.internet.InternetAddress;
26
import javax.mail.internet.MimeMessage;
25
import javax.mail.internet.MimeMessage;
27
import java.io.UnsupportedEncodingException;
26
import java.io.UnsupportedEncodingException;
Line 60... Line 59...
60
        StringBuilder sb = new StringBuilder();
59
        StringBuilder sb = new StringBuilder();
61
        sb.append("<html><body><b>Aging Stock List: Items that are 4 days old or older (Date Range - " + startDate.toLocalDate() + " To " + endDate.toLocalDate() + " )</b>" + "<br/><table style='border:1px solid black ;padding: 5px ;bgColor=green'>");
60
        sb.append("<html><body><b>Aging Stock List: Items that are 4 days old or older (Date Range - " + startDate.toLocalDate() + " To " + endDate.toLocalDate() + " )</b>" + "<br/><table style='border:1px solid black ;padding: 5px ;bgColor=green'>");
62
        sb.append("<tbody>" +
61
        sb.append("<tbody>" +
63
                "<tr>" +
62
                "<tr>" +
64
                "<th style='border:1px solid black;padding: 5px'>No.</th>" +
63
                "<th style='border:1px solid black;padding: 5px'>No.</th>" +
-
 
64
                "<th style='border:1px solid black;padding: 5px'>Item Id.</th>" +
65
                "<th style='border:1px solid black;padding: 5px'>Brand</th>" +
65
                "<th style='border:1px solid black;padding: 5px'>Brand</th>" +
66
                "<th style='border:1px solid black;padding: 5px'>Vendor</th>" +
66
                "<th style='border:1px solid black;padding: 5px'>Vendor</th>" +
67
                "<th style='border:1px solid black;padding: 5px'>Category</th>" +
67
                "<th style='border:1px solid black;padding: 5px'>Category</th>" +
68
                "<th style='border:1px solid black;padding: 5px'>Model</th>" +
68
                "<th style='border:1px solid black;padding: 5px'>Model</th>" +
69
                "<th style='border:1px solid black;padding: 5px'>Model Name</th>" +
69
                "<th style='border:1px solid black;padding: 5px'>Model Name</th>" +
Line 75... Line 75...
75
 
75
 
76
                "</tr>");
76
                "</tr>");
77
 
77
 
78
 
78
 
79
        moreThen10DaysAgedCatalogModels.sort(Comparator.comparingInt(CatalogAgedModel::getAge).reversed());
79
        moreThen10DaysAgedCatalogModels.sort(Comparator.comparingInt(CatalogAgedModel::getAge).reversed());
-
 
80
 
-
 
81
        // Log first few records to verify itemId is populated
-
 
82
        LOGGER.info("moreThen10DaysEgedStockReport - Total records: {}", moreThen10DaysAgedCatalogModels.size());
-
 
83
        moreThen10DaysAgedCatalogModels.stream().limit(5).forEach(model ->
-
 
84
                LOGGER.info("ItemId: {}, Brand: {}, Model: {}", model.getItemId(), model.getBrand(), model.getModel())
-
 
85
        );
-
 
86
 
80
        int i = 1;
87
        int i = 1;
81
        for (CatalogAgedModel catalogAgedModel : moreThen10DaysAgedCatalogModels) {
88
        for (CatalogAgedModel catalogAgedModel : moreThen10DaysAgedCatalogModels) {
82
            sb.append("<tr>");
89
            sb.append("<tr>");
83
            sb.append("<td style='border:1px solid black;padding: 5px'>" + (i++) + "</td>");
90
            sb.append("<td style='border:1px solid black;padding: 5px'>" + (i++) + "</td>");
-
 
91
            sb.append("<td style='border:1px solid black;padding: 5px'>" + catalogAgedModel.getItemId() + "</td>");
84
            sb.append("<td style='border:1px solid black;padding: 5px'>" + catalogAgedModel.getBrand() + "</td>");
92
            sb.append("<td style='border:1px solid black;padding: 5px'>" + catalogAgedModel.getBrand() + "</td>");
85
            sb.append("<td style='border:1px solid black;padding: 5px'>" + catalogAgedModel.getSupplier() + "</td>");
93
            sb.append("<td style='border:1px solid black;padding: 5px'>" + catalogAgedModel.getSupplier() + "</td>");
86
            sb.append("<td style='border:1px solid black;padding: 5px'>" + catalogAgedModel.getStatus() + "</td>");
94
            sb.append("<td style='border:1px solid black;padding: 5px'>" + catalogAgedModel.getStatus() + "</td>");
87
            sb.append("<td style='border:1px solid black;padding: 5px'>" + catalogAgedModel.getModelName() + "</td>");
95
            sb.append("<td style='border:1px solid black;padding: 5px'>" + catalogAgedModel.getModelName() + "</td>");
88
            sb.append("<td style='border:1px solid black;padding: 5px'>" + catalogAgedModel.getModel() + "</td>");
96
            sb.append("<td style='border:1px solid black;padding: 5px'>" + catalogAgedModel.getModel() + "</td>");
Line 173... Line 181...
173
        }
181
        }
174
    }
182
    }
175
 
183
 
176
    @Override
184
    @Override
177
    public List<CatalogAgedModel> getCatalogModelsOlderThan10Days(LocalDateTime startDate, LocalDateTime endDate) {
185
    public List<CatalogAgedModel> getCatalogModelsOlderThan10Days(LocalDateTime startDate, LocalDateTime endDate) {
-
 
186
        // Using selectCatalogAgeWithItemId to get itemId for email report
178
        List<CatalogAgedModel> fiterCatalogAgedModels =
187
        List<CatalogAgedModel> fiterCatalogAgedModels =
179
                warehouseSupplierInvoiceRepository.selectCatalogAge(startDate, endDate, null, 0, null)
188
                warehouseSupplierInvoiceRepository.selectCatalogAgeWithItemId(startDate, endDate, null, 0, null)
180
                        .stream().filter(x -> x.getAge() >= 4 && x.getUnsold() > 0).collect(Collectors.toList());
189
                        .stream().filter(x -> x.getAge() >= 4 && x.getUnsold() > 0).collect(Collectors.toList());
181
        LOGGER.info("fiterCatalogAgedModels - " + fiterCatalogAgedModels);
190
        LOGGER.info("fiterCatalogAgedModels - " + fiterCatalogAgedModels);
182
        return fiterCatalogAgedModels;
191
        return fiterCatalogAgedModels;
183
    }
192
    }
184
 
193