Subversion Repositories SmartDukaan

Rev

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

Rev 35111 Rev 35112
Line 4021... Line 4021...
4021
 
4021
 
4022
                    filteredRows.add(loan);
4022
                    filteredRows.add(loan);
4023
                }
4023
                }
4024
            }
4024
            }
4025
 
4025
 
4026
            List<Loan> filteredRowsAllLoans = new ArrayList<>();
4026
            List<Loan> filteredAllActiveLoans = new ArrayList<>();
4027
            for (Loan loan : allActiveLoans) {
4027
            for (Loan loan : allActiveLoans) {
4028
 
4028
 
4029
                if (storeGuyEntry.getValue().contains(loan.getFofoId())) {
4029
                if (storeGuyEntry.getValue().contains(loan.getFofoId())) {
4030
 
4030
 
4031
                    filteredRowsAllLoans.add(loan);
4031
                    filteredAllActiveLoans.add(loan);
4032
                }
4032
                }
4033
            }
4033
            }
4034
 
4034
 
4035
            org.apache.commons.io.output.ByteArrayOutputStream byteArrayOutputStream = null;
4035
            ByteArrayOutputStream byteArrayOutputStream = null;
-
 
4036
            Utils.Attachment attachment1 = null;
-
 
4037
            if(!filteredAllActiveLoans.isEmpty()){
-
 
4038
                 byteArrayOutputStream = this.generateLoanCsv(filteredAllActiveLoans);
-
 
4039
                 attachment1 = new Utils.Attachment("partnner-credit.csv", new ByteArrayResource(byteArrayOutputStream.toByteArray()));
4036
 
4040
 
4037
            if (!filteredRowsAllLoans.isEmpty()) {
-
 
4038
                Map<Integer, com.spice.profitmandi.dao.model.FofoReportingModel> fofoReportingModelMap = csService.getPartnerIdSalesHeaders();
-
 
4039
                Map<Integer, FofoRBMReportingModel> fofoRbmReportingModelMap = csService.getPartnerIdRBMHeaders();
-
 
4040
                List<AST> asts = astRepository.selectAll();
-
 
4041
                Map<Integer, AST> astMap = asts.stream()
-
 
4042
                        .collect(Collectors.toMap(AST::getId, ast -> ast));
-
 
4043
                try {
-
 
4044
                    List<String> headers = Arrays.asList(
-
 
4045
                            "PartnerName", "State Name", "Area", "Territory",
-
 
4046
                            "Due Date", "Days", "Pending Amount",
-
 
4047
                            "RBM L2", "RBM L1", "Sales L1", "Sales L2", "Limit Assigned"
-
 
4048
                    );
-
 
4049
 
-
 
4050
                    List<List<?>> rows = new ArrayList<>();
-
 
4051
 
-
 
4052
                    for (Loan entry : allActiveLoans) {
-
 
4053
 
-
 
4054
                        List<LoanStatement> loanStatements = loanStatementRepository.selectByLoanId(entry.getId());
-
 
4055
                        double amount = loanStatements.stream().map(x -> x.getAmount()).collect(Collectors.summingDouble(x -> x.doubleValue()));
-
 
4056
 
-
 
4057
                        long noOfdaysBetween = ChronoUnit.DAYS.between(entry.getDueDate().toLocalDate(), LocalDateTime.now());
-
 
4058
 
-
 
4059
                        CustomRetailer customRetailer = retailerService.getFofoRetailer(entry.getFofoId());
-
 
4060
                        SDCreditRequirement sdCreditRequirement = sdCreditRequirementRepository.selectByFofoId(customRetailer.getPartnerId());
-
 
4061
                        DecimalFormat df = new DecimalFormat("#.##");
-
 
4062
                        List<String> row = Arrays.asList(
-
 
4063
                                customRetailer.getBusinessName() + "(" + customRetailer.getCode() + ")",
-
 
4064
                                customRetailer.getAddress().getState(),
-
 
4065
                                astMap.get(customRetailer.getAstId()).getArea(),
-
 
4066
                                astMap.get(customRetailer.getAstId()).getTerritory(),
-
 
4067
                                entry.getDueDate().format(DateTimeFormatter.ofPattern("dd/MM/yyyy")),
-
 
4068
                                String.valueOf(noOfdaysBetween),
-
 
4069
                                new DecimalFormat("#.##").format(Math.abs(amount)),
-
 
4070
                                fofoRbmReportingModelMap.get(entry.getFofoId()).getL1Manager(),
-
 
4071
                                fofoRbmReportingModelMap.get(entry.getFofoId()).getL2Manager(),
-
 
4072
                                fofoReportingModelMap.get(entry.getFofoId()).getTerritoryManager(),
-
 
4073
                                fofoReportingModelMap.get(entry.getFofoId()).getRegionalManager(),
-
 
4074
                                df.format(sdCreditRequirement.getLimit())
-
 
4075
                        );
-
 
4076
 
-
 
4077
                        rows.add(row);
-
 
4078
                    }
-
 
4079
 
-
 
4080
                     byteArrayOutputStream = FileUtil.getCSVByteStream(headers, rows);
-
 
4081
 
-
 
4082
 
-
 
4083
                } catch (Exception e) {
-
 
4084
                    throw new RuntimeException(e);
-
 
4085
                }
-
 
4086
            }
4041
            }
4087
 
4042
 
4088
            Utils.Attachment attachment1 = new Utils.Attachment("partnner-credit.csv", new ByteArrayResource(byteArrayOutputStream.toByteArray()));
-
 
4089
 
4043
 
4090
 
4044
 
