Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
34240 tejus.loha 1
package com.spice.profitmandi.dao.service;
2
 
3
import com.spice.profitmandi.dao.model.purchaseSaleRatio.CatalogAgedModel;
4
import com.spice.profitmandi.dao.repository.warehouse.WarehouseSupplierInvoiceRepository;
34249 tejus.loha 5
import com.spice.profitmandi.dao.service.loiForm.LoiFormServiceImpl;
6
import org.apache.logging.log4j.LogManager;
7
import org.apache.logging.log4j.Logger;
34240 tejus.loha 8
import org.springframework.beans.factory.annotation.Autowired;
9
import org.springframework.mail.javamail.JavaMailSender;
10
import org.springframework.mail.javamail.MimeMessageHelper;
11
import org.springframework.stereotype.Service;
12
 
13
import javax.mail.MessagingException;
14
import javax.mail.internet.InternetAddress;
15
import javax.mail.internet.MimeMessage;
16
import java.io.UnsupportedEncodingException;
17
import java.time.LocalDateTime;
18
import java.util.List;
19
import java.util.stream.Collectors;
20
 
21
@Service
22
public class PurSaleServiceImpl implements PurSaleService {
23
 
34249 tejus.loha 24
    private static final Logger LOGGER = LogManager.getLogger(PurSaleServiceImpl.class);
25
 
26
 
34240 tejus.loha 27
    @Autowired
28
    WarehouseSupplierInvoiceRepository warehouseSupplierInvoiceRepository;
29
 
30
    @Autowired
31
    JavaMailSender mailSender;
32
 
33
    @Override
34
    public void sendPursaleRatioReportOnMail() throws MessagingException, UnsupportedEncodingException {
35
        StringBuilder sb = new StringBuilder();
34249 tejus.loha 36
        sb.append("<html><body><b>Stock List whose age is more then 10 days(Past 3 months Range)</b>" + "<br/><table style='border:1px solid black ;padding: 5px ;bgColor=green'>");
34240 tejus.loha 37
        sb.append("<tbody>" +
38
                "<tr>" +
39
                "<th style='border:1px solid black;padding: 5px'>No.</th>" +
40
                "<th style='border:1px solid black;padding: 5px'>Brand</th>" +
41
                "<th style='border:1px solid black;padding: 5px'>Vendor</th>" +
42
                "<th style='border:1px solid black;padding: 5px'>Category</th>" +
43
                "<th style='border:1px solid black;padding: 5px'>Model</th>" +
44
                "<th style='border:1px solid black;padding: 5px'>Purchase</th>" +
45
                "<th style='border:1px solid black;padding: 5px'>Sold</th>" +
46
                "<th style='border:1px solid black;padding: 5px'>Unsold</th>" +
47
                "<th style='border:1px solid black;padding: 5px'>Age</th>" +
48
 
49
                "</tr>");
50
        List<CatalogAgedModel> moreThen10DaysAgedCatalogModels = getMoreThen10DaysAgedCatalogModels();
51
 
52
        int i = 1;
53
        for (CatalogAgedModel catalogAgedModel : moreThen10DaysAgedCatalogModels) {
54
            sb.append("<tr>");
55
            sb.append("<td style='border:1px solid black;padding: 5px'>" + (i++) + "</td>");
56
            sb.append("<td style='border:1px solid black;padding: 5px'>" + catalogAgedModel.getBrand() + "</td>");
57
            sb.append("<td style='border:1px solid black;padding: 5px'>" + catalogAgedModel.getSupplier() + "</td>");
58
            sb.append("<td style='border:1px solid black;padding: 5px'>" + catalogAgedModel.getStatus() + "</td>");
59
            sb.append("<td style='border:1px solid black;padding: 5px'>" + catalogAgedModel.getModelName() + "</td>");
60
            sb.append("<td style='border:1px solid black;padding: 5px'>" + catalogAgedModel.getPurchase() + "</td>");
61
            sb.append("<td style='border:1px solid black;padding: 5px'>" + catalogAgedModel.getSold() + "</td>");
62
            sb.append("<td style='border:1px solid black;padding: 5px'>" + catalogAgedModel.getUnsold() + "</td>");
63
            sb.append("<td style='border:1px solid black;padding: 5px'>" + catalogAgedModel.getAge() + "</td>");
64
            sb.append("</tr>");
65
 
66
        }
67
        String subject = "Age more than 10 days Stock Report";
68
        String messageText = sb.toString();
69
        MimeMessage message = mailSender.createMimeMessage();
70
        MimeMessageHelper helper = new MimeMessageHelper(message, true);
71
        String[] emailTo = {
72
                "sm@smartdukaan.com",
73
                "tarun.verma@smartdukaan.com",
74
                "mohit.gulati@smartdukaan.com",
75
                "tejus.lohani@smartdukaan.com"
76
        };
77
        helper.setSubject(subject);
78
        helper.setText(messageText, true);
79
        helper.setTo(emailTo);
80
        InternetAddress senderAddress = new InternetAddress("noreply@smartdukaan.com", "Smartdukaan Alerts");
81
        helper.setFrom(senderAddress);
82
        mailSender.send(message);
83
 
84
    }
85
 
86
    @Override
87
    public List<CatalogAgedModel> getMoreThen10DaysAgedCatalogModels() {
88
        List<CatalogAgedModel> fiterCatalogAgedModels =
89
                warehouseSupplierInvoiceRepository.selectCatalogAge(LocalDateTime.now().minusMonths(3), LocalDateTime.now(), null, 0, null)
90
                        .stream().filter(x -> x.getAge() > 10 && x.getUnsold() > 0).collect(Collectors.toList());
34249 tejus.loha 91
        LOGGER.info("fiterCatalogAgedModels - "+fiterCatalogAgedModels);
34240 tejus.loha 92
        return fiterCatalogAgedModels;
93
    }
94
//    192.168.0.16:8080
95
}