<?php
|
//--------------------------常用字符转义---------------------begin
|
function strSql($str) {
|
$str=addslashes($str);
|
$str=str_replace("'","''",$str);
|
$str=str_replace("--","- -",$str);
|
$str=str_replace("exec","",$str);
|
$str=str_replace("DECLARE","",$str);
|
//$str=str_replace("\"","''",$str);
|
return $str;
|
}
|
//--------------------------常用字符转义---------------------end
|
|
|
//--------------------------用户查找---------------------begin
|
function OAUser($adminID,$DataID) {
|
$OAUser="";
|
$ADMINName ='';
|
if (isset($adminID)){
|
global $conn;
|
$sql = "select OA_User_ID,OA_User,OA_Name,OA_weixinAvatar,OA_mobile,OA_DepartmentID from OA_User where OA_User_ID=".$adminID;
|
$dataDt = sqlsrv_query($conn,$sql);
|
if($dataDt == true){
|
while($rsDt = sqlsrv_fetch_array( $dataDt, SQLSRV_FETCH_ASSOC) ) {
|
$ADMINuserID = $rsDt['OA_User_ID'];
|
$ADMINuser = $rsDt['OA_User'];
|
$ADMINName = $rsDt['OA_Name'];
|
$ADMINMobile = $rsDt['OA_mobile'];
|
$ADMINAvatar = $rsDt['OA_weixinAvatar'];
|
$ADMINDepartmentID = $rsDt['OA_DepartmentID'];
|
If ($ADMINAvatar=="") {$ADMINAvatar="/resources/images/icon_avatar_default.png";}
|
}
|
}
|
ElseIf ($adminID="177" And $DataID="UserName"){
|
$ADMINName="无";
|
}
|
else{
|
$DataID="adminID";
|
}
|
switch ($DataID) {
|
case "userID":
|
$OAUser .= $ADMINuserID;
|
break;
|
case "UserName":
|
$OAUser .= $ADMINName;
|
break;
|
case "UserPhone":
|
$OAUser .= $ADMINMobile;
|
break;
|
case "adminID":
|
$OAUser .= $adminID;
|
break;
|
case "Avatar":
|
$OAUser .= $ADMINAvatar;
|
break;
|
case "DepartmentID":
|
$OAUser .= $ADMINDepartmentID;
|
break;
|
case "DepartmentName":
|
$sql = "select vtext from dictionary where vtitle='OA_Department' and vID=".$ADMINDepartmentID;
|
$dataDt = sqlsrv_query($conn,$sql);
|
if($dataDt == true){
|
while($rsDt = sqlsrv_fetch_array( $dataDt, SQLSRV_FETCH_ASSOC) ) {
|
$OAUser = $rsDt['vtext'];
|
}
|
}
|
break;
|
default:
|
$OAUser .= $adminID;
|
}
|
}
|
return $OAUser;
|
}
|
//--------------------------用户查找---------------------end
|
|
//--------------------------企业用户查找---------------------begin
|
Function UnitIntroducer($ServiceOrdIntroducer,$DataID){
|
$IntroducerName="";
|
if (isset($ServiceOrdIntroducer)){
|
If (is_numeric($ServiceOrdIntroducer)){
|
global $conn;
|
$sql = "select IntroducerID,IntroducerName,IntroducerUnitID from IntroducerData where IntroducerID=".$ServiceOrdIntroducer;
|
$dataDt = sqlsrv_query($conn,$sql);
|
if($dataDt == true){
|
while($rsDt = sqlsrv_fetch_array( $dataDt, SQLSRV_FETCH_ASSOC) ) {
|
$IntroducerID = $rsDt['IntroducerID'];
|
$IntroducerName = $rsDt['IntroducerName'];
|
$IntroducerUnitID = $rsDt['IntroducerUnitID'];
|
}
|
}Else{
|
$DataID="TXT";
|
}
|
}Else{
|
$DataID="TXT";
|
}
|
}else{
|
$DataID="TXT";
|
}
|
|
switch ($DataID) {
|
case "TXT";
|
$UnitIntroducer = $ServiceOrdIntroducer;
|
break;
|
case "UnitName";
|
$UnitIntroducer = $IntroducerName;
|
break;
|
case "UnitID";
|
$UnitIntroducer = $IntroducerUnitID;
|
break;
|
default:
|
$UnitIntroducer = $ServiceOrdIntroducer;
|
}
|
return $UnitIntroducer;
|
}
|
//--------------------------企业用户查找---------------------end
|
|
//--------------------------数字转字母(用于Excel列标)---------------------begin
|
/**
|
* 数字转字母 (类似于Excel列标)
|
* @param Int $index 索引值
|
* @param Int $start 字母起始值
|
* @return String 返回字母
|
echo IntToChr(27);
|
*/
|
function IntToChr($index, $start = 65) {
|
$str = '';
|
if (floor($index / 26) > 0) {
|
$str .= IntToChr(floor($index / 26)-1);
|
}
|
return $str . chr($index % 26 + $start);
|
}
|
//--------------------------数字转字母---------------------end
|
|
//--------------------------文本日期转实际时间---------------------begin
|
function TXTDateToDate($TXTDate) {
|
$str = '';
|
switch ($TXTDate) {
|
case "当天":
|
$str = date("Y-m-d");
|
break;
|
case "昨天":
|
$str = date("Y-m-d",strtotime('-1 day'));
|
break;
|
case "前天":
|
$str = date("Y-m-d",strtotime('-2 day'));
|
break;
|
case "本周":
|
$str = date("Y-m-d",strtotime('last day this week'))."至".date("Y-m-d",strtotime('last day this week +6 days'));
|
break;
|
case "上周":
|
$str = date("Y-m-d",strtotime('last day this week -1 week'))."至".date("Y-m-d",strtotime('last day this week -1 days'));
|
break;
|
case "本月":
|
$str = date("Y年m月");
|
break;
|
case "上月":
|
$str = date("Y年m月",strtotime("last month"));
|
break;
|
case "本年":
|
$str = date("Y年");
|
break;
|
case "本结算月":
|
$str = date("Y-m-",strtotime("last month"))."25"."至".date("Y-m-")."24";
|
/*
|
if(date("d")<=24) {
|
$str = date("Y-m-",strtotime("last month"))."25"."至".date("Y-m-")."24";
|
}else{
|
$str = date("Y-m-")."25"."至".date("Y-m-",strtotime("+1 month"))."24";
|
}
|
*/
|
break;
|
default:
|
$str = $TXTDate;
|
}
|
return $str;
|
}
|
//--------------------------文本日期转实际时间---------------------end
|
|
//--------------------------个人绩效提成算法2---------------------begin
|
function EntourageDKP_Money_B($DispatchOrdPerfomance,$EntourageOT_is,$EntourageLong_is,$EntourageBetimesHH,$EntourageDKP,$EntourageDKPScale,$EntourageState_Time,$StretcherM) {
|
$EntourageDKP_Money=0;
|
If ($EntourageOT_is=1) { //加班绩效提成计算方式
|
If ($DispatchOrdPerfomance<=1000) {
|
If ($EntourageName="医生") {
|
$EntourageDKP_Money=100;
|
}
|
ElseIf ($EntourageName="护士") {
|
$EntourageDKP_Money=80;
|
}
|
Else {
|
$EntourageDKP_Money=70;
|
}
|
}
|
ElseIf ($DispatchOrdPerfomance>1000 And $DispatchOrdPerfomance<=2000) {
|
If ($EntourageName="医生") {
|
$EntourageDKP_Money=200;
|
}
|
ElseIf ($EntourageName="护士") {
|
$EntourageDKP_Money=160;
|
}Else{
|
$EntourageDKP_Money=140;
|
}
|
}
|
ElseIf ($DispatchOrdPerfomance>2000 And $DispatchOrdPerfomance<=3000) {
|
If ($EntourageName="医生") {
|
$EntourageDKP_Money=300;
|
}
|
ElseIf ($EntourageName="护士") {
|
$EntourageDKP_Money=240;
|
} Else {
|
$EntourageDKP_Money=210;
|
}
|
} Else {
|
If ($EntourageName="医生") {
|
$EntourageDKP_Money=number_format($DispatchOrdPerfomance*0.1,1);
|
}
|
ElseIf ($EntourageName="护士") {
|
$EntourageDKP_Money=number_format($DispatchOrdPerfomance*0.08,1);
|
} Else {
|
$EntourageDKP_Money=number_format($DispatchOrdPerfomance*0.07,1);
|
}
|
}
|
} Else { //正常上班时间
|
If ($EntourageBetimesHH>0) {
|
//If ($EntourageBetimesHH>2 And DateDiff("d",EntourageState_Time,"2016-12-5")<=0)) {$EntourageBetimesHH=2;}
|
$EntourageDKP_Money=$EntourageBetimesHH*30;
|
}
|
$EntourageDKP_Money=$EntourageDKP_Money+number_format($EntourageDKP*$EntourageDKPScale,1);
|
}
|
//$EntourageDKP_Money_B=$EntourageDKP_Money+$StretcherM;
|
return $EntourageDKP_Money+$StretcherM;
|
|
}
|
//--------------------------个人绩效提成算法2---------------------end
|
|
//--------------------------无限级菜单排序算法---------------------begin
|
//组成多级数组
|
function MultiLevelConvert1($arr,$id){
|
$res = array();
|
foreach ($arr as $key => $value) {
|
if ($value["pid"] == $id) {
|
$value["child"]=MultiLevelConvert1($arr,$value["id"]);
|
array_push($res,$value);
|
}
|
}
|
return $res;
|
}
|
//重新整理成一维数组
|
function MultiLevelConvert2($arr,$level){
|
$res = array();
|
foreach ($arr as $key => $value) {
|
if (count($value)>0) {
|
$value["level"]=$level;
|
if (count($value['child'])>0) {
|
$res2=MultiLevelConvert2($value['child'],$level+1);
|
array_pop($value);array_push($res,$value);
|
foreach ($res2 as $key => $value) {array_push($res,$value);}
|
}
|
else {array_pop($value);array_push($res,$value);}
|
}
|
}
|
return $res;
|
}
|
//--------------------------无限级菜单排序算法---------------------end
|
|
//--------------------------调度单跟随人员---------------------begin
|
function EntourageOANameA($EntourageID,$DispatchOrdID,$DataID){
|
$res = $EntourageID;
|
if (empty($EntourageID)==false and empty($DispatchOrdID)==false) {
|
global $conn;
|
$sql = "select OA_User_ID,OA_User,OA_Name,OA_weixinAvatar,EntourageLead,EntourageState,EntourageMileageFactor,EntourageDKP,EntourageDKPScale,EntourageOT_is,EntourageLong_is,EntourageBetimesHH,EntourageEnd_Time,EntourageState_Time,Stretcher_is from DispatchOrd_Entourage,OA_User where OA_User_ID=EntourageOAid and EntourageState<>4 and DispatchOrdIDDt=".$DispatchOrdID." and EntourageID=".$EntourageID;
|
//echo $sql;exit;
|
$dataDt = sqlsrv_query($conn,$sql);
|
if($dataDt == true){
|
while($EntourageOArs = sqlsrv_fetch_array( $dataDt, SQLSRV_FETCH_ASSOC) ) {
|
$EntourageOAuserID = $EntourageOArs['OA_User_ID'];
|
$EntourageOAuser = $EntourageOArs['OA_User'];
|
$EntourageOAName = $EntourageOArs['OA_Name'];
|
$EntourageOAAvatar=empty($EntourageOArs['OA_weixinAvatar'])!=false ? "/resources/images/icon_avatar_default.png" : $EntourageOArs['OA_weixinAvatar'];
|
$EntourageLead = $EntourageOArs['EntourageLead'];
|
$EntourageState = $EntourageOArs['EntourageState'];
|
$EntourageMileageFactor = $EntourageOArs['EntourageMileageFactor'];
|
$EntourageOT_is = $EntourageOArs['EntourageOT_is'];
|
$EntourageLong_is = $EntourageOArs['EntourageLong_is'];
|
$EntourageBetimesHH = $EntourageOArs['EntourageBetimesHH'];
|
$EntourageDKP = $EntourageOArs['EntourageDKP'];
|
$EntourageDKPScale = $EntourageOArs['EntourageDKPScale'];
|
$EntourageEnd_Time = $EntourageOArs['EntourageEnd_Time'];
|
$EntourageState_Time = $EntourageOArs['EntourageState_Time'];
|
$Stretcher_is = $EntourageOArs['Stretcher_is'];
|
}
|
}Else{
|
$DataID="userID";
|
$EntourageOAuserID=$EntourageID;
|
}
|
|
if (isset($EntourageOAuserID)) {
|
switch ($DataID)
|
{
|
case "userID":
|
$res= $EntourageOAuserID;
|
break;
|
case "UserName":
|
$res= $EntourageOAName;
|
If ($EntourageOAState==3) {
|
$res = "<font color='#6699ff'>".$res."</font>";
|
}
|
ElseIf ($EntourageOAState==2) {
|
$res = "<font color='#C3C3C3'>".$res."</font>";
|
}
|
If ($EntourageOALead==1) { $res = "<img src='/resources/images/2016020401.png'>".$res;}
|
break;
|
case "UserNameReport":
|
$res= $EntourageOAName;
|
If ($EntourageMileageFactor!=1) {
|
$res = $res."/".floatval(number_format($EntourageMileageFactor,2,".",""));
|
}
|
If ($EntourageID==5 Or $EntourageID==6 Or $EntourageID==2) {
|
$res=",".$res;
|
}
|
break;
|
default:
|
$res="";
|
}
|
} else {
|
$res="";
|
}
|
|
}
|
return $res;
|
}
|
//--------------------------调度单跟随人员---------------------end
|
|
|
//--------------------------服务单类型---------------------begin
|
Function ServiceOrdTypeA($ServiceOrdType) {
|
global $conn;
|
$sql = "select vtext from dictionary where vtitle='ServiceOrderType' and vID=".$ServiceOrdType;
|
//echo $sql;exit;
|
$dataDt = sqlsrv_query($conn,$sql);
|
if($dataDt == true){
|
while($ServiceOrdTypers = sqlsrv_fetch_array( $dataDt, SQLSRV_FETCH_ASSOC) ) {
|
return $ServiceOrdTypers['vtext'];
|
}
|
}Else{
|
return $ServiceOrdType;
|
}
|
}
|
//--------------------------服务单类型---------------------end
|
|
//--------------------------订单分区---------------------begin
|
Function OrderClassA($OrderClass) {
|
global $conn;
|
$sql = "select top 1 vtext from dictionary where vtitle='OrderClass' and vOrder2='".$OrderClass."' order by vType desc";
|
//echo $sql;exit;
|
$dataDt = sqlsrv_query($conn,$sql);
|
if($dataDt == true){
|
while($OrderClassrs = sqlsrv_fetch_array( $dataDt, SQLSRV_FETCH_ASSOC) ) {
|
return $OrderClassrs['vtext'];
|
}
|
}Else{
|
return $OrderClass;
|
}
|
}
|
//--------------------------订单分区---------------------end
|
|
//--------------------------订单级别查询---------------------begin
|
Function OrderLevelA($OrderLevel) {
|
global $conn;
|
$sql = "select top 1 vtext from dictionary where vtitle='OrderLevel' and vID=".$OrderLevel." order by vType desc";
|
//echo $sql;exit;
|
$dataDt = sqlsrv_query($conn,$sql);
|
if($dataDt == true){
|
while($OrderLevelrs = sqlsrv_fetch_array( $dataDt, SQLSRV_FETCH_ASSOC) ) {
|
return $OrderLevelrs['vtext'];
|
}
|
}Else{
|
return $OrderLevel;
|
}
|
}
|
//--------------------------订单级别查询---------------------end
|
|
//--------------------------订单出发类型查询---------------------begin
|
Function DepartureTypeA($DepartureType) {
|
global $conn;
|
$sql = "select top 1 vtext from dictionary where vtitle='DepartureType' and vID=".$DepartureType." order by vType desc";
|
//echo $sql;exit;
|
$dataDt = sqlsrv_query($conn,$sql);
|
if($dataDt == true){
|
while($DepartureTypers = sqlsrv_fetch_array( $dataDt, SQLSRV_FETCH_ASSOC) ) {
|
return $DepartureTypers['vtext'];
|
}
|
}Else{
|
return $DepartureType;
|
}
|
}
|
//--------------------------订单出发类型查询---------------------end
|
|
//--------------------------车辆资料查询---------------------begin
|
Function CarDataA($CarID,$CarLicense,$DataID) {
|
global $conn;
|
$sql='';
|
If ($CarID!="") {
|
$CarDataA=$CarID;
|
$sql = "select * from CarData where CarID=".$CarID;
|
} ElseIf ($CarLicense!="") {
|
$CarDataA=$CarLicense;
|
$sql = "select * from CarData where CarLicense='".$CarLicense."'";
|
}
|
if ($sql!='') {
|
//echo $sql;exit;
|
$dataDt = sqlsrv_query($conn,$sql);
|
if($dataDt == true){
|
while($ServiceOrdTypers = sqlsrv_fetch_array( $dataDt, SQLSRV_FETCH_ASSOC) ) {
|
if ($DataID=='CarLicense'){
|
return $ServiceOrdTypers['CarLicense'];
|
}else{
|
return $ServiceOrdTypers['CarID'];
|
}
|
}
|
}Else{
|
return $CarID;
|
}
|
}else{
|
return '--';
|
}
|
}
|
//--------------------------车辆资料查询---------------------end
|
|
//--------------------------客户评价(2020.12.22)---------------------begin
|
Function Guest_PointEA($Guest_PointE) {
|
$Guest_PointEA="";
|
$Guest_PointE_arr=explode(",",$Guest_PointE);
|
foreach ($Guest_PointE_arr as $key => $value) {
|
if (!empty($value)){
|
if ($value == "9") {
|
$Guest_PointEA = $Guest_PointEA.",满意";
|
}elseif ($value == "8") {
|
$Guest_PointEA = $Guest_PointEA.",满意";
|
}elseif ($value == "1") {
|
$Guest_PointEA = $Guest_PointEA.",不满意技能水平";
|
}elseif ($value == "2") {
|
$Guest_PointEA = $Guest_PointEA.",不满意服务水平";
|
}else{
|
$Guest_PointEA = $Guest_PointE;
|
}
|
}
|
}
|
if (!empty($Guest_PointEA)) {$Guest_PointEA=substr($Guest_PointEA,1);}
|
return $Guest_PointEA;
|
}
|
//--------------------------客户评价---------------------end
|
|
//--------------------------个人绩效提成算法3 2018-10-25开始使用---------------------begin
|
Function EntourageDKP_Money_C($OA_User_ID,$DispatchOrdID,$ServiceOrdType,$OrdDistance,$TimeLength_Program,$TimeLength_ICU,$TimeLength_Wait,$EntourageMileageFactor,$EntourageOT_is,$EntourageBetimesHH,$Stretcher_Money,$EntourageP1,$Condition_is) {
|
$ConversionDistance=0;
|
$EntourageOT_Money=0;
|
$Condition_Money=0;
|
$CompetencyID=0;
|
//select top 1 @CompetencyID=OA_CompetencyID from OA_User,OA_Competency where OA_CompetencyUserID=OA_User_ID and OA_User_ID=@OA_User_ID order by OA_CompetencyID
|
|
//是否加班/提前出车
|
if ($EntourageOT_is=1 or $EntourageBetimesHH>0) {
|
$EntourageOT_Money=30;
|
}
|
|
//折算行驾里程
|
if ($OrdDistance>=0 and $OrdDistance<=50) {
|
$ConversionDistance = 50;
|
}elseif ($OrdDistance>50 and $OrdDistance<=100 and $ServiceOrdType!=9) {
|
$ConversionDistance = 100;
|
}elseif ($OrdDistance>100 and $OrdDistance<=150 and $ServiceOrdType!=9) {
|
$ConversionDistance = 150;
|
}elseif ($OrdDistance>150 and $OrdDistance<=200 and $ServiceOrdType!=9) {
|
$ConversionDistance = 200;
|
}elseif ($OrdDistance>200 and $OrdDistance<=250 and $ServiceOrdType!=9) {
|
$ConversionDistance = 250;
|
}else{
|
$ConversionDistance = $OrdDistance;
|
}
|
|
//里程为-1时,行驾里程为0公里
|
if ($ConversionDistance<0) {
|
$ConversionDistance = 0;
|
}
|
|
//大型活动保障时长
|
if ($TimeLength_Program>0) {
|
$ConversionDistance=$ConversionDistance+($TimeLength_Program*30);
|
}
|
//居家ICU
|
if ($TimeLength_ICU>0) {
|
$ConversionDistance=$ConversionDistance+($TimeLength_ICU*50);
|
}
|
//等待时长
|
if ($TimeLength_Wait>0) {
|
$ConversionDistance=$ConversionDistance+($TimeLength_Wait*20);
|
}
|
//机场单
|
if ($ServiceOrdType==4) {
|
if ($OrdDistance==0){$ConversionDistance=0;}
|
$ConversionDistance=$ConversionDistance+150;
|
}
|
//救援单
|
if ($ServiceOrdType==10) {
|
if ($OrdDistance<50) {
|
$ConversionDistance = 50;
|
}else{
|
$ConversionDistance = $OrdDistance;
|
}
|
}
|
//高铁,航空单
|
if ($ServiceOrdType==8 or $ServiceOrdType==5){
|
$ConversionDistance=0;
|
}
|
//司机单独出车系数
|
//if ($CompetencyID=2 and $EntourageMileageFactor=1.2 and $ConversionDistance>250)
|
// $EntourageMileageFactor=1.5
|
|
//计算个人系数
|
$ConversionDistance = $ConversionDistance*$EntourageMileageFactor;
|
|
//人工绩效计提修改
|
//select $ConversionDistance=EntourageMileageEdit from DispatchOrd_Entourage where EntourageMileageEdit is not null and DispatchOrdIDDt=$DispatchOrdID and EntourageOAid=$OA_User_ID
|
|
|
//特殊项目金额(使用呼吸机,保温箱,ECMO 医生50元/单/人,护士30元/单/人)
|
if ($CompetencyID==3 and $Condition_is>0){
|
$Condition_Money=50;
|
}
|
if ($CompetencyID==4 and $Condition_is>0){
|
$Condition_Money=30;
|
}
|
return array($ConversionDistance,$EntourageOT_Money,$Stretcher_Money,$EntourageMileageFactor,$Condition_Money);
|
}
|
//--------------------------个人绩效提成算法3 2018-10-25开始使用---------------------end
|
?>
|