binxie
2024-01-16 4d3febe8045eb0fa0283af3c53b0c48344b8664d
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
<?xml version="1.0" encoding="UTF-8"?>
<WebLink xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>pre_contract_submit_new</fullName>
    <availability>online</availability>
    <displayType>button</displayType>
    <linkType>javascript</linkType>
    <masterLabel>合同复核</masterLabel>
    <openType>onClickJavaScript</openType>
    <protected>false</protected>
    <url>{!RequireScript(&quot;/soap/ajax/51.0/connection.js&quot;)}
{!RequireScript(&quot;/soap/ajax/51.0/apex.js&quot;)}
{!RequireScript(&quot;/resource/CommonUtilJs&quot;)}
//zhangzhengmei 20230629 start
var excuteFoo =function () {
var decideEstimationId = &apos;{!MaintanceContractPack__c.Estimation_Id__c}&apos;;
if(decideEstimationId ) {
var decideEstimationSql = &quot;select Id,Decide__c from MaintanceContractPackEstimate__c where Name=&apos;&quot; + decideEstimationId + &quot;&apos; and Decide__c=true&quot; ;
    var decideEstimationResult = sforce.connection.query(decideEstimationSql );
    var decideEstimationRecords = decideEstimationResult.getArray(&quot;records&quot;);
    if(decideEstimationRecords.length==0) {
    alert(&apos;没有决定的报价组合,不能进行合同复核。&apos;);
    return;
}
} else {
alert(&apos;没有决定的报价组合,不能进行合同复核。&apos;);
 return;
}
 
    var dateMsg = &apos;请先填写&apos;;
    console.log(&apos;mcp.OCM_Print_request__c typeof:&apos;+typeof(&apos;{!MaintanceContractPack__c.OCM_Print_request__c}&apos;));
    if(!&apos;{!MaintanceContractPack__c.OCM_Print_request__c}&apos;) {
        dateMsg += &apos;【OCM盖章申請】&apos;;
    }
    if(!&apos;{!MaintanceContractPack__c.HP_Dealer_print__c}&apos;) {
        dateMsg += &apos;  【医院(经销商)印】&apos;;
    }
    if(!&apos;{!MaintanceContractPack__c.Contract_print_completed__c}&apos;){
        dateMsg += &apos; 【合同盖章完毕】&apos;;
    }
    if(!&apos;{!MaintanceContractPack__c.Submit_contract_to_Financial_dept__c}&apos;) {
        dateMsg += &apos; 【财务提交日】&apos;;    
    } 
        if(!&apos;{!MaintanceContractPack__c.Contract_Conclusion_Date__c}&apos;) {
        dateMsg += &apos; 【合同日】&apos;;    
    } 
    if(dateMsg!=&apos;请先填写&apos;) {
        alert(dateMsg);
        return;
    }
    var mcpid = &apos;{!MaintanceContractPack__c.Id}&apos;;
    console.log(&apos;mcpid =&apos;+mcpid);
    var sql = &quot;select Id,Name,Decided_Estimation__c,Status__c,MC_approval_status__c,Is_Recognition_Model_True__c,Contract_print_completed__c,Contract_quotation_or_not__c,Maintenance_Contract_No__c,upload_to_sap_time__c,upload_to_RM_time__c,old_Is_RecognitionModel__c,Payment_Plan_Sum_First__c from Maintenance_Contract__c where MaintanceContractPack__c=&apos;&quot; + mcpid + &quot;&apos;&quot;;
    var sqlResult = sforce.connection.query(sql);
    var records = sqlResult.getArray(&quot;records&quot;);
    
   
    //判断小合同是否符合合同复核条件
    var msg = &apos;&apos;;
    for(var i=0;i&lt;records.length;i++) {
        console.log(&apos;result&apos;+records[i]);
        mc = records[i];
//判断是否是引合中
console.log(&apos;mc.Status__c&apos;+mc.Status__c)
if(mc.Status__c!=&apos;引合中&apos;) {
 alert(mc.Name +&apos;\n 合同状态不是引合中,不能进行复核。&apos;);
 return;
}
if(!mc.Decided_Estimation__c) {
 alert(mc.Name +&apos;\n 合同报价还没有decide,不能进行复核。&apos;);
 return;
}
        //update wangweipeng 2022/01/04 start
        //判断是否需要先上传认款合同吗,如果需要那么判断他是否已经上传,如果上传,那么判断他是否完成认款,如果都满足,那么才能正常走接口上传SAP
        //判断是认款合同吗
        if(mc.old_Is_RecognitionModel__c==true ||mc.old_Is_RecognitionModel__c==&apos;true&apos;){
            if(!mc.upload_to_RM_time__c ){//判断是否已经上传认款合同
                alert(mc.Name +&apos;\n 当前维修合同的经销商是先款对象,需要先【上传认款合同】,然后完成认款以后才能复核。&apos;);
                return;
            }else{
            //判断是否完成认款
                if(mc.Is_Recognition_Model_True__c==false||mc.Is_Recognition_Model_True__c==&apos;false&apos;){
                    alert(mc.Name +&apos;\n 当前维修合同没有完成认款,不能进行复核。&apos;);
                    return;
                }
            }
        }
        var status = mc.MC_approval_status__c;
        console.log(status);
        if (status != &apos;Draft&apos; &amp;&amp; status != &apos;Reject&apos; &amp;&amp; status != &apos;&apos; &amp;&amp; status != null) {
            alert(mc.Name +&apos;\n 复核已经提交,请确认状态。&apos;);
            return;
        }
        
       
    }
    
    
    if(!confirm(&apos;一旦提交此记录以待批准,根据您的设置您可能不再能够编辑此记录或将他从批准过程中调回。是否继续?&apos;)){
        return;
    }
 //大合同的相关日期更新到小合同上
    for(var i=0;i&lt;records.length;i++) {
        console.log(&apos;date:&apos;+new Date(&apos;{!MaintanceContractPack__c.OCM_Print_request__c}&apos;));
        var mcUpdate = new sforce.SObject(&quot;Maintenance_Contract__c&quot;);
        mcUpdate.OCM_Print_request__c = new Date(&apos;{!MaintanceContractPack__c.OCM_Print_request__c}&apos;);
        mcUpdate.HP_Dealer_print__c = new Date(&apos;{!MaintanceContractPack__c.HP_Dealer_print__c}&apos;);
        mcUpdate.Contract_print_completed__c = new Date(&apos;{!MaintanceContractPack__c.Contract_print_completed__c}&apos;);
        mcUpdate.Submit_contract_to_Financial_dept__c = new Date(&apos;{!MaintanceContractPack__c.Submit_contract_to_Financial_dept__c}&apos;);
        mcUpdate.Contract_Conclusion_Date__c= new Date(&apos;{!MaintanceContractPack__c.Contract_Conclusion_Date__c}&apos;);
        mcUpdate.Id = records[i].Id;
        var result = sforce.connection.update([mcUpdate]);
        console.log(result);
    }
   
var request = new sforce.ProcessSubmitRequest();
    request.objectId = mcpid;
        var processResults = sforce.connection.process([request]);
        if (processResults[0].errors != null) {
            var errmsg = processResults[0].errors.message.toString();
            alert(&apos;{!MaintanceContractPack__c.Name}&apos;+&apos;更新失败。\n&apos;+errmsg+&apos;_sys&apos;);
            return;
        } 
    alert(&apos;合同复核提交申请成功!&apos;);
    window.location.reload();
}
 
excuteFoo();
//zhangzhengmei 20230629 end</url>
</WebLink>