using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using SuperMap.RealEstate.Utility;
using SuperMap.RealEstate.WorkFlow.Instance;
using Running = SuperMap.RealEstate.Personnel.Running;
using Storage = SuperMap.RealEstate.Personnel.Storage;
namespace SuperMap.RealEstate.Personnel.Plugins
{
///
public class PersonnelProInst : IWorkFlowProInstDataAction, IWorkFlowActInstDataAction
{
ProInst_410020 _ProInst_410020 = null;
ProInst_410030 _ProInst_410030 = null;
ProInst_410040 _ProInst_410040 = null;
ProInst_410050 _ProInst_410050 = null;
ProInst_410060 _ProInst_410060 = null;
///
public string ErrorString
{
get;
set;
}
///
/// 办结
///
///
///
public bool EndProcess(SuperMap.RealEstate.WorkFlow.Instance.Business.ProInst WorkFlowProInst)
{
bool Flag = true;
string _ErrorString = "";
Running.Business.PERSONNELPROINST _PERSONNELPROINST = GetPropertyProinst(WorkFlowProInst);
switch (WorkFlowProInst.Operation_Type_BaseValue)
{
case 410020:
#region 补打卡审批
Flag = false;
_ProInst_410020 = new ProInst_410020(_PERSONNELPROINST);
Flag = _ProInst_410020.EndProcess(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
#endregion
break;
case 410030:
#region 工资发放审批
Flag = false;
_ProInst_410030 = new ProInst_410030(_PERSONNELPROINST);
Flag = _ProInst_410030.EndProcess(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
#endregion
break;
case 410040:
#region 工资发放审批
Flag = false;
_ProInst_410040 = new ProInst_410040(_PERSONNELPROINST);
Flag = _ProInst_410040.EndProcess(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
#endregion
break;
case 410050:
#region 招聘审批
Flag = false;
_ProInst_410050 = new ProInst_410050(_PERSONNELPROINST);
Flag = _ProInst_410050.EndProcess(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
#endregion
break;
case 410060:
#region 招聘审批
Flag = false;
_ProInst_410060 = new ProInst_410060(_PERSONNELPROINST);
Flag = _ProInst_410060.EndProcess(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
#endregion
break;
default:
throw new Exception("Plugins尚未配置");
}
return Flag;
}
///
/// 驳回
///
///
///
public bool FallBackRunning(SuperMap.RealEstate.WorkFlow.Instance.Business.ProInst WorkFlowProInst)
{
throw new NotImplementedException();
}
///
/// 入库
///
///
///
public bool PutInStorage(SuperMap.RealEstate.WorkFlow.Instance.Business.ProInst WorkFlowProInst)
{
bool Flag = true;
string _ErrorString = "";
Running.Business.PERSONNELPROINST _PERSONNELPROINST = GetPropertyProinst(WorkFlowProInst);
//PutInStorageCommonInfo(_FINANCEPROINST);
switch (WorkFlowProInst.Operation_Type_BaseValue)
{
case 410020:
#region 请假审批
Flag = false;
_ProInst_410020 = new ProInst_410020(_PERSONNELPROINST);
Flag = _ProInst_410020.PutInStorage(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
#endregion
break;
case 410030:
#region 工资发放汇总审批
Flag = false;
_ProInst_410030 = new ProInst_410030(_PERSONNELPROINST);
Flag = _ProInst_410030.PutInStorage(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
#endregion
break;
case 410040:
#region 机关工资汇总审批
Flag = false;
_ProInst_410040 = new ProInst_410040(_PERSONNELPROINST);
Flag = _ProInst_410040.PutInStorage(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
#endregion
break;
case 410050:
#region 招聘审批
Flag = false;
_ProInst_410050 = new ProInst_410050(_PERSONNELPROINST);
Flag = _ProInst_410050.PutInStorage(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
#endregion
break;
case 410060:
#region 招聘审批
Flag = false;
_ProInst_410060 = new ProInst_410060(_PERSONNELPROINST);
Flag = _ProInst_410060.PutInStorage(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
#endregion
break;
default:
throw new Exception("Plugins尚未配置");
}
return Flag;
}
///
/// 流程删除
///
///
///
public bool DeleteProcess(SuperMap.RealEstate.WorkFlow.Instance.Business.ProInst WorkFlowProInst)
{
bool Flag = false;
string _ErrorString = "";
Running.Business.PERSONNELPROINST _PERSONNELPROINST = GetPropertyProinst(WorkFlowProInst);
DeleteCommonInfo(_PERSONNELPROINST);
switch (WorkFlowProInst.Operation_Type_BaseValue)
{
case 410020:
#region 请假审批
Flag = false;
_ProInst_410020 = new ProInst_410020(_PERSONNELPROINST);
Flag = _ProInst_410020.DeleteProcess(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
#endregion
break;
case 410030:
#region 工资发放汇总审批
Flag = false;
_ProInst_410030 = new ProInst_410030(_PERSONNELPROINST);
Flag = _ProInst_410030.DeleteProcess(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
#endregion
break;
case 410040:
#region 机关工资汇总审批
Flag = false;
_ProInst_410040 = new ProInst_410040(_PERSONNELPROINST);
Flag = _ProInst_410040.DeleteProcess(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
#endregion
break;
case 410050:
#region 招聘审批
Flag = false;
_ProInst_410050 = new ProInst_410050(_PERSONNELPROINST);
Flag = _ProInst_410050.DeleteProcess(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
#endregion
break;
case 410060:
#region 招聘审批
Flag = false;
_ProInst_410060 = new ProInst_410060(_PERSONNELPROINST);
Flag = _ProInst_410060.DeleteProcess(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
#endregion
break;
default:
throw new Exception("Plugins尚未配置");
}
return Flag;
}
///
public void DeleteCommonInfo(Running.Business.PERSONNELPROINST _PERSONNELPROINST)
{
//删除审批信息
foreach (Running.Business.APPROVED _APPROVED in _PERSONNELPROINST.ApprovedCollection)
{
_APPROVED.Delete();
}
//删除申请人信息
//foreach (Running.Business.Proposer _Proposer in _PropertyProinst.ProposerCollection)
// _Proposer.Delete();
}
///
public void PutInStorageCommonInfo(Running.Business.PERSONNELPROINST _PERSONNELPROINST)
{
Storage.Business.APPROVED StorageApproved = null;
foreach (Running.Business.APPROVED _Approved in _PERSONNELPROINST.ApprovedCollection)
{
StorageApproved = new Storage.Business.APPROVED(_PERSONNELPROINST.Transaction);
StorageApproved.APPROVED_ID = _Approved.APPROVED_ID;
if (StorageApproved.Select())
{
StorageApproved.Delete();
StorageApproved.ResetProperty();
}
StorageApproved.CopyFrom(_Approved);
StorageApproved.Insert();
}
}
///
/// 获取当前流程信息
///
///
///
public Running.Business.PERSONNELPROINST GetPropertyProinst(SuperMap.RealEstate.WorkFlow.Instance.Business.ProInst WorkFlowProInst)
{
Running.Business.PERSONNELPROINST _PropertyProinst = new Running.Business.PERSONNELPROINST(WorkFlowProInst.Transaction);
_PropertyProinst.AddSearchParameter("PROINST_ID", WorkFlowProInst.ProInst_ID);
if (_PropertyProinst.Search())
return _PropertyProinst;
else
{
throw new Exception("无法获取ProInst实例对象!");
}
}
#region 流转
///
public bool OverRuled(SuperMap.RealEstate.WorkFlow.Instance.Business.ProInst ProInst)
{
return true;
}
///
public bool OverRuling(SuperMap.RealEstate.WorkFlow.Instance.Business.ProInst ProInst)
{
return true;
}
///
public bool Transfered(SuperMap.RealEstate.WorkFlow.Instance.Business.ProInst ProInst)
{
return true;
}
///
public bool Transferring(SuperMap.RealEstate.WorkFlow.Instance.Business.ProInst ProInst)
{
return true;
}
///
public bool TurnOvered(SuperMap.RealEstate.WorkFlow.Instance.Business.ProInst ProInst)
{
return true;
}
///
public bool TurnOvering(SuperMap.RealEstate.WorkFlow.Instance.Business.ProInst ProInst)
{
return true;
}
#endregion
}
}