Subversion Repositories SmartDukaan

Rev

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