4091
            if (!filteredRows.isEmpty()) {
4045
            if (!filteredRows.isEmpty()) {
4092
                String messageText = this.getMessageForDueDateCross(filteredRows);
4046
                String messageText = this.getMessageForDueDateCross(filteredRows);
4093
                String[] email = new String[]{storeGuyEntry.getKey()};
4047
                String[] email = new String[]{storeGuyEntry.getKey()};
4094
 
4048
 
-
 
4049
                if(attachment1 != null){
4095
                Utils.sendMailWithAttachments(googleMailSender, email, null, null, "Partner Credit Report", messageText, true, attachment1);
4050
                    Utils.sendMailWithAttachments(googleMailSender, email, null, null, "Partner Credit Report", messageText, true, attachment1);
-
 
4051
                }else {
-
 
4052
                this.sendMailOfHtmlFormat(googleMailSender, email, messageText, null, "Due Date Cross");
-
 
4053
 
-
 
4054
                }
-
 
4055
 
4096
 
4056
 
4097
//                this.sendMailOfHtmlFormat(googleMailSender, email, messageText, null, "Due Date Cross");
-
 
4098
 
4057
 
4099
            }
4058
            }
4100
 
4059
 
4101
        }
4060
        }
4102
 
4061
 
Line 4131... Line 4090...
4131
            }
4090
            }
4132
        }
4091
        }
4133
 
4092
 
4134
    }
4093
    }
4135
 
4094
 
-
 
4095
    private ByteArrayOutputStream generateLoanCsv(List<Loan> loans) throws ProfitMandiBusinessException {
-
 
4096
        org.apache.commons.io.output.ByteArrayOutputStream byteArrayOutputStream = null;
-
 
4097
 
-
 
4098
 
-
 
4099
        if (!loans.isEmpty()) {
-
 
4100
            Map<Integer, com.spice.profitmandi.dao.model.FofoReportingModel> fofoReportingModelMap = csService.getPartnerIdSalesHeaders();
-
 
4101
            Map<Integer, FofoRBMReportingModel> fofoRbmReportingModelMap = csService.getPartnerIdRBMHeaders();
-
 
4102
            List<AST> asts = astRepository.selectAll();
-
 
4103
            Map<Integer, AST> astMap = asts.stream()
-
 
4104
                    .collect(Collectors.toMap(AST::getId, ast -> ast));
-
 
4105
            try {
-
 
4106
                List<String> headers = Arrays.asList(
-
 
4107
                        "PartnerName", "State Name", "Area", "Territory",
-
 
4108
                        "Due Date", "Days", "Pending Amount",
-
 
4109
                        "RBM L2", "RBM L1", "Sales L1", "Sales L2", "Limit Assigned"
-
 
4110
                );
-
 
4111
 
-
 
4112
                List<List<?>> rows = new ArrayList<>();
-
 
4113
 
-
 
4114
                for (Loan entry : loans) {
-
 
4115
 
-
 
4116
                    List<LoanStatement> loanStatements = loanStatementRepository.selectByLoanId(entry.getId());
-
 
4117
                    double amount = loanStatements.stream().map(x -> x.getAmount()).collect(Collectors.summingDouble(x -> x.doubleValue()));
-
 
4118
 
-
 
4119
                    long noOfdaysBetween = ChronoUnit.DAYS.between(entry.getDueDate().toLocalDate(), LocalDateTime.now());
-
 
4120
 
-
 
4121
                    CustomRetailer customRetailer = retailerService.getFofoRetailer(entry.getFofoId());
-
 
4122
                    SDCreditRequirement sdCreditRequirement = sdCreditRequirementRepository.selectByFofoId(customRetailer.getPartnerId());
-
 
4123
                    DecimalFormat df = new DecimalFormat("#.##");
-
 
4124
                    List<String> row = Arrays.asList(
-
 
4125
                            customRetailer.getBusinessName() + "(" + customRetailer.getCode() + ")",
-
 
4126
                            customRetailer.getAddress().getState(),
-
 
4127
                            astMap.get(customRetailer.getAstId()).getArea(),
-
 
4128
                            astMap.get(customRetailer.getAstId()).getTerritory(),
-
 
4129
                            entry.getDueDate().format(DateTimeFormatter.ofPattern("dd/MM/yyyy")),
-
 
4130
                            String.valueOf(noOfdaysBetween),
-
 
4131
                            df.format(Math.abs(amount)),
-
 
4132
                            fofoRbmReportingModelMap.get(entry.getFofoId()).getL1Manager(),
-
 
4133
                            fofoRbmReportingModelMap.get(entry.getFofoId()).getL2Manager(),
-
 
4134
                            fofoReportingModelMap.get(entry.getFofoId()).getTerritoryManager(),
-
 
4135
                            fofoReportingModelMap.get(entry.getFofoId()).getRegionalManager(),
-
 
4136
                            df.format(sdCreditRequirement.getLimit())
-
 
4137
                    );
-
 
4138
 
-
 
4139
                    rows.add(row);
-
 
4140
                }
-
 
4141
 
-
 
4142
                byteArrayOutputStream = FileUtil.getCSVByteStream(headers, rows);
-
 
4143
 
-
 
4144
 
-
 
4145
            } catch (Exception e) {
-
 
4146
                throw new RuntimeException(e);
-
 
4147
            }
-
 
4148
 
-
 
4149
        }
-
 
4150
        return byteArrayOutputStream;
-
 
4151
    }
-
 
4152
 
-
 
4153
 
4136
    public void alertForDueDate() throws Exception {
4154
    public void alertForDueDate() throws Exception {
4137
 
4155
 
4138
        List<Loan> loans = loanRepository.selectAllActiveLoan();
4156
        List<Loan> loans = loanRepository.selectAllActiveLoan();
4139
 
4157
 
4140
        if (!loans.isEmpty()) {
4158
        if (!loans.isEmpty()) {