You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

184 lines
7.8 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Microsoft.Practices.EnterpriseLibrary.Data;
using System.Data;
using DSWeb.MvcShipping.DAL.Chfee_AuditDAL;
using DSWeb.Areas.Account.Models.MsOpBill;
using System.Text;
using DSWeb.Areas.Mobile.Models.Approval;
using DSWeb.MvcShipping.DAL.MsSysParamSet;
using DSWeb.TruckMng.Helper;
using HcUtility.Comm;
namespace DSWeb.Areas.Mobile.DAL
{
public class ApprovalDAL
{
/// <summary>
/// 获取Content的HTML
/// </summary>
/// <returns></returns>
public static string GetBillStatus (string billno)
{
return "";
}
/// <summary>
/// 获取利润与金额合计
/// </summary>
/// <param name="mblno">主题单号</param>
/// <returns></returns>
public static YSYFAmountModel GetAmountAndLirun ( string mblno)
{
StringBuilder sb = new StringBuilder();
sb.Append("select ");
sb.Append("ISNULL(SUM(cfsrmb.AMOUNT),0) as yingshourmb, ");
sb.Append("ISNULL(SUM(cffrmb.AMOUNT),0) as yingfurmb ,");
sb.Append("ISNULL(SUM(cfsusd.AMOUNT),0) as yingshouusd,");
sb.Append("ISNULL(SUM(cffusd.AMOUNT),0) as yingfuusd ");
sb.Append("from ch_fee cf ");
sb.Append("LEFT JOIN v_op_bs os on cf.BSNO = os.BSNO ");
sb.Append("LEFT JOIN ch_fee cfsrmb on cf.GID = cfsrmb.GID AND cfsrmb.FEETYPE = 1 AND cfsrmb.CURRENCY = 'RMB' ");
sb.Append("LEFT JOIN ch_fee cffrmb on cf.GID = cffrmb.GID AND cffrmb.FEETYPE = 2 AND cffrmb.CURRENCY = 'RMB' ");
sb.Append("LEFT JOIN ch_fee cfsusd on cf.GID = cfsusd.GID AND cfsusd.FEETYPE = 1 AND cfsusd.CURRENCY= 'USD' ");
sb.Append("LEFT JOIN ch_fee cffusd on cf.GID = cffusd.GID AND cffusd.FEETYPE = 2 AND cffusd.CURRENCY= 'USD' ");
sb.Append("WHERE os.MBLNO LIKE '%"+mblno+"%' ");
Database db = DatabaseFactory.CreateDatabase();
YSYFAmountModel ysyf = new YSYFAmountModel();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, sb.ToString()))
{
while (reader.Read())
{
ysyf.yingfurmb = reader["yingfurmb"].ToString();
ysyf.yingfuusd = reader["yingfuusd"].ToString();
ysyf.yingshourmb = reader["yingshourmb"].ToString();
ysyf.yingshouusd = reader["yingshouusd"].ToString();
}
}
return ysyf;
}
/// <summary>
/// 应收应付审批 2017年9月14日15:10:01 拷贝自 Chfee_AuditController.cs 的 SelAudit方法
/// </summary>
/// <param name="userid"></param>
/// <param name="showname"></param>
/// <param name="comid"></param>
/// <param name="billData"></param>
/// <returns></returns>
public static bool SelAudit (string userid, string showname, string comid, List<MsOpBill> billData )
{
var AuditAutoLock = MsSysParamSetDAL.GetData("PARAMNAME='AuditAutoLock'");
var workflowstr = "";
var AMENDSELFWORK = MsSysParamSetDAL.GetData("PARAMNAME='AMENDSELFWORKFLOW'");
if (AMENDSELFWORK.PARAMVALUE == "1") workflowstr = "AmendFeefyAudit";
DBResult result = null;
foreach (var enumValue in billData)
{
if (enumValue.OPTYPE == "更改单" && AMENDSELFWORK.PARAMVALUE == "1") workflowstr = "AmendFeefyAudit"; else workflowstr = "";
result = Chfee_AuditDAL.PiliangAudit(enumValue.OPLB, enumValue.BSNO, userid, showname, comid, workflowstr);
if (result.Success == true)
{
if (AuditAutoLock.PARAMVALUE == "1")
{
Chfee_AuditDAL.UpLock(enumValue.BSNO, enumValue.OPLB);
}
}
}
return result.Success;
}
/// <summary>
/// 根据提单号获取更改单利润统计
/// </summary>
/// <param name="mblno"></param>
public static GGDAmountModel GetGGDLirunWithMBLNO ( string mblno,string bsno,bool single)
{
string sql =
@" SELECT
ISNULL(SUM(ggdsrmb.AMOUNT),0) as ggdsrmb,
ISNULL(SUM(ggdsusd.AMOUNT),0) as ggdsusd,
ISNULL(SUM(ggdfrmb.AMOUNT),0) as ggdfrmb,
ISNULL(SUM(ggdfusd.AMOUNT),0) as ggdfusd
from ch_fee cf
LEFT JOIN op_amend am on am.BSNO = cf.BSNO
JOIN v_op_bs si on si.BSNO = am.PARENTID
LEFT JOIN ch_fee ggdsrmb on ggdsrmb.GID = cf.GID AND ggdsrmb.FEETYPE = 1 AND ggdsrmb.CURRENCY= 'RMB' --更改单应收
LEFT JOIN ch_fee ggdsusd on ggdsusd.GID = cf.GID AND ggdsusd.FEETYPE = 1 AND ggdsusd.CURRENCY= 'USD' --更改单应收
LEFT JOIN ch_fee ggdfrmb on ggdfrmb.GID = cf.GID AND ggdfrmb.FEETYPE = 2 AND ggdfrmb.CURRENCY= 'RMB' --更改单应付
LEFT JOIN ch_fee ggdfusd on ggdfusd.GID = cf.GID AND ggdfusd.FEETYPE = 2 AND ggdfusd.CURRENCY= 'USD' --更改单应付
where si.MBLNO like '%" + mblno + "%' AND am.CREATETIME <= (SELECT CREATETIME FROM op_amend WHERE BSNO = '"+bsno+"')";
string sqlwhere = "";
if (single)
{
sqlwhere = "AND am.BSNO = '"+bsno+"'";
}
else
{
sqlwhere = "AND am.CREATETIME <= (SELECT CREATETIME FROM op_amend WHERE BSNO = '"+bsno+"')";
}
Database db = DatabaseFactory.CreateDatabase();
GGDAmountModel ggd = new GGDAmountModel();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, sql+sqlwhere))
{
while (reader.Read())
{
ggd.ggdsrmb = reader["ggdsrmb"].ToString();
ggd.ggdsusd = reader["ggdsusd"].ToString();
ggd.ggdfrmb = reader["ggdfrmb"].ToString();
ggd.ggdfusd = reader["ggdfusd"].ToString();
}
}
return ggd;
}
/// <summary>
/// 根据bsno用户id获取机密费用名称数额
/// </summary>
/// <param name="mblno"></param>
/// <param name="userid"></param>
/// <returns></returns>
public static JiMiFeeModel GetJiMiFeeInfo ( string bsno, string userid )
{
//判断用户权限
string sql = @"select count(*) from user_action where userid = '"+userid+"' and ACTIONID = (SELECT GID from action where DESCRIPTION = '机密费用')";
Database db = DatabaseFactory.CreateDatabase();
int rst = Convert.ToInt32(db.ExecuteScalar(CommandType.Text, sql));
if (rst>0)
{
//查询机密费用
string sql2 = @"select FEENAME,SUM(AMOUNT) AS AMOUNT from ch_fee
where bsno = '"+bsno+"' and FEENAME = (select PARAMVALUE from sys_param_set where PARAMDESCRIPTION = '佣金默认费用名称') and FEETYPE = 2 and CURRENCY = 'USD' GROUP BY FEENAME ";
JiMiFeeModel jm = null;
using (IDataReader reader = db.ExecuteReader(CommandType.Text,sql2))
{
while (reader.Read())
{
jm = new JiMiFeeModel();
jm.JimiName = Convert.ToString(reader["FEENAME"]);
jm.JimiUsd = Convert.ToString(reader["AMOUNT"]);
break;
}
}
return jm;
}
else
{
return null;
}
}
}
}