Subversion Repositories SmartDukaan

Rev

Rev 34263 | Rev 34275 | 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
34254 tejus.loha 36
    public void sendPurSaleRatioReportOnMail() throws MessagingException, UnsupportedEncodingException {
34240 tejus.loha 37
        StringBuilder sb = new StringBuilder();
34274 tejus.loha 38
        sb.append("<html><body><b>Stock List whose age is 10 or more 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>");
34262 tejus.loha 61
            if(catalogAgedModel.getBrand().equals("Samsung")){
62
                sb.append("<td style='border:1px solid black;padding: 5px'>" +catalogAgedModel.getModel() + "</td>");
63
            }else{
64
                sb.append("<td style='border:1px solid black;padding: 5px'>" + catalogAgedModel.getModelName() + "</td>");
65
            }
34240 tejus.loha 66
            sb.append("<td style='border:1px solid black;padding: 5px'>" + catalogAgedModel.getPurchase() + "</td>");
67
            sb.append("<td style='border:1px solid black;padding: 5px'>" + catalogAgedModel.getSold() + "</td>");
68
            sb.append("<td style='border:1px solid black;padding: 5px'>" + catalogAgedModel.getUnsold() + "</td>");
69
            sb.append("<td style='border:1px solid black;padding: 5px'>" + catalogAgedModel.getAge() + "</td>");
70
            sb.append("</tr>");
71
 
72
        }
73
        String subject = "Age more than 10 days Stock Report";
74
        String messageText = sb.toString();
75
        MimeMessage message = mailSender.createMimeMessage();
76
        MimeMessageHelper helper = new MimeMessageHelper(message, true);
77
        String[] emailTo = {
34263 tejus.loha 78
                "sm@smartdukaan.com",
79
                "tarun.verma@smartdukaan.com",
80
                "mohit.gulati@smartdukaan.com",
34262 tejus.loha 81
                "tejus.lohani@smartdukaan.com"
34254 tejus.loha 82
 
34240 tejus.loha 83
        };
84
        helper.setSubject(subject);
85
        helper.setText(messageText, true);
86
        helper.setTo(emailTo);
87
        InternetAddress senderAddress = new InternetAddress("noreply@smartdukaan.com", "Smartdukaan Alerts");
88
        helper.setFrom(senderAddress);
89
        mailSender.send(message);
90
 
91
    }
92
 
93
    @Override
94
    public List<CatalogAgedModel> getMoreThen10DaysAgedCatalogModels() {
95
        List<CatalogAgedModel> fiterCatalogAgedModels =
96
                warehouseSupplierInvoiceRepository.selectCatalogAge(LocalDateTime.now().minusMonths(3), LocalDateTime.now(), null, 0, null)
34274 tejus.loha 97
                        .stream().filter(x -> x.getAge() >= 10 && x.getUnsold() > 0).collect(Collectors.toList());
34249 tejus.loha 98
        LOGGER.info("fiterCatalogAgedModels - "+fiterCatalogAgedModels);
34240 tejus.loha 99
        return fiterCatalogAgedModels;
100
    }
101
//    192.168.0.16:8080
102
}