高章伟
2022-02-18 650847118307a1c9ae0ada15b7c69bbf5792c54c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
public with sharing class DeliveryConfirmPDFController {
    
    //基础url
    public String baseUrl { get; private set; }
    public String agentName {get; private set; }
    //数据List
    public List<DataLineBean> dataLines {get; private set;}
    //订单Id
    public String laId {get; private set;}
    public Map<String,DataLineBean> numMap {get; private set; }
    public loaner_application__c la{get;private set;}
    public laDataLineBean lab {get; private set;}
    public List<UserDataLineBean> luData {get; private set;}
    public Integer rowNum {get; private set;}
 
    public boolean isSelf{get; private set; }
    public boolean isExpress{get; private set; }
    public boolean isRenew{get; private set; }
    public String OCM_Number{get; private set; }
 
    public DeliveryConfirmPDFController() {
         laId = System.currentPageReference().getParameters().get('id');
    }
    //初始化数据
    public PageReference init(){
        isSelf = false;
        isExpress = false;
        isRenew = false;
        rowNum = 0;
        dataLines = new List<DataLineBean>();
        numMap = new Map<String,DataLineBean>();
        luData = new List<UserDataLineBean>();
        baseUrl = URL.getSalesforceBaseUrl().toExternalForm();
        String path = URL.getCurrentRequestUrl().getPath();
        if (path.indexOf('/apex') > 0) {
            baseUrl += path.substring(0,path.indexOf('/apex'));
        } else if (path.indexOf('production/') > 0) {
            baseUrl += '/production';
        }
        //获取借用单信息
        List<loaner_application__c> laList = [select Id,Follow_Opp_text__c,Follow_Opp__r.InquiryNumber__c,Equipment_Type__c ,pickup_time__c,Loaner_Apply_Renewal_Date__c,loaner_Remark__c,Rental_End_Date__c,Loaner_Ser__c,Approval_Date__c,loaner_request_number__c,Agent__r.Name,Approver__r.Name,Rental_Start_Date__c,loaner_place__c,Demo_purpose__c,direct_shippment_address__c,Loaner_receive_staff__c,Loaner_receive_staff_phone__c,CreatorUserType__c,Applicant_department__c from loaner_application__c where Id = :laId];
        if (laList.size() == 0) {
            return null;
        }
        la = laList[0];
        OCM_Number = la.Follow_Opp_text__c;
        agentName = la.Agent__r.Name;
        if(agentName != null){
            agentName = agentName.replace('(P)', '').replace('(P)','');
        }
        String dateString = String.valueOf(la.Rental_Start_Date__c) + ' 至 ' +String.valueOf(la.Rental_End_Date__c);
        dateString = dateString.replace('null', '');
        if(dateString.equals( ' 至 ')){
            dateString = '';
        }
 
        if(la.Loaner_Apply_Renewal_Date__c != null){
            isRenew = true;
        }else if(la.pickup_time__c != null){
            isSelf = true;
        }else{
            isExpress = true;
        }
 
        Integer dateNum = 0;
        String dateNumString = '';
        if(la.Rental_Start_Date__c != null && la.Rental_End_Date__c != null){
            dateNum = la.Rental_Start_Date__c.daysBetween(la.Rental_End_Date__c );
            dateNumString = String.valueOf(dateNum) + '天';
        }
        lab = new laDataLineBean(dateString,la,dateNumString);
        List<loaner_user__c> luList = [select id,Contact__r.Phone,Follow_UP_Opp__r.InquiryNumber__c,Customer__r.Name,Customer__r.DivisionName__c,Contact__r.Name,FromThePeriod__c,EndThePeriod__c from loaner_user__c where loaner_application__c = : laId];
        List<loaner_application_detail__c> ladList = [select  id,LOANER__r.Name,LOANER__r.Internal_Asset_number__c,LOANER__r.SerialNumber,LOANER__r.SerialNumber1__c,Remark__c,ECCode__c,SerialNumber__c,OTCODE__c,LOANER__c,LOANER__r.RecordType.Id,LOANER__r.RecordType.Name,LOANER__r.Description from loaner_application_detail__c where loaner_application__c = :laId];
        
        for(loaner_user__c lu :luList){
           
            String borrowDate = String.valueOf(lu.FromThePeriod__c) + ' 至 ' +String.valueOf(lu.EndThePeriod__c);
            borrowDate = borrowDate.replace('null', '');
            if(borrowDate.equals(' 至 ')){
                borrowDate = '';
            }
            String name = lu.Customer__r.Name == null?'':lu.Customer__r.Name;
            rowNum = rowNum+1+(name.length()/30);
            UserDataLineBean udlb = new UserDataLineBean(borrowDate,lu);
            luData.add(udlb);
        }
 
        for(loaner_application_detail__c lad : ladList){
  
            /*String typeId = lad.LOANER__r.RecordType.id;
            
            if( typeId.substring(0, 15) == System.label.Asset_Record_Type2){
                if(numMap.size() == 0){
                    DataLineBean dataBean = new DataLineBean(lad.LOANER__r.RecordType.Name,1,lad);
                    numMap.put(lad.LOANER__c, dataBean);
                }else{
                    if(numMap.containsKey(lad.LOANER__c)){
 
                        DataLineBean da = numMap.get(lad.LOANER__c);
                        da.num = da.num+1;
                    }else{
                        DataLineBean dataBean = new DataLineBean(lad.LOANER__r.RecordType.Name,1,lad);
                        numMap.put(lad.LOANER__c, dataBean);
                    }
                }
            }else{
                DataLineBean da = new DataLineBean(lad.LOANER__r.RecordType.Name,1,lad);
                dataLines.add(da);
            }*/
 
            DataLineBean da = new DataLineBean(lad.LOANER__r.RecordType.Name,1,lad);
                dataLines.add(da);
            
        }
        if(numMap.size() > 0){
            dataLines.addAll(numMap.values());
        }
       
        
        if(dataLines.size() < 12){
            Integer num = dataLines.size();
            for(Integer i =0; i<(12-num); i++){
            loaner_application_detail__c lac = new loaner_application_detail__c();
            DataLineBean demo = new DataLineBean(null,null,lac);
            System.debug(i);
            dataLines.add(demo);
            }  
        }
        rowNum = rowNum+dataLines.size();
        return null;
    }
 
 
     public class DataLineBean {
        // 样机类型
        public String recordType { get;private set; }
        // 数量
        public Integer num { get; private set; }
        // 样机借出申请明细
        public loaner_application_detail__c lad { get; set; }
 
        public DataLineBean(String rtype,Integer in_no, loaner_application_detail__c in_lad) {
            recordType = rtype;
            num = in_no;
            lad = in_lad;
        }
    }
 
    public class UserDataLineBean{
        //借用日期
        public String borrowDate {get;private set;}
 
        public loaner_user__c lu {get;private set;}
 
        public UserDataLineBean(String rdate,loaner_user__c in_lu){
            borrowDate = rdate;
            lu = in_lu;
        }
 
    }
 
      public class laDataLineBean{
        //借用日期
        public String ladate {get;private set;}
 
        //借用期限
        public String ladateNumS {get; private set;}
        public loaner_application__c lala {get;private set;}
 
        public laDataLineBean(String in_ladate,loaner_application__c in_la,String in_laNum){
            ladate = in_ladate;
            lala = in_la;
            ladateNumS = in_laNum;
        }
 
    }
}