You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
134 lines
5.5 KiB
134 lines
5.5 KiB
using Entity.Sugar;
|
|
using Newtonsoft.Json;
|
|
using Newtonsoft.Json.Linq;
|
|
using SqlSugar;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace EasyBL
|
|
{
|
|
public class SuperAuditor
|
|
{
|
|
public static bool CheckAuditable()
|
|
{
|
|
return false;
|
|
}
|
|
|
|
public static OTB_EIP_InvoiceApplyInfo AgreeAll(string strCheckFlows, string SuperAuditor, string Opinion, out List<string> Notification)
|
|
{
|
|
Notification = new List<string>();
|
|
var CheckFlows = (JArray)JsonConvert.DeserializeObject(strCheckFlows);
|
|
foreach (var flowInfo in CheckFlows)
|
|
{
|
|
var SignedDecision = flowInfo["SignedDecision"].ObjToString();
|
|
var SignedOpinion = flowInfo["SignedOpinion"].ObjToString();
|
|
var SignedDate = flowInfo["SignedDate"].ObjToString();
|
|
bool NotSigned = string.IsNullOrWhiteSpace(SignedDecision) || string.IsNullOrWhiteSpace(SignedOpinion) && string.IsNullOrWhiteSpace(SignedDate);
|
|
if (NotSigned)
|
|
{
|
|
flowInfo["SignedOpinion"] = SuperAuditor + "(簽核全部)。意見:" + Opinion;
|
|
flowInfo["SignedDate"] = DateTime.Now.ToString("s");
|
|
var SignedWay = flowInfo["SignedWay"].ObjToString();
|
|
switch (SignedWay)
|
|
{
|
|
case "flow1":
|
|
case "flow2":
|
|
case "flow3":
|
|
{
|
|
flowInfo["SignedDecision"] = "Y";
|
|
}
|
|
break;
|
|
case "flow4":
|
|
{
|
|
var SignedId = flowInfo["SignedId"].ObjToString();
|
|
if(!string.IsNullOrWhiteSpace(SignedId))
|
|
{
|
|
Notification.Add(SignedId);
|
|
}
|
|
flowInfo["SignedDecision"] = "R";
|
|
}
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
var ModifiedCheckFlows = JsonConvert.SerializeObject(CheckFlows);
|
|
|
|
return new OTB_EIP_InvoiceApplyInfo() { Status = "E", CheckFlows = ModifiedCheckFlows, ModifyDate = DateTime.Now, ModifyUser = SuperAuditor };
|
|
}
|
|
|
|
public static OTB_EIP_InvoiceApplyInfo Disagree(string strCheckFlows, string SuperAuditor, string Opinion)
|
|
{
|
|
|
|
var CheckFlows = (JArray)JsonConvert.DeserializeObject(strCheckFlows);
|
|
|
|
foreach (var flowInfo in CheckFlows)
|
|
{
|
|
var SignedDecision = flowInfo["SignedDecision"].ObjToString();
|
|
var SignedOpinion = flowInfo["SignedOpinion"].ObjToString();
|
|
var SignedDate = flowInfo["SignedDate"].ObjToString();
|
|
bool NotSigned = string.IsNullOrWhiteSpace(SignedDecision) || string.IsNullOrWhiteSpace(SignedOpinion) && string.IsNullOrWhiteSpace(SignedDate);
|
|
if (NotSigned)
|
|
{
|
|
flowInfo["SignedOpinion"] = SuperAuditor + "(簽核全部)。意見:" + Opinion;
|
|
flowInfo["SignedDate"] = DateTime.Now.ToString("s");
|
|
var SignedWay = flowInfo["SignedWay"].ObjToString();
|
|
switch (SignedWay)
|
|
{
|
|
case "flow1":
|
|
case "flow2":
|
|
case "flow3":
|
|
{
|
|
flowInfo["SignedDecision"] = "N";
|
|
}
|
|
break;
|
|
case "flow4":
|
|
{
|
|
//flowInfo.SignedDecision = "R";
|
|
}
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
var ModifiedCheckFlows = JsonConvert.SerializeObject(CheckFlows);
|
|
return new OTB_EIP_InvoiceApplyInfo() { Status = "D-O", CheckFlows = ModifiedCheckFlows, ModifyDate = DateTime.Now, ModifyUser = SuperAuditor };
|
|
}
|
|
|
|
public static Tuple<string,string> GetNotification(OTB_EIP_InvoiceApplyInfo oEip, OTB_SYS_Members Auditor, OTB_SYS_Members Applicant, bool Decision = true)
|
|
{
|
|
var PayeeType = GetPayeeName(oEip.PayeeType);
|
|
var AuditorNotification = Auditor.MemberName + @"審批了" + Applicant.MemberName + "的"+ PayeeType + "「" + oEip.KeyNote + @"」簽呈編號:" + oEip.SignedNumber;
|
|
var AuditorDecision = "審批結果:同意";
|
|
if (!Decision)
|
|
AuditorDecision = "審批結果:不同意";
|
|
return new Tuple<string, string>(AuditorNotification, AuditorDecision);
|
|
}
|
|
|
|
|
|
private static string GetPayeeName(string PayeeType)
|
|
{
|
|
var Result = "";
|
|
switch (PayeeType)
|
|
{
|
|
case "P":
|
|
Result = "請款單(客戶)";
|
|
break;
|
|
case "C":
|
|
Result = "請款單(廠商)";
|
|
break;
|
|
case "B":
|
|
Result = "帳單更改申請單";
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
return Result;
|
|
}
|
|
}
|
|
}
|