|
|
using System;
|
|
|
using System.Collections;
|
|
|
using System.Configuration;
|
|
|
using System.Data;
|
|
|
using System.Web;
|
|
|
using System.Web.Security;
|
|
|
using System.Web.UI;
|
|
|
using System.Web.UI.HtmlControls;
|
|
|
using System.Web.UI.WebControls;
|
|
|
using System.Web.UI.WebControls.WebParts;
|
|
|
using DSWeb.Models;
|
|
|
using DSWeb.EntityDA;
|
|
|
using System.Collections.Generic;
|
|
|
using DSWeb.WorkFlow;
|
|
|
|
|
|
namespace DSWeb.AuditProcess
|
|
|
{
|
|
|
public partial class AuditService : System.Web.UI.Page
|
|
|
{
|
|
|
private string strHandle;//执行操作类型 "audit"表示审核费用 "auditpass"表示审核通过 "reject"标识驳回提交
|
|
|
private string strFeeGid;//费用GID
|
|
|
private string strBSNO;//委托业务编号
|
|
|
private string strUserID;//用户GID
|
|
|
private int iType;//费用类型
|
|
|
private string strCompanyID;//公司GID
|
|
|
private string strShowName;//用户显示名
|
|
|
private string strDeptName;//部门名称
|
|
|
private string stroplb; //业务类别:海运出口、海运出口
|
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
|
{
|
|
|
if (Session["USERID"] != null)
|
|
|
{
|
|
|
strUserID = Session["USERID"].ToString();
|
|
|
}
|
|
|
if (Session["SHOWNAME"] != null)
|
|
|
{
|
|
|
strShowName = Session["SHOWNAME"].ToString();
|
|
|
}
|
|
|
if (Session["COMPANYID"] != null)
|
|
|
{
|
|
|
strCompanyID = Session["COMPANYID"].ToString();
|
|
|
}
|
|
|
if (Session["DEPTNAME"] != null)
|
|
|
{
|
|
|
strDeptName = Session["DEPTNAME"].ToString();
|
|
|
}
|
|
|
if (Request.QueryString["handle"] != null)
|
|
|
{
|
|
|
strHandle = Request.QueryString["handle"].ToString().Trim();
|
|
|
}
|
|
|
if (Request.QueryString["oplb"] != null)
|
|
|
{
|
|
|
stroplb = Request.QueryString["oplb"].ToString();
|
|
|
}
|
|
|
if (Request.QueryString["bsno"] != null)
|
|
|
{
|
|
|
strBSNO = Request.QueryString["bsno"].ToString().Trim();
|
|
|
}
|
|
|
|
|
|
if (Request.QueryString["id"] != null)
|
|
|
{
|
|
|
strFeeGid = Request.QueryString["id"].ToString().Trim();
|
|
|
}
|
|
|
|
|
|
if (Request.QueryString["type"] != null)
|
|
|
{
|
|
|
iType = int.Parse(Request.QueryString["type"].ToString().Trim());
|
|
|
}
|
|
|
|
|
|
if (strHandle == "audit" || strHandle == "Seaiaudit" || strHandle == "auditpass" || strHandle == "reject")
|
|
|
{
|
|
|
Response.Write(ExcuteHandle(strHandle, strFeeGid));
|
|
|
}
|
|
|
|
|
|
|
|
|
if (strHandle == "modifypass")
|
|
|
{
|
|
|
Response.Write(ApplyModifyFee(strFeeGid,iType));
|
|
|
}
|
|
|
if(strHandle == "modifyreject")
|
|
|
{
|
|
|
Response.Write(ApplyRejectFee(strFeeGid));
|
|
|
}
|
|
|
|
|
|
if (strHandle == "deletepass")
|
|
|
{
|
|
|
Response.Write(ApplyDeleteFee(strFeeGid));
|
|
|
}
|
|
|
|
|
|
if (strHandle == "deletereject")
|
|
|
{
|
|
|
Response.Write(ApplyDeleteRejectFee(strFeeGid));
|
|
|
}
|
|
|
|
|
|
if (strHandle == "amend")
|
|
|
{
|
|
|
Response.Write(ExcuteModifyByCopy(strBSNO));
|
|
|
}
|
|
|
if (strHandle == "history")
|
|
|
{
|
|
|
Response.Write(ExistFeeModifyHistory(strFeeGid));
|
|
|
}
|
|
|
if (strHandle == "existmodify" || strHandle == "Seaiexistmodify")
|
|
|
{
|
|
|
//查看是否有费用申请历史记录ch_fee_modify(费用申请修改表)
|
|
|
Response.Write(IsExistFeeModify(strFeeGid));
|
|
|
}
|
|
|
if (strHandle == "batchpass" && strBSNO != null)
|
|
|
{
|
|
|
Response.Write(BatchAuditPass(strBSNO, strUserID));
|
|
|
}
|
|
|
if (strHandle == "lockfee" && strBSNO != null)
|
|
|
{
|
|
|
Response.Write(BatchLockFee(strBSNO));
|
|
|
}
|
|
|
if (strHandle == "unlockfee" && strBSNO != null)
|
|
|
{
|
|
|
Response.Write(BatchUnLockFee(strBSNO));
|
|
|
}
|
|
|
if (strHandle == "getstatus" && strFeeGid != null)
|
|
|
{
|
|
|
Response.Write(GetFeeStatus(strFeeGid));
|
|
|
}
|
|
|
if (strHandle == "LockFeeisinvoice" && strBSNO != null)
|
|
|
{//禁开发票
|
|
|
Response.Write(BatchLockFeeisinvoice(strBSNO));
|
|
|
}
|
|
|
if (strHandle == "unlockfeeisinvoice" && strBSNO != null)
|
|
|
{//解禁发票
|
|
|
Response.Write(BatchUnLockFeeisinvoice(strBSNO));
|
|
|
}
|
|
|
}
|
|
|
|
|
|
#region 获取费用状态值
|
|
|
/// <summary>
|
|
|
/// 获取费用状态值
|
|
|
/// </summary>
|
|
|
/// <param name="tempFeeID">费用GID</param>
|
|
|
/// <returns>返回费用状态值</returns>
|
|
|
private int GetFeeStatus(string tempFeeID)
|
|
|
{
|
|
|
int iResult = 0;
|
|
|
|
|
|
FeeEntity feeEntity = new FeeEntity();
|
|
|
|
|
|
FeeDA feeDA = new FeeDA();
|
|
|
|
|
|
feeEntity = feeDA.GetFeeByID(tempFeeID);
|
|
|
|
|
|
if (feeEntity != null)
|
|
|
{
|
|
|
if (feeEntity.GID != null)
|
|
|
{
|
|
|
iResult = feeEntity.FeeStatus;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
iResult = -1;
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
iResult = -1;
|
|
|
}
|
|
|
|
|
|
return iResult;
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 批量审核通过
|
|
|
/// <summary>
|
|
|
/// 批量审核通过
|
|
|
/// </summary>
|
|
|
/// <param name="tempBSNO">委托业务编号</param>
|
|
|
/// <param name="tempUserID">用户GID</param>
|
|
|
/// <returns>值等于1表示批量审核通过成功 值不等1表示批量审核失败</returns>
|
|
|
private int BatchAuditPass(string tempBSNO,string tempUserID)
|
|
|
{
|
|
|
int iResult = 0;
|
|
|
FeeDA feeDA = new FeeDA();
|
|
|
IList<FeeEntity> feeEntities = new List<FeeEntity>();
|
|
|
|
|
|
//工作流
|
|
|
WorkFlowHelper workFlowHelper = new WorkFlowHelper();
|
|
|
//查找付费工作流信息
|
|
|
//WorkFlowEntity workFlowEntity = workFlowHelper.FindWorkFlow(WorkFlowType.FEEAUDIT, strCompanyID);
|
|
|
WorkFlowEntity workFlowEntity = new WorkFlowEntity();
|
|
|
if (stroplb == "op_Seae")
|
|
|
{
|
|
|
workFlowEntity = workFlowHelper.FindWorkFlow(WorkFlowType.FEEAUDIT, strCompanyID);
|
|
|
}
|
|
|
else if (stroplb == "op_Seai")
|
|
|
{
|
|
|
workFlowEntity = workFlowHelper.FindWorkFlow(WorkFlowType.SeaiFEEAUDIT, strCompanyID);
|
|
|
}
|
|
|
|
|
|
WorkFlowDoDA workFlowDoDA = new WorkFlowDoDA();
|
|
|
IList<WorkFlowDoEntity> messageWorkFlowDoEntities = new List<WorkFlowDoEntity>();
|
|
|
//消息提醒
|
|
|
MessageDA messageDA = new MessageDA();
|
|
|
IList<MessageEntity> messageEntities = new List<MessageEntity>();
|
|
|
|
|
|
feeEntities = feeDA.GetAuditFeeByBSNO(tempBSNO, tempUserID);
|
|
|
|
|
|
foreach (FeeEntity feeEntity in feeEntities)
|
|
|
{
|
|
|
if (feeEntity.FeeStatus == 2)
|
|
|
{
|
|
|
if (feeEntity.FeeStatus == 2)
|
|
|
{
|
|
|
//iResult = feeDA.UpdateFeeStatus(0, strGid);
|
|
|
|
|
|
//如果工作流信息存在
|
|
|
if (workFlowEntity != null)
|
|
|
{
|
|
|
IList<WorkFlowDoEntity> workFlowDoEntities = new List<WorkFlowDoEntity>();
|
|
|
|
|
|
//先查看是否当前付费申请已经进入工作流
|
|
|
workFlowDoEntities = workFlowDoDA.GetAllWorkFlowDoByBillNO(workFlowEntity.GID, feeEntity.GID);
|
|
|
|
|
|
if (workFlowDoEntities.Count > 0)
|
|
|
{
|
|
|
int iCount = 0;
|
|
|
//如果付费申请已经进入工作流,先判断当前打开付费审核页面操作人是否是工作流内相关审核人,如果是则
|
|
|
foreach (WorkFlowDoEntity workFlowDoEntity in workFlowDoEntities)
|
|
|
{
|
|
|
//查看当前操作人是否为审核人
|
|
|
if (workFlowDoEntity.Auditor == strUserID)
|
|
|
{
|
|
|
iCount++;
|
|
|
//查看当前审核人所处的步骤是否已经完成
|
|
|
if (!workFlowDoEntity.IsFinish)
|
|
|
{
|
|
|
//iResult等于1表示工作执行操作成功
|
|
|
iResult = workFlowHelper.DoWorkFlowStep(workFlowDoEntity);
|
|
|
|
|
|
if (iResult == 1)
|
|
|
{
|
|
|
//遍历工作流步骤信息,如果是工作流步骤最后一步,表示审核通过则置ch_fee审核通过
|
|
|
foreach (WorkFlowStepEntity workFlowStepEntity in workFlowEntity.WorkFlowSteps)
|
|
|
{
|
|
|
if (workFlowStepEntity.StepNO == workFlowDoEntity.StepNO)
|
|
|
{
|
|
|
if (workFlowStepEntity.IsLast)
|
|
|
{
|
|
|
int iTempStatus = feeDA.UpdateFeeStatus(0, feeEntity.GID);
|
|
|
|
|
|
if (iTempStatus != 1)
|
|
|
{
|
|
|
iResult = -5;//更新费用状态失败
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
|
else if (workFlowDoEntity.IsFinish)
|
|
|
{
|
|
|
iResult = -4;//付费审核步骤已经完成,不能重复审核
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (iCount == 0)
|
|
|
{
|
|
|
iResult = -3;//没有权利审核付费
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
iResult = -1;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
int iApplicantState = 0;
|
|
|
if (feeEntities.Count > 0 && iResult == 1)
|
|
|
{
|
|
|
messageWorkFlowDoEntities = workFlowDoDA.GetWorkFlowDoAuditPassForMessage(workFlowEntity.GID, feeEntities[0].GID);
|
|
|
|
|
|
if (messageWorkFlowDoEntities.Count > 0)
|
|
|
{
|
|
|
foreach (WorkFlowDoEntity workFlowDo in messageWorkFlowDoEntities)
|
|
|
{
|
|
|
foreach (WorkFlowStepEntity workFlowStepEntity in workFlowEntity.WorkFlowSteps)
|
|
|
{
|
|
|
if (workFlowStepEntity.StepNO == workFlowDo.StepNO)
|
|
|
{
|
|
|
if (workFlowStepEntity.IsLast)
|
|
|
{
|
|
|
if (!workFlowDo.IsFinish)
|
|
|
{
|
|
|
MessageEntity messageEntity = new MessageEntity();
|
|
|
messageEntity.GID = Guid.NewGuid().ToString();
|
|
|
messageEntity.Name = "FeeAudit";
|
|
|
//messageEntity.Description = "应收应付待审核通知";
|
|
|
messageEntity.IsRead = false;
|
|
|
messageEntity.ReadCount = 0;
|
|
|
//messageEntity.MessageContent = strShowName + " 已批准 [应收应付费用审核] 审核,当前等待您的审核 ";
|
|
|
messageEntity.TaskID = "";
|
|
|
messageEntity.Receiver = workFlowDo.Auditor;
|
|
|
messageEntity.TaskUrl = "auditprocess/feeaudit.aspx";
|
|
|
messageEntity.Type = messageDA.GetMessageType(MessageType.FEEAUDIT);
|
|
|
messageEntity.RecvType = 2;//申请审核类型
|
|
|
if (stroplb == "op_Seai")
|
|
|
{
|
|
|
messageEntity.Description = "海运进口应收应付待审核通知";
|
|
|
messageEntity.MessageContent = strShowName + " 已批准 [海运进口应收应付费用审核] 审核,当前等待您的审核 ";
|
|
|
}
|
|
|
else if (stroplb == "op_Seae")
|
|
|
{
|
|
|
messageEntity.Description = "海运出口应收应付待审核通知";
|
|
|
messageEntity.MessageContent = strShowName + " 已批准 [海运出口应收应付费用审核] 审核,当前等待您的审核 ";
|
|
|
}
|
|
|
messageEntities.Add(messageEntity);
|
|
|
|
|
|
if (iApplicantState == 0)
|
|
|
{
|
|
|
MessageEntity applicantMessageEntity = new MessageEntity();
|
|
|
applicantMessageEntity.GID = Guid.NewGuid().ToString();
|
|
|
applicantMessageEntity.Name = "FeeAudit";
|
|
|
//applicantMessageEntity.Description = "应收应付待审核通知";
|
|
|
applicantMessageEntity.IsRead = false;
|
|
|
applicantMessageEntity.ReadCount = 0;
|
|
|
//applicantMessageEntity.MessageContent = strShowName + " 已经批准通过 [应收应付费用审核] 申请,现等待下一步审核 ";
|
|
|
applicantMessageEntity.TaskID = "";
|
|
|
applicantMessageEntity.Receiver = workFlowDo.Applicant;
|
|
|
applicantMessageEntity.TaskUrl = "shipping/orderlist.aspx?oplb=" + stroplb;
|
|
|
applicantMessageEntity.Type = messageDA.GetMessageType(MessageType.FEEAUDIT);
|
|
|
applicantMessageEntity.RecvType = 3;//审核完成类型
|
|
|
if (stroplb == "op_Seai")
|
|
|
{
|
|
|
applicantMessageEntity.Description = "海运进口应收应付待审核通知";
|
|
|
applicantMessageEntity.MessageContent = strShowName + " 已经批准通过 [海运进口应收应付费用审核] 申请,现等待下一步审核 ";
|
|
|
}
|
|
|
else if (stroplb == "op_Seae")
|
|
|
{
|
|
|
applicantMessageEntity.Description = "海运出口应收应付待审核通知";
|
|
|
applicantMessageEntity.MessageContent = strShowName + " 已经批准通过 [海运出口应收应付费用审核] 申请,现等待下一步审核 ";
|
|
|
}
|
|
|
messageEntities.Add(applicantMessageEntity);
|
|
|
iApplicantState++;
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
if (iApplicantState == 0)
|
|
|
{
|
|
|
MessageEntity applicantMessageEntity = new MessageEntity();
|
|
|
applicantMessageEntity.GID = Guid.NewGuid().ToString();
|
|
|
applicantMessageEntity.Name = "FeeAudit";
|
|
|
//applicantMessageEntity.Description = "应收应付待审核通知";
|
|
|
applicantMessageEntity.IsRead = false;
|
|
|
applicantMessageEntity.ReadCount = 0;
|
|
|
//applicantMessageEntity.MessageContent = strShowName + " 已经批准通过 [应收应付费用审核] 申请,全部审核已完成 ";
|
|
|
applicantMessageEntity.TaskID = "";
|
|
|
applicantMessageEntity.Receiver = workFlowDo.Applicant;
|
|
|
applicantMessageEntity.TaskUrl = "shipping/orderlist.aspx?oplb=" + stroplb;
|
|
|
applicantMessageEntity.Type = messageDA.GetMessageType(MessageType.FEEAUDIT);
|
|
|
applicantMessageEntity.RecvType = 3;//审核完成类型
|
|
|
if (stroplb == "op_Seai")
|
|
|
{
|
|
|
applicantMessageEntity.Description = "海运进口应收应付待审核通知";
|
|
|
applicantMessageEntity.MessageContent = strShowName + " 已经批准通过 [海运进口应收应付费用审核] 申请,全部审核已完成 ";
|
|
|
}
|
|
|
else if (stroplb == "op_Seae")
|
|
|
{
|
|
|
applicantMessageEntity.Description = "海运出口应收应付待审核通知";
|
|
|
applicantMessageEntity.MessageContent = strShowName + " 已经批准通过 [海运出口应收应付费用审核] 申请,全部审核已完成 ";
|
|
|
}
|
|
|
messageEntities.Add(applicantMessageEntity);
|
|
|
iApplicantState++;
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (messageEntities.Count > 0)
|
|
|
{
|
|
|
messageDA.CreateMessage(MessageType.FEEAUDIT, messageEntities);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return iResult;
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 批量加锁操作
|
|
|
/// <summary>
|
|
|
/// 批量加锁操作
|
|
|
/// </summary>
|
|
|
/// <param name="tempBSNO">委托业务编号</param>
|
|
|
/// <returns>值等于1表示加锁成功 值不等于1表示加锁失败</returns>
|
|
|
private int BatchLockFee(string tempBSNO)
|
|
|
{
|
|
|
int iResult = 0;
|
|
|
|
|
|
FeeDA feeDA = new FeeDA();
|
|
|
IList<FeeEntity> feeEntities = new List<FeeEntity>();
|
|
|
|
|
|
feeEntities = feeDA.GetFeeByBSNO(tempBSNO);
|
|
|
|
|
|
int iCount = 0;
|
|
|
for(int i=0;i<feeEntities.Count;i++)
|
|
|
{
|
|
|
if (feeEntities[i].FeeStatus == 0 || feeEntities[i].FeeStatus == 8 || feeEntities[i].FeeStatus == 9)
|
|
|
{
|
|
|
iCount++;
|
|
|
}
|
|
|
}
|
|
|
if (iCount == feeEntities.Count)
|
|
|
{
|
|
|
if (stroplb == "op_Seae")
|
|
|
{
|
|
|
SeaExportInfoDA seaExportInfoDA = new SeaExportInfoDA();
|
|
|
iResult = seaExportInfoDA.LockFeeStatus(tempBSNO);
|
|
|
|
|
|
if (iResult == 1)
|
|
|
{
|
|
|
TopSeaeEntity topSeaeEntity = seaExportInfoDA.GetID(tempBSNO);
|
|
|
if (topSeaeEntity != null)
|
|
|
{
|
|
|
if (topSeaeEntity.BSNO != null)
|
|
|
{
|
|
|
if (topSeaeEntity.FEESTATUS)
|
|
|
{
|
|
|
iResult = 2;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
iResult = 3;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
else if (stroplb == "op_Seai")
|
|
|
{
|
|
|
SeaImportInfoDA seaImportInfoDA = new SeaImportInfoDA();
|
|
|
iResult = seaImportInfoDA.LockFeeStatus(tempBSNO);
|
|
|
|
|
|
if (iResult == 1)
|
|
|
{
|
|
|
TopSeaiEntity topSeaiEntity = seaImportInfoDA.GetID(tempBSNO);
|
|
|
if (topSeaiEntity != null)
|
|
|
{
|
|
|
if (topSeaiEntity.BSNO != null)
|
|
|
{
|
|
|
if (topSeaiEntity.FEESTATUS)
|
|
|
{
|
|
|
iResult = 2;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
iResult = 3;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
iResult = -2;//有未完成审核的费用,不能进行加锁操作
|
|
|
}
|
|
|
return iResult;
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 批量解锁操作
|
|
|
/// <summary>
|
|
|
/// 批量解锁操作
|
|
|
/// </summary>
|
|
|
/// <param name="tempBSNO">委托业务编号</param>
|
|
|
/// <returns>值等于1表示解锁成功 值不等于1表示解锁失败</returns>
|
|
|
private int BatchUnLockFee(string tempBSNO)
|
|
|
{
|
|
|
int iResult = 0;
|
|
|
if (stroplb == "op_Seae")
|
|
|
{
|
|
|
TopSeaeEntity topSeaeEntity = new TopSeaeEntity();
|
|
|
SeaExportInfoDA seaExportInfoDA = new SeaExportInfoDA();
|
|
|
topSeaeEntity = seaExportInfoDA.GetID(tempBSNO);
|
|
|
|
|
|
if (topSeaeEntity != null)
|
|
|
{
|
|
|
if (topSeaeEntity.BSNO != null)
|
|
|
{
|
|
|
if (topSeaeEntity.FEESTATUS)
|
|
|
{
|
|
|
iResult = seaExportInfoDA.UnLockFeeStatus(tempBSNO);
|
|
|
|
|
|
if (iResult == 1)
|
|
|
{
|
|
|
topSeaeEntity = seaExportInfoDA.GetID(tempBSNO);
|
|
|
|
|
|
if (topSeaeEntity != null)
|
|
|
{
|
|
|
if (topSeaeEntity.BSNO != null)
|
|
|
{
|
|
|
if (topSeaeEntity.FEESTATUS)
|
|
|
{
|
|
|
iResult = 2;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
iResult = 3;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
iResult = -3;//委托业务费用没有加锁,不能执行解锁操作
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
iResult = -3;//委托业务费用没有加锁,不能执行解锁操作
|
|
|
}
|
|
|
}
|
|
|
else if (stroplb == "op_Seai")
|
|
|
{
|
|
|
TopSeaiEntity topSeaiEntity = new TopSeaiEntity();
|
|
|
SeaImportInfoDA seaImportInfoDA = new SeaImportInfoDA();
|
|
|
topSeaiEntity = seaImportInfoDA.GetID(tempBSNO);
|
|
|
|
|
|
if (topSeaiEntity != null)
|
|
|
{
|
|
|
if (topSeaiEntity.BSNO != null)
|
|
|
{
|
|
|
if (topSeaiEntity.FEESTATUS)
|
|
|
{
|
|
|
iResult = seaImportInfoDA.UnLockFeeStatus(tempBSNO);
|
|
|
|
|
|
if (iResult == 1)
|
|
|
{
|
|
|
topSeaiEntity = seaImportInfoDA.GetID(tempBSNO);
|
|
|
|
|
|
if (topSeaiEntity != null)
|
|
|
{
|
|
|
if (topSeaiEntity.BSNO != null)
|
|
|
{
|
|
|
if (topSeaiEntity.FEESTATUS)
|
|
|
{
|
|
|
iResult = 2;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
iResult = 3;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
iResult = -3;//委托业务费用没有加锁,不能执行解锁操作
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
iResult = -3;//委托业务费用没有加锁,不能执行解锁操作
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return iResult;
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 禁开发票
|
|
|
/// <summary>
|
|
|
/// 禁开发票
|
|
|
/// </summary>
|
|
|
/// <param name="tempBSNO">委托业务编号</param>
|
|
|
/// <returns>值等于1表示加锁成功 值不等于1表示加锁失败</returns>
|
|
|
private int BatchLockFeeisinvoice(string tempGid)
|
|
|
{
|
|
|
int iResult = 0;
|
|
|
|
|
|
FeeDA feeDA = new FeeDA();
|
|
|
iResult = feeDA.LockFeeISINVOICE(tempGid);
|
|
|
return iResult;
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 解禁发票
|
|
|
/// <summary>
|
|
|
/// 解禁发票
|
|
|
/// </summary>
|
|
|
/// <param name="tempBSNO">委托业务编号</param>
|
|
|
/// <returns>值等于1表示解锁成功 值不等于1表示解锁失败</returns>
|
|
|
private int BatchUnLockFeeisinvoice(string tempGid)
|
|
|
{
|
|
|
int iResult = 0;
|
|
|
|
|
|
FeeDA feeDA = new FeeDA();
|
|
|
iResult = feeDA.UnLockFeeISINVOICE(tempGid);
|
|
|
return iResult;
|
|
|
}
|
|
|
#endregion
|
|
|
#region 查看是否有费用申请历史记录ch_fee_modify(费用申请修改表)
|
|
|
/// <summary>
|
|
|
/// 查看是否有费用申请历史记录ch_fee_modify(费用申请修改表)
|
|
|
/// </summary>
|
|
|
/// <param name="tempFeeID">费用GID</param>
|
|
|
/// <returns>值1表示存在 值不等于1表示不存在</returns>
|
|
|
private int IsExistFeeModify(string tempFeeID)
|
|
|
{
|
|
|
int iResult = 0;
|
|
|
|
|
|
FeeModifyDA feeModifyDA = new FeeModifyDA();
|
|
|
IList<FeeModifyEntity> feeModifyEntities = new List<FeeModifyEntity>();
|
|
|
//获取费用申请更改历史记录ch_fee_modify(费用申请修改表)
|
|
|
feeModifyEntities = feeModifyDA.GetFeeModifyHistory(tempFeeID);
|
|
|
|
|
|
if (feeModifyEntities.Count > 0)
|
|
|
{
|
|
|
iResult = 1;
|
|
|
}
|
|
|
return iResult;
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
private int ExistFeeModifyHistory(string strFeeGID)
|
|
|
{
|
|
|
int iResult = 0;
|
|
|
FeeModifyDA feeModifyDA = new FeeModifyDA();
|
|
|
IList<FeeModifyEntity> feeModifyEntity = new List<FeeModifyEntity>();
|
|
|
|
|
|
feeModifyEntity = feeModifyDA.GetExistFeeModify(strFeeGID);
|
|
|
if (feeModifyEntity.Count > 0)
|
|
|
{
|
|
|
iResult = 1;
|
|
|
}
|
|
|
return iResult;
|
|
|
}
|
|
|
/// <summary>
|
|
|
/// 通过申请费用更改
|
|
|
/// </summary>
|
|
|
/// <param name="tempFeeID"></param>
|
|
|
/// <returns></returns>
|
|
|
private int ApplyModifyFee(string tempFeeID,int tempType)
|
|
|
{
|
|
|
int iResult = 0;
|
|
|
FeeModifyDA feeModifyDA = new FeeModifyDA();
|
|
|
|
|
|
iResult = feeModifyDA.ApplyModifyPass(tempFeeID,strUserID);
|
|
|
|
|
|
return iResult;
|
|
|
}
|
|
|
|
|
|
private int ApplyRejectFee(string tempFeeID)
|
|
|
{
|
|
|
int iResult = 0;
|
|
|
|
|
|
FeeModifyDA feeModifyDA = new FeeModifyDA();
|
|
|
|
|
|
iResult = feeModifyDA.ApplyModifyReject(tempFeeID,strUserID);
|
|
|
return iResult;
|
|
|
}
|
|
|
private int ApplyDeleteFee(string tempFeeID)
|
|
|
{
|
|
|
int iResult = 0;
|
|
|
|
|
|
FeeModifyDA feeModifyDA = new FeeModifyDA();
|
|
|
|
|
|
iResult = feeModifyDA.ApplyDeletePass(tempFeeID,strUserID);
|
|
|
return iResult;
|
|
|
}
|
|
|
|
|
|
private int ApplyDeleteRejectFee(string tempFeeID)
|
|
|
{
|
|
|
int iResult = 0;
|
|
|
|
|
|
FeeModifyDA feeModifyDA = new FeeModifyDA();
|
|
|
|
|
|
iResult = feeModifyDA.ApplyDeleteReject(tempFeeID,strUserID);
|
|
|
return iResult;
|
|
|
}
|
|
|
/// <summary>
|
|
|
/// 根据handle类型执行更新操作:更新费用信息ch_fee.feestatus和工作流运行表WorkFlowDo信息
|
|
|
/// 费用状态值 费用状态主要有11个状态,分别为审核通过(STATUS=0)录入状态(STATUS=1)提交审核(STATUS=2)申请修改 (STATUS=3)
|
|
|
/// 取消申请(STATUS=5)驳回提交(STATUS=6)驳回申请(STATUS=7)部分结算(STATUS=8)结算完毕(STATUS=9)
|
|
|
/// </summary>
|
|
|
/// <param name="tempHandle"></param>
|
|
|
/// <param name="strGid"></param>
|
|
|
/// <returns></returns>
|
|
|
private int ExcuteHandle(string tempHandle,string strGid)
|
|
|
{
|
|
|
int iResult = 0;
|
|
|
int iWorkFlowStatus = 0;
|
|
|
|
|
|
FeeDA feeDA = new FeeDA();
|
|
|
FeeEntity feeEntity = new FeeEntity();
|
|
|
//通过费用GID获取ch_fee费用信息
|
|
|
feeEntity = feeDA.GetFeeByID(strGid);
|
|
|
|
|
|
#region audit
|
|
|
if (tempHandle.ToLower().Equals("audit"))
|
|
|
{ //ch_fee费用信息的费用状态为1录入状态或6驳回提交
|
|
|
if (feeEntity.FeeStatus == 1 || feeEntity.FeeStatus == 6)
|
|
|
{ //根据Gid更新ch_fee.feestatus费用状态信息:为"提交审核"
|
|
|
iResult = feeDA.UpdateFeeStatus(2, strGid);
|
|
|
|
|
|
if (iResult == 1)
|
|
|
{
|
|
|
WorkFlowHelper workFlowHelper = new WorkFlowHelper();
|
|
|
//通过模块NAME获取工作流信息
|
|
|
//WorkFlowEntity workFlowEntity = workFlowHelper.FindWorkFlow(WorkFlowType.FEEAUDIT,strCompanyID);
|
|
|
WorkFlowEntity workFlowEntity = new WorkFlowEntity();
|
|
|
if (stroplb == "op_Seae")
|
|
|
{
|
|
|
workFlowEntity = workFlowHelper.FindWorkFlow(WorkFlowType.FEEAUDIT, strCompanyID);
|
|
|
}
|
|
|
else if (stroplb == "op_Seai")
|
|
|
{
|
|
|
workFlowEntity = workFlowHelper.FindWorkFlow(WorkFlowType.SeaiFEEAUDIT, strCompanyID);
|
|
|
}
|
|
|
if (workFlowEntity != null)
|
|
|
{
|
|
|
WorkFlowDoEntity workFlowDoEntity = null;
|
|
|
WorkFlowDoDA workFlowDoDA = new WorkFlowDoDA();
|
|
|
|
|
|
//查看当前提交的应收应付费用审核已经进入工作流,通过工作流GID和申请编号BILLNO获取工作流运行表WorkFlowDo信息
|
|
|
workFlowDoEntity = workFlowDoDA.GetSigleWorkFlowDoByBillNO(workFlowEntity.GID, strGid);
|
|
|
|
|
|
if (workFlowDoEntity == null)
|
|
|
{
|
|
|
IList<WorkFlowDoEntity> workFlowDoEntities = new List<WorkFlowDoEntity>();
|
|
|
if (workFlowDoEntity.GID == null)
|
|
|
{
|
|
|
|
|
|
foreach (WorkFlowStepEntity step in workFlowEntity.WorkFlowSteps)
|
|
|
{
|
|
|
//遍历所有工作流下步骤,获取第一步骤GID信息
|
|
|
if (step.StepNO == 1)
|
|
|
{
|
|
|
if (step.IsDepartment)
|
|
|
{
|
|
|
string strDepartmentID = step.DepartmentID == null?"":step.DepartmentID;
|
|
|
|
|
|
if (strDepartmentID.Trim() != null)
|
|
|
{
|
|
|
SysDeptDA sysDeptDA = new SysDeptDA();
|
|
|
|
|
|
string strDeptID = sysDeptDA.GetDepartmentIdByUser(strUserID);
|
|
|
|
|
|
if (strDeptID.Trim().Equals(strDepartmentID) && strDepartmentID != "")
|
|
|
{
|
|
|
WorkFlowDoEntity initWorkFlowDoEntity = new WorkFlowDoEntity();
|
|
|
|
|
|
initWorkFlowDoEntity.GID = Guid.NewGuid().ToString();
|
|
|
initWorkFlowDoEntity.WorkFlowID = workFlowEntity.GID;
|
|
|
initWorkFlowDoEntity.StepID = step.GID;
|
|
|
initWorkFlowDoEntity.StepNO = step.StepNO;
|
|
|
initWorkFlowDoEntity.Auditor = step.Auditor == null ? step.DefaultAuditor : step.Auditor;
|
|
|
initWorkFlowDoEntity.FeeID = "";
|
|
|
initWorkFlowDoEntity.BSNO = "";
|
|
|
initWorkFlowDoEntity.FeeStatus = 0;
|
|
|
initWorkFlowDoEntity.DoQuerySql = "";
|
|
|
initWorkFlowDoEntity.BillNO = strGid;
|
|
|
initWorkFlowDoEntity.IsFinish = false;
|
|
|
initWorkFlowDoEntity.Applicant = strUserID;
|
|
|
|
|
|
workFlowDoEntities.Add(initWorkFlowDoEntity);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
WorkFlowDoEntity initWorkFlowDoEntity = new WorkFlowDoEntity();
|
|
|
|
|
|
initWorkFlowDoEntity.GID = Guid.NewGuid().ToString();
|
|
|
initWorkFlowDoEntity.WorkFlowID = workFlowEntity.GID;
|
|
|
initWorkFlowDoEntity.StepID = step.GID;
|
|
|
initWorkFlowDoEntity.StepNO = step.StepNO;
|
|
|
initWorkFlowDoEntity.Auditor = step.Auditor == null ? step.DefaultAuditor : step.Auditor;
|
|
|
initWorkFlowDoEntity.FeeID = "";
|
|
|
initWorkFlowDoEntity.BSNO = "";
|
|
|
initWorkFlowDoEntity.FeeStatus = 0;
|
|
|
initWorkFlowDoEntity.DoQuerySql = "";
|
|
|
initWorkFlowDoEntity.BillNO = strGid;
|
|
|
initWorkFlowDoEntity.IsFinish = false;
|
|
|
initWorkFlowDoEntity.Applicant = strUserID;
|
|
|
|
|
|
workFlowDoEntities.Add(initWorkFlowDoEntity);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
//插入WorkFlowDo信息
|
|
|
iWorkFlowStatus = workFlowDoDA.InsertWorkFlowDo(workFlowDoEntities);
|
|
|
|
|
|
if (iWorkFlowStatus == 1)
|
|
|
{
|
|
|
int iTempStatus = feeDA.UpdateFeeAuditStatus(strGid, 1);
|
|
|
|
|
|
if (iTempStatus != 1)
|
|
|
{
|
|
|
iResult = -5;//更新费用状态失败
|
|
|
}
|
|
|
#region
|
|
|
//else
|
|
|
//{
|
|
|
// //状态完成后发送通知消息
|
|
|
// IList<MessageEntity> messageEntities = new List<MessageEntity>();
|
|
|
// MessageDA messageDA = new MessageDA();
|
|
|
|
|
|
// foreach (WorkFlowDoEntity workFlowDo in workFlowDoEntities)
|
|
|
// {
|
|
|
// MessageEntity messageEntity = new MessageEntity();
|
|
|
// messageEntity.GID = Guid.NewGuid().ToString();
|
|
|
// messageEntity.Name = "FeeAudit";
|
|
|
// messageEntity.Description = "应收应付审核通知";
|
|
|
// messageEntity.IsRead = false;
|
|
|
// messageEntity.ReadCount = 0;
|
|
|
// messageEntity.MessageContent = strShowName + " 提交 " + (feeEntity.FeeType == 1 ? "应收费用" : "应付费用") + "[" + feeEntity.FeeName + "]费用 应收应付审核 ";
|
|
|
// messageEntity.TaskID = workFlowDo.BillNO;
|
|
|
// messageEntity.Receiver = workFlowDo.Auditor;
|
|
|
// messageEntity.TaskUrl = messageEntity.TaskUrl = "auditprocess/feeaudit.aspx";
|
|
|
// messageEntity.Type = messageDA.GetMessageType(MessageType.FEEAUDIT);
|
|
|
|
|
|
// messageEntities.Add(messageEntity);
|
|
|
|
|
|
// }
|
|
|
|
|
|
// if (messageEntities.Count > 0)
|
|
|
// {
|
|
|
// messageDA.CreateMessage(MessageType.FEEAUDIT, messageEntities);
|
|
|
// }
|
|
|
//}
|
|
|
#endregion
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
IList<WorkFlowDoEntity> workFlowDoEntities = new List<WorkFlowDoEntity>();
|
|
|
if (workFlowDoEntity.GID == null)
|
|
|
{
|
|
|
|
|
|
foreach (WorkFlowStepEntity step in workFlowEntity.WorkFlowSteps)
|
|
|
{
|
|
|
//遍历所有工作流下步骤,获取第一步骤GID信息
|
|
|
if (step.StepNO == 1)
|
|
|
{
|
|
|
if (step.IsDepartment)
|
|
|
{
|
|
|
string strDepartmentID = step.DepartmentID == null ? "" : step.DepartmentID;
|
|
|
|
|
|
if (strDepartmentID.Trim() != null)
|
|
|
{
|
|
|
SysDeptDA sysDeptDA = new SysDeptDA();
|
|
|
|
|
|
string strDeptID = sysDeptDA.GetDepartmentIdByUser(strUserID);
|
|
|
|
|
|
if (strDeptID.Trim().Equals(strDepartmentID) && strDepartmentID != "")
|
|
|
{
|
|
|
WorkFlowDoEntity initWorkFlowDoEntity = new WorkFlowDoEntity();
|
|
|
|
|
|
initWorkFlowDoEntity.GID = Guid.NewGuid().ToString();
|
|
|
initWorkFlowDoEntity.WorkFlowID = workFlowEntity.GID;
|
|
|
initWorkFlowDoEntity.StepID = step.GID;
|
|
|
initWorkFlowDoEntity.StepNO = step.StepNO;
|
|
|
initWorkFlowDoEntity.Auditor = step.Auditor == null ? step.DefaultAuditor : step.Auditor;
|
|
|
initWorkFlowDoEntity.FeeID = "";
|
|
|
initWorkFlowDoEntity.BSNO = "";
|
|
|
initWorkFlowDoEntity.FeeStatus = 0;
|
|
|
initWorkFlowDoEntity.DoQuerySql = "";
|
|
|
initWorkFlowDoEntity.BillNO = strGid;
|
|
|
initWorkFlowDoEntity.IsFinish = false;
|
|
|
initWorkFlowDoEntity.Applicant = strUserID;
|
|
|
|
|
|
workFlowDoEntities.Add(initWorkFlowDoEntity);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
WorkFlowDoEntity initWorkFlowDoEntity = new WorkFlowDoEntity();
|
|
|
|
|
|
initWorkFlowDoEntity.GID = Guid.NewGuid().ToString();
|
|
|
initWorkFlowDoEntity.WorkFlowID = workFlowEntity.GID;
|
|
|
initWorkFlowDoEntity.StepID = step.GID;
|
|
|
initWorkFlowDoEntity.StepNO = step.StepNO;
|
|
|
initWorkFlowDoEntity.Auditor = step.Auditor == null ? step.DefaultAuditor : step.Auditor;
|
|
|
initWorkFlowDoEntity.FeeID = "";
|
|
|
initWorkFlowDoEntity.BSNO = "";
|
|
|
initWorkFlowDoEntity.FeeStatus = 0;
|
|
|
initWorkFlowDoEntity.DoQuerySql = "";
|
|
|
initWorkFlowDoEntity.BillNO = strGid;
|
|
|
initWorkFlowDoEntity.IsFinish = false;
|
|
|
initWorkFlowDoEntity.Applicant = strUserID;
|
|
|
|
|
|
workFlowDoEntities.Add(initWorkFlowDoEntity);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
iWorkFlowStatus = workFlowDoDA.InsertWorkFlowDo(workFlowDoEntities);
|
|
|
|
|
|
if (iWorkFlowStatus == 1)
|
|
|
{
|
|
|
int iTempStatus = feeDA.UpdateFeeAuditStatus(strGid, 1);
|
|
|
|
|
|
if (iTempStatus != 1)
|
|
|
{
|
|
|
iResult = -5;//更新费用状态失败
|
|
|
}
|
|
|
#region 注释
|
|
|
//else
|
|
|
//{
|
|
|
// //状态完成后发送通知消息
|
|
|
// IList<MessageEntity> messageEntities = new List<MessageEntity>();
|
|
|
// MessageDA messageDA = new MessageDA();
|
|
|
|
|
|
// foreach (WorkFlowDoEntity workFlowDo in workFlowDoEntities)
|
|
|
// {
|
|
|
// MessageEntity messageEntity = new MessageEntity();
|
|
|
// messageEntity.GID = Guid.NewGuid().ToString();
|
|
|
// messageEntity.Name = "FeeAudit";
|
|
|
// messageEntity.Description = "应收应付审核通知";
|
|
|
// messageEntity.IsRead = false;
|
|
|
// messageEntity.ReadCount = 0;
|
|
|
// messageEntity.MessageContent = strShowName + " 提交 " + (feeEntity.FeeType == 1 ? "应收费用" : "应付费用") + "[" + feeEntity.FeeName + "]费用 应收应付审核 ";
|
|
|
// messageEntity.TaskID = workFlowDo.BillNO;
|
|
|
// messageEntity.Receiver = workFlowDo.Auditor;
|
|
|
// messageEntity.TaskUrl = "auditprocess/feeaudit.aspx";
|
|
|
// messageEntity.Type = messageDA.GetMessageType(MessageType.FEEAUDIT);
|
|
|
|
|
|
// messageEntities.Add(messageEntity);
|
|
|
|
|
|
// }
|
|
|
|
|
|
// if (messageEntities.Count > 0)
|
|
|
// {
|
|
|
// messageDA.CreateMessage(MessageType.FEEAUDIT, messageEntities);
|
|
|
// }
|
|
|
//}
|
|
|
#endregion
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
iResult = -1;
|
|
|
}
|
|
|
}
|
|
|
#endregion
|
|
|
#region auditpass
|
|
|
if (tempHandle.ToLower().Equals("auditpass"))
|
|
|
{
|
|
|
if (feeEntity.FeeStatus == 2)
|
|
|
{
|
|
|
//iResult = feeDA.UpdateFeeStatus(0, strGid);
|
|
|
//工作流
|
|
|
WorkFlowHelper workFlowHelper = new WorkFlowHelper();
|
|
|
//查找付费工作流信息
|
|
|
//WorkFlowEntity workFlowEntity = workFlowHelper.FindWorkFlow(WorkFlowType.FEEAUDIT,strCompanyID);
|
|
|
WorkFlowEntity workFlowEntity = new WorkFlowEntity();
|
|
|
if (stroplb == "op_Seae")
|
|
|
{
|
|
|
workFlowEntity = workFlowHelper.FindWorkFlow(WorkFlowType.FEEAUDIT, strCompanyID);
|
|
|
}
|
|
|
else if (stroplb == "op_Seai")
|
|
|
{
|
|
|
workFlowEntity = workFlowHelper.FindWorkFlow(WorkFlowType.SeaiFEEAUDIT, strCompanyID);
|
|
|
}
|
|
|
else if (stroplb == "wms_out")
|
|
|
{
|
|
|
workFlowEntity = workFlowHelper.FindWorkFlow(WorkFlowType.WmsOutFEEAUDIT, strCompanyID);
|
|
|
}
|
|
|
//如果工作流信息存在
|
|
|
if (workFlowEntity != null)
|
|
|
{
|
|
|
IList<WorkFlowDoEntity> workFlowDoEntities = new List<WorkFlowDoEntity>();
|
|
|
WorkFlowDoDA workFlowDoDA = new WorkFlowDoDA();
|
|
|
//先查看是否当前付费申请已经进入工作流
|
|
|
workFlowDoEntities = workFlowDoDA.GetAllWorkFlowDoByBillNO(workFlowEntity.GID, strGid);
|
|
|
|
|
|
if (workFlowDoEntities.Count > 0)
|
|
|
{
|
|
|
int iCount = 0;
|
|
|
//如果付费申请已经进入工作流,先判断当前打开付费审核页面操作人是否是工作流内相关审核人,如果是则
|
|
|
foreach (WorkFlowDoEntity workFlowDoEntity in workFlowDoEntities)
|
|
|
{
|
|
|
//查看当前操作人是否为审核人
|
|
|
if (workFlowDoEntity.Auditor == strUserID)
|
|
|
{
|
|
|
iCount++;
|
|
|
//查看当前审核人所处的步骤是否已经完成
|
|
|
if (!workFlowDoEntity.IsFinish)
|
|
|
{
|
|
|
//iResult等于1表示工作执行操作成功
|
|
|
iResult = workFlowHelper.DoWorkFlowStep(workFlowDoEntity);
|
|
|
|
|
|
if (iResult == 1)
|
|
|
{
|
|
|
//遍历工作流步骤信息,如果是工作流步骤最后一步,表示审核通过则置ch_fee审核通过
|
|
|
foreach (WorkFlowStepEntity workFlowStepEntity in workFlowEntity.WorkFlowSteps)
|
|
|
{
|
|
|
if (workFlowStepEntity.StepNO == workFlowDoEntity.StepNO)
|
|
|
{
|
|
|
if (workFlowStepEntity.IsLast)
|
|
|
{
|
|
|
int iTempStatus = feeDA.UpdateFeeStatus(0, strGid);
|
|
|
|
|
|
if (iTempStatus != 1)
|
|
|
{
|
|
|
iResult = -5;//更新费用状态失败
|
|
|
}
|
|
|
|
|
|
if (iTempStatus == 1)
|
|
|
{
|
|
|
feeEntity = feeDA.GetFeeByID(strGid);
|
|
|
|
|
|
iResult = feeEntity.FeeStatus;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
|
else if (workFlowDoEntity.IsFinish)
|
|
|
{
|
|
|
iResult = -4;//付费审核步骤已经完成,不能重复审核
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (iCount == 0)
|
|
|
{
|
|
|
iResult = -3;//没有权利审核付费
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
iResult = -1;
|
|
|
}
|
|
|
}
|
|
|
#endregion
|
|
|
#region reject
|
|
|
if (tempHandle.ToLower().Equals("reject"))
|
|
|
{
|
|
|
if (feeEntity.FeeStatus == 2 || feeEntity.FeeStatus == 5 || feeEntity.FeeStatus == 0)
|
|
|
{
|
|
|
#region 注释
|
|
|
////iResult = feeDA.UpdateFeeStatus(0, strGid);
|
|
|
//if (feeDA.ValidateFeeRunning(strGid) == 1)
|
|
|
//{
|
|
|
#endregion
|
|
|
FeeDoDA feeDoDA = new FeeDoDA();
|
|
|
IList<FeeDoEntity> feeDoEntities = new List<FeeDoEntity>();
|
|
|
feeDoEntities = feeDoDA.GetFeeDoByBillNO(strGid);
|
|
|
//工作流
|
|
|
WorkFlowHelper workFlowHelper = new WorkFlowHelper();
|
|
|
//查找付费工作流信息
|
|
|
//WorkFlowEntity workFlowEntity = workFlowHelper.FindWorkFlow(WorkFlowType.FEEAUDIT,strCompanyID);
|
|
|
WorkFlowEntity workFlowEntity =new WorkFlowEntity();
|
|
|
if (stroplb == "op_Seae")
|
|
|
{
|
|
|
workFlowEntity = workFlowHelper.FindWorkFlow(WorkFlowType.FEEAUDIT, strCompanyID);
|
|
|
}
|
|
|
else if (stroplb == "op_Seai")
|
|
|
{
|
|
|
workFlowEntity = workFlowHelper.FindWorkFlow(WorkFlowType.SeaiFEEAUDIT, strCompanyID);
|
|
|
}
|
|
|
//如果工作流信息存在
|
|
|
if (workFlowEntity != null)
|
|
|
{
|
|
|
IList<WorkFlowDoEntity> workFlowDoEntities = new List<WorkFlowDoEntity>();
|
|
|
WorkFlowDoDA workFlowDoDA = new WorkFlowDoDA();
|
|
|
//先查看是否当前付费申请已经进入工作流
|
|
|
workFlowDoEntities = workFlowDoDA.GetAllWorkFlowDoByBillNO(workFlowEntity.GID, strGid);
|
|
|
|
|
|
if (workFlowDoEntities.Count > 0)
|
|
|
{
|
|
|
//如果付费申请已经进入工作流,先判断当前打开付费审核页面操作人是否是工作流内相关审核人,如果是则
|
|
|
foreach (WorkFlowDoEntity workFlowDoEntity in workFlowDoEntities)
|
|
|
{
|
|
|
//查看当前操作人是否为审核人
|
|
|
if (workFlowDoEntity.Auditor == strUserID)
|
|
|
{
|
|
|
workFlowDoEntity.IsFinish = true;
|
|
|
workFlowDoEntity.IsDelete = true;
|
|
|
workFlowDoEntity.DeleteStep = workFlowDoEntity.StepID;
|
|
|
workFlowDoEntity.DeleteOperator = strUserID;
|
|
|
workFlowDoEntity.DeleteStepNO = workFlowDoEntity.StepNO;
|
|
|
workFlowDoEntity.IsFinish = true;
|
|
|
|
|
|
int iTempRejectStatus = workFlowHelper.DoWorkFlowReject(workFlowDoEntity, WorkFlowType.FEEAUDIT, feeDoEntities,strGid,strCompanyID);
|
|
|
|
|
|
if (iTempRejectStatus == 1)
|
|
|
{
|
|
|
int iFeeStatus = feeDA.UpdateFeeStatus(6, strGid);
|
|
|
|
|
|
if (iFeeStatus == 1)
|
|
|
{
|
|
|
//iResult = 1;
|
|
|
|
|
|
feeEntity = feeDA.GetFeeByID(strGid);
|
|
|
|
|
|
iResult = feeEntity.FeeStatus;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
iResult = -5;//费用状态更新失败
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
iResult = -4;//工作流审核驳回失败
|
|
|
}
|
|
|
}
|
|
|
#region 注释
|
|
|
//else
|
|
|
//{
|
|
|
// iResult = -3;//没有权利审核付费
|
|
|
//}
|
|
|
#endregion
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
#region 注释
|
|
|
//}
|
|
|
//else
|
|
|
//{
|
|
|
// iResult = -6;//费用已经结算,不能做审核操作
|
|
|
//}
|
|
|
#endregion
|
|
|
}
|
|
|
#region 注释
|
|
|
////如果FeeStatus状态是申请修改 (STATUS=3) 取消申请(STATUS=5) 则状态更新驳回申请
|
|
|
//if (feeEntity.FeeStatus == 3 || feeEntity.FeeStatus == 5)
|
|
|
//{
|
|
|
// iResult = feeDA.UpdateFeeStatus(7, strGid);
|
|
|
//}
|
|
|
//else if (feeEntity.FeeStatus == 2 || feeEntity.FeeStatus == 0)
|
|
|
//{
|
|
|
// iResult = feeDA.UpdateFeeStatus(6, strGid);
|
|
|
//}
|
|
|
//else
|
|
|
//{
|
|
|
// iResult = -1;
|
|
|
//}
|
|
|
#endregion
|
|
|
}
|
|
|
#endregion
|
|
|
#region seaiaudit
|
|
|
if (tempHandle.ToLower().Equals("seaiaudit"))
|
|
|
{ //ch_fee费用信息的费用状态为1录入状态或6驳回提交
|
|
|
if (feeEntity.FeeStatus == 1 || feeEntity.FeeStatus == 6)
|
|
|
{ //根据Gid更新ch_fee.feestatus费用状态信息:为"提交审核"
|
|
|
iResult = feeDA.UpdateFeeStatus(2, strGid);
|
|
|
|
|
|
if (iResult == 1)
|
|
|
{
|
|
|
WorkFlowHelper workFlowHelper = new WorkFlowHelper();
|
|
|
//通过模块NAME获取工作流信息
|
|
|
WorkFlowEntity workFlowEntity = workFlowHelper.FindWorkFlow(WorkFlowType.SeaiFEEAUDIT, strCompanyID);
|
|
|
if (workFlowEntity != null)
|
|
|
{
|
|
|
WorkFlowDoEntity workFlowDoEntity = null;
|
|
|
WorkFlowDoDA workFlowDoDA = new WorkFlowDoDA();
|
|
|
|
|
|
//查看当前提交的应收应付费用审核已经进入工作流,通过工作流GID和申请编号BILLNO获取工作流运行表WorkFlowDo信息
|
|
|
workFlowDoEntity = workFlowDoDA.GetSigleWorkFlowDoByBillNO(workFlowEntity.GID, strGid);
|
|
|
|
|
|
if (workFlowDoEntity == null)
|
|
|
{
|
|
|
IList<WorkFlowDoEntity> workFlowDoEntities = new List<WorkFlowDoEntity>();
|
|
|
if (workFlowDoEntity.GID == null)
|
|
|
{
|
|
|
|
|
|
foreach (WorkFlowStepEntity step in workFlowEntity.WorkFlowSteps)
|
|
|
{
|
|
|
//遍历所有工作流下步骤,获取第一步骤GID信息
|
|
|
if (step.StepNO == 1)
|
|
|
{
|
|
|
if (step.IsDepartment)
|
|
|
{
|
|
|
string strDepartmentID = step.DepartmentID == null ? "" : step.DepartmentID;
|
|
|
|
|
|
if (strDepartmentID.Trim() != null)
|
|
|
{
|
|
|
SysDeptDA sysDeptDA = new SysDeptDA();
|
|
|
|
|
|
string strDeptID = sysDeptDA.GetDepartmentIdByUser(strUserID);
|
|
|
|
|
|
if (strDeptID.Trim().Equals(strDepartmentID) && strDepartmentID != "")
|
|
|
{
|
|
|
WorkFlowDoEntity initWorkFlowDoEntity = new WorkFlowDoEntity();
|
|
|
|
|
|
initWorkFlowDoEntity.GID = Guid.NewGuid().ToString();
|
|
|
initWorkFlowDoEntity.WorkFlowID = workFlowEntity.GID;
|
|
|
initWorkFlowDoEntity.StepID = step.GID;
|
|
|
initWorkFlowDoEntity.StepNO = step.StepNO;
|
|
|
initWorkFlowDoEntity.Auditor = step.Auditor == null ? step.DefaultAuditor : step.Auditor;
|
|
|
initWorkFlowDoEntity.FeeID = "";
|
|
|
initWorkFlowDoEntity.BSNO = "";
|
|
|
initWorkFlowDoEntity.FeeStatus = 0;
|
|
|
initWorkFlowDoEntity.DoQuerySql = "";
|
|
|
initWorkFlowDoEntity.BillNO = strGid;
|
|
|
initWorkFlowDoEntity.IsFinish = false;
|
|
|
initWorkFlowDoEntity.Applicant = strUserID;
|
|
|
|
|
|
workFlowDoEntities.Add(initWorkFlowDoEntity);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
WorkFlowDoEntity initWorkFlowDoEntity = new WorkFlowDoEntity();
|
|
|
|
|
|
initWorkFlowDoEntity.GID = Guid.NewGuid().ToString();
|
|
|
initWorkFlowDoEntity.WorkFlowID = workFlowEntity.GID;
|
|
|
initWorkFlowDoEntity.StepID = step.GID;
|
|
|
initWorkFlowDoEntity.StepNO = step.StepNO;
|
|
|
initWorkFlowDoEntity.Auditor = step.Auditor == null ? step.DefaultAuditor : step.Auditor;
|
|
|
initWorkFlowDoEntity.FeeID = "";
|
|
|
initWorkFlowDoEntity.BSNO = "";
|
|
|
initWorkFlowDoEntity.FeeStatus = 0;
|
|
|
initWorkFlowDoEntity.DoQuerySql = "";
|
|
|
initWorkFlowDoEntity.BillNO = strGid;
|
|
|
initWorkFlowDoEntity.IsFinish = false;
|
|
|
initWorkFlowDoEntity.Applicant = strUserID;
|
|
|
|
|
|
workFlowDoEntities.Add(initWorkFlowDoEntity);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
//插入WorkFlowDo信息
|
|
|
iWorkFlowStatus = workFlowDoDA.InsertWorkFlowDo(workFlowDoEntities);
|
|
|
|
|
|
if (iWorkFlowStatus == 1)
|
|
|
{
|
|
|
int iTempStatus = feeDA.UpdateFeeAuditStatus(strGid, 1);
|
|
|
|
|
|
if (iTempStatus != 1)
|
|
|
{
|
|
|
iResult = -5;//更新费用状态失败
|
|
|
}
|
|
|
#region
|
|
|
//else
|
|
|
//{
|
|
|
// //状态完成后发送通知消息
|
|
|
// IList<MessageEntity> messageEntities = new List<MessageEntity>();
|
|
|
// MessageDA messageDA = new MessageDA();
|
|
|
|
|
|
// foreach (WorkFlowDoEntity workFlowDo in workFlowDoEntities)
|
|
|
// {
|
|
|
// MessageEntity messageEntity = new MessageEntity();
|
|
|
// messageEntity.GID = Guid.NewGuid().ToString();
|
|
|
// messageEntity.Name = "FeeAudit";
|
|
|
// messageEntity.Description = "应收应付审核通知";
|
|
|
// messageEntity.IsRead = false;
|
|
|
// messageEntity.ReadCount = 0;
|
|
|
// messageEntity.MessageContent = strShowName + " 提交 " + (feeEntity.FeeType == 1 ? "应收费用" : "应付费用") + "[" + feeEntity.FeeName + "]费用 应收应付审核 ";
|
|
|
// messageEntity.TaskID = workFlowDo.BillNO;
|
|
|
// messageEntity.Receiver = workFlowDo.Auditor;
|
|
|
// messageEntity.TaskUrl = messageEntity.TaskUrl = "auditprocess/feeaudit.aspx";
|
|
|
// messageEntity.Type = messageDA.GetMessageType(MessageType.FEEAUDIT);
|
|
|
|
|
|
// messageEntities.Add(messageEntity);
|
|
|
|
|
|
// }
|
|
|
|
|
|
// if (messageEntities.Count > 0)
|
|
|
// {
|
|
|
// messageDA.CreateMessage(MessageType.FEEAUDIT, messageEntities);
|
|
|
// }
|
|
|
//}
|
|
|
#endregion
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
IList<WorkFlowDoEntity> workFlowDoEntities = new List<WorkFlowDoEntity>();
|
|
|
if (workFlowDoEntity.GID == null)
|
|
|
{
|
|
|
|
|
|
foreach (WorkFlowStepEntity step in workFlowEntity.WorkFlowSteps)
|
|
|
{
|
|
|
//遍历所有工作流下步骤,获取第一步骤GID信息
|
|
|
if (step.StepNO == 1)
|
|
|
{
|
|
|
if (step.IsDepartment)
|
|
|
{
|
|
|
string strDepartmentID = step.DepartmentID == null ? "" : step.DepartmentID;
|
|
|
|
|
|
if (strDepartmentID.Trim() != null)
|
|
|
{
|
|
|
SysDeptDA sysDeptDA = new SysDeptDA();
|
|
|
|
|
|
string strDeptID = sysDeptDA.GetDepartmentIdByUser(strUserID);
|
|
|
|
|
|
if (strDeptID.Trim().Equals(strDepartmentID) && strDepartmentID != "")
|
|
|
{
|
|
|
WorkFlowDoEntity initWorkFlowDoEntity = new WorkFlowDoEntity();
|
|
|
|
|
|
initWorkFlowDoEntity.GID = Guid.NewGuid().ToString();
|
|
|
initWorkFlowDoEntity.WorkFlowID = workFlowEntity.GID;
|
|
|
initWorkFlowDoEntity.StepID = step.GID;
|
|
|
initWorkFlowDoEntity.StepNO = step.StepNO;
|
|
|
initWorkFlowDoEntity.Auditor = step.Auditor == null ? step.DefaultAuditor : step.Auditor;
|
|
|
initWorkFlowDoEntity.FeeID = "";
|
|
|
initWorkFlowDoEntity.BSNO = "";
|
|
|
initWorkFlowDoEntity.FeeStatus = 0;
|
|
|
initWorkFlowDoEntity.DoQuerySql = "";
|
|
|
initWorkFlowDoEntity.BillNO = strGid;
|
|
|
initWorkFlowDoEntity.IsFinish = false;
|
|
|
initWorkFlowDoEntity.Applicant = strUserID;
|
|
|
|
|
|
workFlowDoEntities.Add(initWorkFlowDoEntity);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
WorkFlowDoEntity initWorkFlowDoEntity = new WorkFlowDoEntity();
|
|
|
|
|
|
initWorkFlowDoEntity.GID = Guid.NewGuid().ToString();
|
|
|
initWorkFlowDoEntity.WorkFlowID = workFlowEntity.GID;
|
|
|
initWorkFlowDoEntity.StepID = step.GID;
|
|
|
initWorkFlowDoEntity.StepNO = step.StepNO;
|
|
|
initWorkFlowDoEntity.Auditor = step.Auditor == null ? step.DefaultAuditor : step.Auditor;
|
|
|
initWorkFlowDoEntity.FeeID = "";
|
|
|
initWorkFlowDoEntity.BSNO = "";
|
|
|
initWorkFlowDoEntity.FeeStatus = 0;
|
|
|
initWorkFlowDoEntity.DoQuerySql = "";
|
|
|
initWorkFlowDoEntity.BillNO = strGid;
|
|
|
initWorkFlowDoEntity.IsFinish = false;
|
|
|
initWorkFlowDoEntity.Applicant = strUserID;
|
|
|
|
|
|
workFlowDoEntities.Add(initWorkFlowDoEntity);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
iWorkFlowStatus = workFlowDoDA.InsertWorkFlowDo(workFlowDoEntities);
|
|
|
|
|
|
if (iWorkFlowStatus == 1)
|
|
|
{
|
|
|
int iTempStatus = feeDA.UpdateFeeAuditStatus(strGid, 1);
|
|
|
|
|
|
if (iTempStatus != 1)
|
|
|
{
|
|
|
iResult = -5;//更新费用状态失败
|
|
|
}
|
|
|
#region 注释
|
|
|
//else
|
|
|
//{
|
|
|
// //状态完成后发送通知消息
|
|
|
// IList<MessageEntity> messageEntities = new List<MessageEntity>();
|
|
|
// MessageDA messageDA = new MessageDA();
|
|
|
|
|
|
// foreach (WorkFlowDoEntity workFlowDo in workFlowDoEntities)
|
|
|
// {
|
|
|
// MessageEntity messageEntity = new MessageEntity();
|
|
|
// messageEntity.GID = Guid.NewGuid().ToString();
|
|
|
// messageEntity.Name = "FeeAudit";
|
|
|
// messageEntity.Description = "应收应付审核通知";
|
|
|
// messageEntity.IsRead = false;
|
|
|
// messageEntity.ReadCount = 0;
|
|
|
// messageEntity.MessageContent = strShowName + " 提交 " + (feeEntity.FeeType == 1 ? "应收费用" : "应付费用") + "[" + feeEntity.FeeName + "]费用 应收应付审核 ";
|
|
|
// messageEntity.TaskID = workFlowDo.BillNO;
|
|
|
// messageEntity.Receiver = workFlowDo.Auditor;
|
|
|
// messageEntity.TaskUrl = "auditprocess/feeaudit.aspx";
|
|
|
// messageEntity.Type = messageDA.GetMessageType(MessageType.FEEAUDIT);
|
|
|
|
|
|
// messageEntities.Add(messageEntity);
|
|
|
|
|
|
// }
|
|
|
|
|
|
// if (messageEntities.Count > 0)
|
|
|
// {
|
|
|
// messageDA.CreateMessage(MessageType.FEEAUDIT, messageEntities);
|
|
|
// }
|
|
|
//}
|
|
|
#endregion
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
iResult = -1;
|
|
|
}
|
|
|
}
|
|
|
#endregion
|
|
|
return iResult;
|
|
|
}
|
|
|
/// <summary>
|
|
|
/// 更改单复制委托信息
|
|
|
/// </summary>
|
|
|
/// <param name="tempBSNO">委托业务编号</param>
|
|
|
/// <returns>插入状态</returns>
|
|
|
private string ExcuteModifyByCopy(string tempBSNO)
|
|
|
{
|
|
|
TopSeaeEntity topSeaeEntity;
|
|
|
int iResult = 0;
|
|
|
|
|
|
SeaExportInfoDA seaExportDA = new SeaExportInfoDA();
|
|
|
|
|
|
topSeaeEntity = seaExportDA.GetID(tempBSNO);
|
|
|
|
|
|
if (topSeaeEntity.BSNO != null)
|
|
|
{
|
|
|
IList<TopSeaeEntity> topSeaeEntities = new List<TopSeaeEntity>();
|
|
|
|
|
|
topSeaeEntities.Add(topSeaeEntity);
|
|
|
//复制委托信息
|
|
|
TopSeaeEntity newTopSeaeEntity = seaExportDA.GetID(tempBSNO);
|
|
|
//产生新的委托业务编号
|
|
|
newTopSeaeEntity.BSNO = "topseae" + Guid.NewGuid().ToString().Replace("-", "");
|
|
|
topSeaeEntities.Add(newTopSeaeEntity);
|
|
|
|
|
|
AmendDA amendDA = new AmendDA();
|
|
|
|
|
|
IList<AmendEntity> amendEntities = new List<AmendEntity>();
|
|
|
|
|
|
for(int i = 0;i<topSeaeEntities.Count;i++)
|
|
|
{
|
|
|
AmendEntity amendEntity = new AmendEntity();
|
|
|
amendEntity.GID = Guid.NewGuid().ToString();
|
|
|
amendEntity.BSNO = topSeaeEntities[i].BSNO;
|
|
|
//amendEntity.ACCDate = DateTime.MinValue;
|
|
|
amendEntity.ParentID = topSeaeEntities[0].BSNO;
|
|
|
amendEntity.CreateUser = strUserID;
|
|
|
amendEntity.FeeStatus = 1;
|
|
|
amendEntity.Reason = "";
|
|
|
amendEntity.Remarks = "";
|
|
|
|
|
|
amendEntities.Add(amendEntity);
|
|
|
}
|
|
|
|
|
|
iResult = amendDA.InsertAmends(amendEntities);
|
|
|
|
|
|
if (iResult > 0)
|
|
|
{
|
|
|
//复制一条记录到
|
|
|
iResult = seaExportDA.InserInfo(newTopSeaeEntity);
|
|
|
}
|
|
|
}
|
|
|
return iResult.ToString();
|
|
|
}
|
|
|
#region 注释
|
|
|
//public string ExcuteApplyModifyFee(string tempFeeGID,string tempBSNO)
|
|
|
//{
|
|
|
// TopSeaeEntity topSeaeEntity;
|
|
|
// int iResult = 0;
|
|
|
|
|
|
// SeaExportInfoDA seaExportDA = new SeaExportInfoDA();
|
|
|
|
|
|
// topSeaeEntity = seaExportDA.GetID(tempBSNO);
|
|
|
|
|
|
// if (topSeaeEntity.BSNO != null)
|
|
|
// {
|
|
|
// if (topSeaeEntity.FEESTATUS.Trim().Equals("未锁定"))
|
|
|
// {
|
|
|
// FeeModifyDA feeModifyDA = new FeeModifyDA();
|
|
|
|
|
|
// IList<FeeModifyEntity> feeModifyEntities = new List<FeeModifyEntity>();
|
|
|
|
|
|
// }
|
|
|
// }
|
|
|
//}
|
|
|
|
|
|
//public string ExcuteApplyDeleteFee()
|
|
|
//{
|
|
|
// TopSeaeEntity topSeaeEntity;
|
|
|
// int iResult = 0;
|
|
|
|
|
|
// SeaExportInfoDA seaExportDA = new SeaExportInfoDA();
|
|
|
|
|
|
// topSeaeEntity = seaExportDA.GetID(tempBSNO);
|
|
|
|
|
|
// if (topSeaeEntity.BSNO != null)
|
|
|
// {
|
|
|
// if (topSeaeEntity.FEESTATUS.Trim().Equals("未锁定"))
|
|
|
// {
|
|
|
// FeeModifyDA feeModifyDA = new FeeModifyDA();
|
|
|
|
|
|
// IList<FeeModifyEntity>
|
|
|
// }
|
|
|
// }
|
|
|
//}
|
|
|
#endregion
|
|
|
}
|
|
|
}
|