<apex:page standardController="Opportunity" standardStylesheets="false" sidebar="false" extensions="StageProgressBarExtension">
|
<apex:form >
|
<apex:outputPanel id="thePanel">
|
<apex:stylesheet value="{!URLFOR($Resource.StageProgressBarCss)}" />
|
<apex:stylesheet value="{!URLFOR($Resource.blockUIcss)}"/>
|
<apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}"/>
|
<apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}"/>
|
<apex:includeScript value="{!URLFOR($Resource.CommonUtilJs)}"/>
|
<apex:includeScript value="{!URLFOR($Resource.connection20)}"/>
|
<apex:includeScript value="{!URLFOR($Resource.apex20)}"/>
|
<apex:includeScript value="{!URLFOR($Resource.StageMapJsNew1)}"/>
|
<style>
|
.stage {
|
background: #B1B4B6;
|
font-size: 10px;
|
padding: 6px 10px;
|
margin:0,0;
|
display: inline-block;
|
-webkit-transition-duration: 0.3s;
|
transition-duration: 0.3s;
|
-webkit-transition-property: box-shadow;
|
transition-property: box-shadow;
|
-webkit-transform: translateZ(0);
|
transform: translateZ(0);
|
box-shadow: 0 0 1px rgba(0, 0, 0, 0);
|
}
|
</style>
|
<script>
|
var stage = '{!JSENCODE(Opportunity.stageName)}';
|
var stageObj = new Object();
|
var colorObj = new Object();
|
// StageMap.jsのパラメータを直接読む
|
var debugview1 = '{!recordTypeName}';
|
//alert(debugview1);
|
for(i = 0; i < {!recordTypeName}.length; i++){
|
var dData = {!recordTypeName}[i];
|
var cDate = {!recordTypeName}COLOR[i];
|
stageObj[dData[0]] = dData;
|
colorObj[cDate[0]] = cDate;
|
}
|
// 今のStageに対し、クリックできるStageを設定
|
// 定義してない場合、全Stageクリック不能
|
var activeStage = stageObj[stage];
|
var activeStageObj = new Object();
|
if (activeStage != undefined && activeStage.length > 1) {
|
for (i = 1; i < activeStage.length; i++) {
|
activeStageObj[activeStage[i]] = activeStage[i];
|
}
|
}
|
var activeColor = colorObj[stage];
|
var activeColorObj = new Object();
|
if (activeColor != undefined && activeColor.length > 1) {
|
for (i = 1; i < activeColor.length; i++) {
|
activeColorObj[activeColor[i]] = activeColor[i];
|
}
|
}
|
|
j$(document).ready(function() {
|
var stages = j$('.stage');
|
//for (i = 0; i < stages.length; i++) {
|
// j$(stages[i]).css('background-color', '#2A94D6');
|
// if (j$(stages[i]).text() == stage) {
|
// break;
|
// }
|
//}
|
for (i = 0; i < stages.length; i++) {
|
if (activeColorObj[j$(stages[i]).text()] != undefined) {
|
j$(stages[i]).css('background-color', '#2A94D6');
|
}
|
}
|
// cursorとclass
|
for (i = 0; i < stages.length; i++) {
|
j$(stages[i]).css({'cursor':'default'});
|
j$(stages[i]).addClass('ng-stage');
|
if (activeStageObj[j$(stages[i]).text()] != undefined) {
|
j$(stages[i]).css({'cursor':'pointer'});
|
j$(stages[i]).removeClass('ng-stage');
|
}
|
}
|
// イベントハンドラ―
|
j$('.stage').click(
|
function() {
|
if (j$(this).hasClass('ng-stage') == false) {
|
var s = j$(this).text();
|
if (confirm('变更询价阶段到' + s + ',是否确定?') == false) {
|
return;
|
}
|
if (s == '完成') {
|
//询价禁止代理商点击“完成”按钮
|
var conzt ='{!Opportunity.CreatedBy.User_Type__c}';
|
if(conzt == 'PowerPartner'){
|
alert('抱歉,询价禁止代理商点击“完成”按钮');
|
return;
|
}else{
|
s = 'Closed Won';
|
}
|
} else if (s == '失败') {
|
var oppId = '{!Opportunity.Id}';
|
var creuser = '{!Opportunity.CreatedById}'.substring(0,15);
|
|
var userId = '{!$User.Id}'.substring(0,15);
|
|
var roleId = '{!$User.UserRoleId}'.substring(0,15);
|
//alert(userId);
|
if(userId == '005280000037mrQ' || userId == '00528000002OAvH' || userId == '00528000000YSdB' || roleId == '00E0K000001ywwz' || roleId == '00E0K000001jGiM' || roleId == '00E0K000001jGib' || roleId == '00E0K000001ywgS' || roleId == '00E28000000knAm' || roleId == '00E28000000knAr' || roleId == '00E28000000aKzn' || roleId == '00E0K000001jGhn' || roleId == '00E0K000001jGhs' || roleId == '00E0K000001ywgN' || roleId == '00E0K000001PWuh' || roleId == '00E0K000001PWum' || roleId == '00E0K000001PWur' || roleId == '00E280000015xus' || roleId == '00E280000015xux' || roleId == '00E28000000aKzs' || roleId == '00E0K000001jGiC' || roleId == '00E0K000001jGiR' || roleId == '00E0K000001ywgX' || roleId == '00E28000000knAc' || roleId == '00E28000000knAh' || roleId == '00E28000000aKzx' || roleId == '00E28000000knAw' || roleId == '00E28000000knB1' || roleId == '00E28000000aL02' ){
|
var rtn = sforce.apex.execute("OpportunityWebService", "checkOrderStatus", {oppId: oppId,stageName:'Closed Lost',creuser: creuser});
|
if(rtn == '1' && creuser == userId){
|
/*if(!confirm("是否失败询价?")){
|
return;
|
}*/
|
|
/*var rac = new sforce.SObject("Opportunity");
|
rac.Id = "{!Opportunity.Id}";
|
rac.Cancel_Fail_Approve__c = 'Pass';
|
rac.StageName = 'Closed Lost';
|
var result = sforce.connection.update([rac]);
|
var messages = getConnectDMLErrorMessages(result);
|
if (messages.length > 0) {
|
alert(messages.join("\n"));
|
return;
|
}*/
|
alert('询价已失败.');
|
refreshPage();
|
return;
|
}else{
|
//alert(rtn);
|
if(creuser != userId){
|
alert('只有创建人才能失败询价');
|
}else if(rtn == '0' ){
|
alert('询价下存在有效合同,不能取消/失败');
|
}else{
|
alert(rtn);
|
}
|
return;
|
}
|
|
}
|
|
s = 'Closed Lost';
|
} else if (s == '取消') {
|
var oppId = '{!Opportunity.Id}';
|
var creuser = '{!Opportunity.CreatedById}'.substring(0,15);
|
|
var userId = '{!$User.Id}'.substring(0,15);
|
|
var roleId = '{!$User.UserRoleId}'.substring(0,15);
|
//alert(userId);
|
if(userId == '005280000037mrQ' || userId == '00528000002OAvH' || userId == '00528000000YSdB' || roleId == '00E0K000001ywwz' || roleId == '00E0K000001jGiM' || roleId == '00E0K000001jGib' || roleId == '00E0K000001ywgS' || roleId == '00E28000000knAm' || roleId == '00E28000000knAr' || roleId == '00E28000000aKzn' || roleId == '00E0K000001jGhn' || roleId == '00E0K000001jGhs' || roleId == '00E0K000001ywgN' || roleId == '00E0K000001PWuh' || roleId == '00E0K000001PWum' || roleId == '00E0K000001PWur' || roleId == '00E280000015xus' || roleId == '00E280000015xux' || roleId == '00E28000000aKzs' || roleId == '00E0K000001jGiC' || roleId == '00E0K000001jGiR' || roleId == '00E0K000001ywgX' || roleId == '00E28000000knAc' || roleId == '00E28000000knAh' || roleId == '00E28000000aKzx' || roleId == '00E28000000knAw' || roleId == '00E28000000knB1' || roleId == '00E28000000aL02' ){
|
var rtn = sforce.apex.execute("OpportunityWebService", "checkOrderStatus", {oppId: oppId,stageName:'Closed Cancel',creuser: creuser});
|
if(rtn == '1' && creuser == userId){
|
/*if(!confirm("是否失败询价?")){
|
return;
|
}*/
|
|
/*var rac = new sforce.SObject("Opportunity");
|
rac.Id = "{!Opportunity.Id}";
|
rac.Cancel_Fail_Approve__c = 'Pass';
|
rac.StageName = 'Closed Cancel';
|
var result = sforce.connection.update([rac]);
|
var messages = getConnectDMLErrorMessages(result);
|
if (messages.length > 0) {
|
alert(messages.join("\n"));
|
return;
|
}*/
|
alert('询价已取消.');
|
refreshPage();
|
return;
|
}else{
|
if(creuser != userId){
|
alert('只有创建人才能取消询价');
|
}else if(rtn == '0' ){
|
alert('询价下存在有效合同,不能取消/失败');
|
}else{
|
alert(rtn);
|
}
|
return;
|
}
|
|
}
|
s = 'Closed Cancel';
|
}
|
//updateOpp(j$(this).attr('data-id'), j$(this).text());
|
updateOpp(j$(this).attr('data-id'), s);
|
}
|
}
|
);
|
j$('.stage').mouseover(
|
function() {
|
if (j$(this).hasClass('ng-stage') == false) {
|
j$(this).css({'box-shadow':'0 0 8px rgba(0, 0, 0, 0.6)'});
|
}
|
}
|
);
|
j$('.stage').mouseleave(
|
function() {
|
if (j$(this).hasClass('ng-stage') == false) {
|
j$(this).css({'box-shadow':''});
|
}
|
}
|
);
|
});
|
|
function updateOpp(id, stage) {
|
//var opp = new sforce.SObject("Opportunity");
|
//opp.Id = id;
|
//opp.StageName = stage;
|
//var result = sforce.connection.update([opp]);
|
//var messages = getConnectDMLErrorMessages(result);
|
//if (messages.length > 0) {
|
// alert(messages.join("\n"));
|
// return;
|
//} else {
|
// refreshPage();
|
//}
|
var rs = sforce.apex.execute("OpportunityWebService", "UpdateStageName", {opportunityId: id, targetStageName: stage});
|
if (rs != '1') {
|
alert(rs);
|
return;
|
} else {
|
refreshPage();
|
}
|
}
|
|
function refreshPage(){
|
var path = window.location.pathname;
|
if (path.indexOf('/servlet/') > 0) {
|
path = path.substring(0, path.indexOf('/servlet/'));
|
} else {
|
path = '';
|
}
|
window.parent.location.href = path + '/{!Opportunity.id}';
|
}
|
</script>
|
<!-- <apex:pageMessages /> -->
|
<!-- <apex:actionFunction action="{!updateOpp}" name="updateOpp" reRender="thePanel" oncomplete="refreshPage()"> -->
|
<!-- <apex:param assignTo="{!targetId}" name="oppId" value="" /> -->
|
<!-- <apex:param assignTo="{!targetStageName}" name="stage" value="" /> -->
|
<!-- </apex:actionFunction> -->
|
<div align = "left"><apex:repeat value="{!stages}" var="stage">
|
<a href="#" class="progress-button stage" data-id="{!Opportunity.id}">{!HTMLENCODE(stage)}</a>
|
</apex:repeat></div>
|
</apex:outputPanel>
|
</apex:form>
|
</apex:page>
|