Subversion Repositories SmartDukaan

Rev

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