public without sharing class LoanerLendDeliverController {
|
// 基础Url
|
public String baseUrl { get; private set; }
|
// 样机借出申请ID
|
public String laId { get; private set; }
|
public loaner_application__c lac {get;private set;}
|
public loaner_application__c la { get; private set; }
|
|
// // 20220311 PI改造 --start
|
// public string staticResource { get; private set; }
|
// // 20220311 PI改造 --end
|
|
public Set<String> laSet {get; private set;}
|
/* 画面步骤
|
* 下架:StockDown
|
*
|
*/
|
public String step { get; private set; }
|
// 明细Bean
|
public List<DataLineBean> dataLines { get; set; }
|
public List<loaner_application_detail__c> lad1s {get; private set;}
|
// 明细行数
|
public Integer getDatalineSize() {
|
return dataLines == null ? 0 : dataLines.size();
|
}
|
|
public LoanerLendDeliverController() {
|
laId = System.currentPageReference().getParameters().get('id');
|
step = System.currentPageReference().getParameters().get('step');
|
//staticResource = JSON.serialize(PIHelper.getPIIntegrationInfo('Contact')); //20220311 PI改造
|
}
|
|
public PageReference init() {
|
// 基础Url
|
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';
|
}
|
// 明细Bean
|
dataLines = new List<DataLineBean>();
|
|
if (String.isBlank(laId) == true) {
|
return null;
|
}
|
if (String.isBlank(step) == true) {
|
return null;
|
}
|
|
// 样机借出申请取得
|
List<loaner_application__c> laList = [select Id,Return_Trake_Staff__c,Return_Track_Company__c,Return_Track_Number__c,Status__c,Equipment_Type__c from loaner_application__c where Id = :laId];
|
if (laList.size() == 0) {
|
return null;
|
}
|
la = laList[0];
|
lac = new loaner_application__c();
|
User temp = [select id,Name from User where id = :UserInfo.getUserId()];
|
lac.Return_Trake_Staff__c = temp.Name;
|
|
List<String> benId = new List<String>();
|
|
|
// 样机借出申请明细取得
|
String sql_select = 'select Id,loaner_application__c, SerialNumber__c, Receipt_Status__c,Internal_Asset_number__c, OTCODE__c, ECCode__c,LOANER__c,LOANER__r.RecordType.Id,loaner_application__r.Loaner_AgreementPDF__c,LOANER__r.Name,LOANER__r.Remarks2__c';
|
String sql_where = ' where loaner_application__c = :laId ';
|
if (step == 'LoanerLend') {
|
sql_where += ' and RAESD_Status__c in (\'申请者已收货\',\'申请者已装机确认\')';
|
} else {
|
return null;
|
}
|
String sql_full = sql_select + ' from loaner_application_detail__c ' + sql_where;
|
List<loaner_application_detail__c> lads = Database.query(sql_full);
|
System.debug('========1========'+lads);
|
if (lads.size() == 0) {
|
return null;
|
}else{
|
for(loaner_application_detail__c loan : lads){
|
benId.add(loan.id);
|
}
|
}
|
//获取记录该信息的明细
|
lad1s = [select Id,loaner_Agent__c,loaner_application__r.loaner_request_number__c ,loaner_application__r.Owner.Name,LendPrimary_Name__c,SerialNumber__c, Internal_Asset_number__c, OTCODE__c, ECCode__c,LOANER__c,loaner_application__c,LOANER__r.RecordType.Id,loaner_application__r.Loaner_AgreementPDF__c,loaner_application__r.pickup_time__c,loaner_application__r.Agent__c,loaner_application__r.Rental_Start_Date__c,loaner_application__r.Rental_end_Date__c from loaner_application_detail__c where LendPrimary_Name__c = :benId and RAESD_Status__c = '已批准'];
|
List<loaner_application_detail__c> lad2s = new List<loaner_application_detail__c>();
|
System.debug('==========2======='+lad1s);
|
if(lad1s.size() == 0){
|
|
return null;
|
}
|
Integer cnt = 0;
|
for(loaner_application_detail__c i : lad1s){
|
for(loaner_application_detail__c j : lads){
|
if(j.id == i.LendPrimary_Name__c){
|
System.debug('==============3========='+i.LendPrimary_Name__c);
|
lad2s.add(j);
|
cnt += 1;
|
System.debug('转借代理商:'+i.loaner_Agent__c);
|
//DataLineBean dataLine = new DataLineBean(cnt, j,i.loaner_application__r.Loaner_AgreementPDF__c == true ? '已上传' : '未上传');
|
DataLineBean dataLine = new DataLineBean(cnt, j,i.loaner_application__r.Loaner_AgreementPDF__c,i.loaner_Agent__c,i.loaner_application__r.loaner_request_number__c);
|
dataLines.add(dataLine);
|
}
|
}
|
}
|
// 明细Bean作成
|
/* Integer cnt = 0;
|
for (loaner_application_detail__c lad : lad2s) {
|
cnt += 1;
|
DataLineBean dataLine = new DataLineBean(cnt, lad);
|
dataLines.add(dataLine);
|
} */
|
// ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, String.valueOf(lad1s)));
|
return null;
|
}
|
|
public PageReference saveBtn() {
|
laSet = new Set<String>();
|
List<loaner_application_detail__c> updList = new List<loaner_application_detail__c>();
|
List<Asset> assList = new List<Asset>();
|
Integer count = 0;
|
boolean pickupFalg = false;
|
if(dataLines.size() >0){
|
Loaner_Express__c le = this.createExpress('发货');
|
Loaner_Express__c rle = this.createExpress('回寄');
|
for (DataLineBean dataLine : dataLines) {
|
if (dataLine.checkFlag == true) {
|
if(dataLine.PDFflag == false){
|
ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.ERROR, '借用方未上传借用协议,不能进行转借发货。'));
|
if(le != null ){
|
delete le;
|
le = null;
|
}
|
if(rle != null){
|
delete rle;
|
rle = null;
|
}
|
return null;
|
}
|
loaner_application_detail__c lad = dataLine.lad;
|
|
if(lad.Receipt_Status__c != 'OK' && lad.Receipt_Status__c == null){
|
lad.Receipt_Status__c = 'OK';
|
lad.Receipt_Date__c = Date.today();
|
}
|
//发货方明细
|
//日期
|
lad.Asset_Return_Date__c = Date.today();
|
lad.Received_loaner_Date__c = Date.today();
|
lad.After_Inspection_Date__c = Date.today();
|
lad.Arrival_wh_Date__c = Date.today();
|
lad.inTime__c = Datetime.now();
|
lad.RAESD_Status__c = '已回库';
|
//上架检查
|
lad.StockUp__c = true;
|
lad.Check_lost_Item__c = 'OK';
|
lad.Inspection_result_after__c = 'OK';
|
|
|
for(loaner_application_detail__c temp : lad1s){
|
if(temp.LendPrimary_Name__c == lad.id){
|
//收货方明细
|
temp.StockDown__c = true;
|
temp.outTime__c = Datetime.now();
|
temp.StockDown_Date__c = Date.today();
|
temp.Shipment_Request_Date__c = Date.today();
|
temp.Pre_inspection_Date__c = Date.today();
|
|
|
temp.Inspection_result__c ='OK';
|
|
if(temp.loaner_application__r.pickup_time__c == null){
|
if(lac.Return_Track_Company__c == null || lac.Return_Track_Company__c == ''){
|
ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.ERROR, '请填写物流公司'));
|
if(le != null ){
|
delete le;
|
le = null;
|
}
|
if(rle != null){
|
delete rle;
|
rle = null;
|
}
|
return null;
|
}
|
if(lac.Return_Trake_Staff__c == null || lac.Return_Trake_Staff__c == '' ){
|
ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.ERROR, '请填写发货人'));
|
if(le != null ){
|
delete le;
|
le = null;
|
}
|
if(rle != null){
|
delete rle;
|
rle = null;
|
}
|
return null;
|
}
|
|
temp.Loaner_Express__c = le.id;
|
temp.delivery_company__c = lac.Return_Track_Company__c;
|
temp.Tracking_Number__c = lac.Return_Track_Number__c;
|
temp.RAESD_Status__c = '已出库';
|
//发货方明细回寄物流信息
|
lad.Return_Trake_Staff__c = lac.Return_Trake_Staff__c;
|
lad.Return_Track_Number__c = lac.Return_Track_Number__c;
|
lad.Return_Track_Company__c = lac.Return_Track_Company__c;
|
lad.Return_Express__c = rle.id;
|
if(temp.LOANER__r.RecordType.Id == System.label.Asset_Record_Type1){
|
if(la.Equipment_Type__c== 'NDT' || la.Equipment_Type__c == 'ANI' || la.Equipment_Type__c == 'BS'){
|
Asset loa = new Asset(id = lad.LOANER__c);
|
loa.Loaner__c = temp.loaner_application__r.Owner.Name;
|
loa.Rental_Customer__c = temp.loaner_application__r.Agent__c;
|
loa.Rental_Start_Date__c = temp.loaner_application__r.Rental_Start_Date__c;
|
loa.Rental_end_Date__c = temp.loaner_application__r.Rental_end_Date__c;
|
assList.add(loa);
|
}
|
}
|
if(laSet.size()>1){
|
ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.ERROR, '您选择的样机不只属于一个转借单'));
|
if(le != null ){
|
delete le;
|
le = null;
|
}
|
if(rle != null){
|
delete rle;
|
rle = null;
|
}
|
return null;
|
}
|
updList.add(temp);
|
updList.add(lad);
|
laSet.add(temp.loaner_application__c);
|
count++;
|
}else{
|
|
lad.Return_Trake_Staff__c = lac.Return_Trake_Staff__c;
|
temp.Receipt_Status__c = 'OK';
|
temp.Receipt_Date__c = Date.today();
|
temp.RAESD_Status__c = '申请者已收货';
|
|
if(temp.LOANER__r.RecordType.Id == System.label.Asset_Record_Type1){
|
if(la.Equipment_Type__c== 'NDT' || la.Equipment_Type__c == 'ANI' || la.Equipment_Type__c == 'BS'){
|
Asset loa = new Asset(id = lad.LOANER__c);
|
loa.Rental_Customer__c = temp.loaner_application__r.Agent__c;
|
loa.Rental_Start_Date__c = temp.loaner_application__r.Rental_Start_Date__c;
|
loa.Rental_end_Date__c = temp.loaner_application__r.Rental_end_Date__c;
|
assList.add(loa);
|
}
|
}
|
if(laSet.size()>1){
|
ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.ERROR, '您选择的样机不只属于一个转借单'));
|
if(le != null ){
|
delete le;
|
le = null;
|
}
|
if(rle != null){
|
delete rle;
|
rle = null;
|
}
|
return null;
|
}
|
pickupFalg = true;
|
updList.add(temp);
|
updList.add(lad);
|
laSet.add(temp.loaner_application__c);
|
if(le != null ){
|
delete le;
|
le = null;
|
}
|
if(rle != null){
|
delete rle;
|
rle = null;
|
}
|
}
|
|
}
|
}
|
|
}
|
}
|
|
if(!pickupFalg){
|
User temp = [select id,Name from User where id = :UserInfo.getUserId()];
|
rle.Return_Sender__c = lac.Return_Trake_Staff__c;
|
rle.Asset_Return_Date__c = Date.today();
|
rle.Return_LogisticsCompany__c = lac.Return_Track_Company__c;
|
rle.Return_LogisticsNumber__c = lac.Return_Track_Number__c;
|
rle.LendOrder__c = le.id;
|
rle.IsLendOrder__c = true;
|
rle.loaner_application__c = dataLines[0].lad.loaner_application__c;
|
|
le.Consignor_LogisticsNumber__c = lac.Return_Track_Number__c;
|
le.Consignor_LogisticsCompany__c =lac.Return_Track_Company__c;
|
le.consignor__c = temp.id;
|
le.Shipment_Request_Date__c = Date.today();
|
le.NotReceivingNum__c = count;
|
le.IsLendOrder__c = true;
|
le.loaner_application__c = lad1s[0].loaner_application__c;
|
}
|
Savepoint sp = Database.setSavepoint();
|
try {
|
if (updList.size() > 0) {
|
update updList;
|
if(la.Status__c != '完毕'){
|
la.Status__c = LoanerOrderState.getOrderStater(la.Id);
|
if(la.Status__c == '全部回寄') la.Asset_Return_Date_All__c = Date.today();
|
if(la.Status__c == '全部回收'){
|
la.Asset_Return_Date_All__c = Date.today();
|
la.LoanerClosedDateAll__c = Date.today();
|
|
if (la.Equipment_Type__c == 'NDT' || la.Equipment_Type__c == 'ANI') {
|
PrototypeToThaw.UserUnfreeze(la.Id);
|
}
|
|
}
|
la.Asset_Return_Date_All__c = Date.today();
|
update la;
|
}
|
|
List<loaner_application__c> templa = new List<loaner_application__c>();
|
|
for(String loanerId : laSet){
|
loaner_application__c newla = new loaner_application__c();
|
newla.id = loanerId;
|
newla.Status__c = LoanerOrderState.getOrderStater(loanerId);
|
if(newla.Status__c == '部分发货') newla.Shipping_Finished_Date__c = Date.today();
|
if(newla.Status__c == ' 全部发货' || newla.Status__c == '申请者已收货'){
|
newla.Shipping_Finished_Date__c = Date.today();
|
newla.Shipping_Finished_Date_All__c = Date.today();
|
}
|
templa.add(newla);
|
}
|
update templa;
|
if(!pickupFalg){
|
update le;
|
update rle;
|
}
|
if(assList.size()>0){
|
update assList;
|
}
|
|
}else{
|
if(le != null ){
|
delete le;
|
le = null;
|
}
|
if(rle != null){
|
delete rle;
|
rle = null;
|
}
|
ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.ERROR, '请选择出库的样机'));
|
return null;
|
}
|
} catch (Exception ex) {
|
Database.rollback(sp);
|
if(le != null ){
|
delete le;
|
le = null;
|
}
|
if(rle != null){
|
delete rle;
|
rle = null;
|
}
|
ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, ex.getMessage() + ' | Line:' + ex.getLineNumber()));
|
return null;
|
}
|
}
|
//return null;
|
// 返回样机借出申请画面
|
|
String url = baseUrl;
|
url += '\\' + laId;
|
return new Pagereference(url);
|
}
|
|
public Loaner_Express__c createExpress(String str){
|
Date temp = Date.today();
|
Loaner_Express__c le = new Loaner_Express__c();
|
le.loaner_application__c = laId;
|
le.Name = temp.day()+ '日'+str+'物流单';
|
if(str.equals('回寄')) le.IsDeliveryLogistics__c = false;
|
try{
|
system.debug('le:'+le);
|
insert le;
|
}catch(Exception ex){
|
ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, ex.getMessage() + ' | Line:' + ex.getLineNumber()));
|
}
|
|
return le;
|
}
|
|
public PageReference cancelBtn() {
|
// 返回样机借出申请画面
|
String url = baseUrl;
|
url += '\\' + laId;
|
return new Pagereference(url);
|
}
|
|
public class DataLineBean {
|
//转借单号
|
public String num{get;set;}
|
//转借代理商
|
public String ltc{get;set;}
|
// public String PDFflag {get; set;}
|
public boolean PDFflag{get; set;}
|
// 是否选择
|
public boolean checkFlag { get; set; }
|
// 行号
|
public Integer lineNo { get; private set; }
|
// 样机借出申请明细
|
public loaner_application_detail__c lad { get; set; }
|
|
//public DataLineBean(Integer in_no, loaner_application_detail__c in_lad,String in_PDFflag) {
|
public DataLineBean(Integer in_no, loaner_application_detail__c in_lad,boolean in_PDFflag,String in_ltc,String in_num) {
|
PDFflag = in_PDFflag;
|
checkFlag = false;
|
lineNo = in_no;
|
lad = in_lad;
|
ltc = in_ltc;
|
num = in_num;
|
}
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public PageReference sos() {
|
Integer i=1;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
return null;
|
}
|
}
|