|
|
using System;
|
|
|
using System.Collections.Generic;
|
|
|
using System.Data;
|
|
|
using System.Linq;
|
|
|
using System.Text;
|
|
|
using System.Web;
|
|
|
using System.Web.Mvc;
|
|
|
using DSWeb.MvcShipping.Helper;
|
|
|
using DSWeb.MvcShipping.Comm.Cookie;
|
|
|
using DSWeb.Areas.CommMng.DAL;
|
|
|
using DSWeb.Areas.RptMng.Comm;
|
|
|
using HcUtility.Comm;
|
|
|
using HcUtility.Core;
|
|
|
using Microsoft.Practices.EnterpriseLibrary.Data;
|
|
|
using DSWeb.EntityDA;
|
|
|
using DSWeb.Areas.CommMng.Models;
|
|
|
using System.IO;
|
|
|
|
|
|
namespace DSWeb.MvcShipping.Controllers
|
|
|
{
|
|
|
/// <summary>
|
|
|
/// 发票统计报表查询
|
|
|
/// </summary>
|
|
|
[JsonRequestBehavior]
|
|
|
public class MsRptChInvTotalController : Controller
|
|
|
{
|
|
|
//
|
|
|
// GET: /MvcShipping/MsRptInvTotal
|
|
|
public ActionResult Index()
|
|
|
{
|
|
|
return View();
|
|
|
}
|
|
|
|
|
|
public ActionResult BsView()
|
|
|
{
|
|
|
return View();
|
|
|
}
|
|
|
|
|
|
//
|
|
|
// GET:/RptMng/MsRptPcHeadQry/QryData
|
|
|
|
|
|
public ContentResult BsListData(int start, int limit, string condition, string sort, string printstr)
|
|
|
|
|
|
{
|
|
|
var strDa = GetRangDAStr("index", Convert.ToString(Session["USERID"]), Convert.ToString(Session["SHOWNAME"]), Convert.ToString(Session["COMPANYID"]));
|
|
|
|
|
|
if (!string.IsNullOrEmpty(strDa))
|
|
|
{
|
|
|
if (!string.IsNullOrEmpty(condition))
|
|
|
{
|
|
|
condition = condition + " and " + strDa;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
condition = strDa;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
var strSql = new StringBuilder();
|
|
|
strSql.Append("SELECT B.BSNO, B.OPLBNAME, B.BSTYPE,B.CUSTOMERNAME, B.CUSTNO, B.MBLNO, B.HBLNO,B.VESSEL, B.VOYNO, B.INPUTBY, B.CREATETIME, B.BSSTATUS, B.SALE, B.OP, B.DOC,");
|
|
|
strSql.Append("case B.ETD when '1900-01-01 00:00:00.000' then '' else CONVERT(varchar(100), B.ETD,23) end as ETD");
|
|
|
strSql.Append(",case B.OPDATE when '1900-01-01 00:00:00.000' then '' else CONVERT(varchar(100), B.OPDATE,23) end as OPDATE,B.ENTERP");
|
|
|
strSql.Append(",case B.CUSTOMDATE when '1900-01-01 00:00:00.000' then '' else CONVERT(varchar(100), B.CUSTOMDATE,23) end as CUSTOMDATE");
|
|
|
strSql.Append(",B.CUSTSERVICE, B.PORTLOAD, B.PORTDISCHARGE, B.CUSTOMNO, B.ACCDATE,B.CARRIER, B.BSSOURCE, B.LANE, B.FORWARDER,B.NETWEIGHT,B.KGS,B.TEU,B.CNTRTOTAL,B.CORPID");
|
|
|
strSql.Append(",B.TRADETYPE,B.GOODSNAME,B.FEESTATUS");
|
|
|
strSql.Append(",(CASE B.FEESTATUS WHEN 1 THEN '锁定' else '未锁定' end) as FEESTATUSREF ");
|
|
|
strSql.Append(",F.CUSTOMERNAME AS CUSTNAME ");
|
|
|
strSql.Append(",i.INVOICENO,i.INVOICEMAKETIME ");
|
|
|
strSql.Append(",isnull(SUM(CASE F.CURRENCY WHEN 'RMB' THEN CASE WHEN F.FEETYPE=1 THEN ISNULL(F.AMOUNT,0) ELSE -ISNULL(F.AMOUNT,0) END ELSE 0 END),0) AS TTLRMB");
|
|
|
strSql.Append(",isnull(SUM(CASE D.ORIGCURRENCY WHEN 'RMB' THEN CASE WHEN F.FEETYPE=1 THEN ISNULL(ORIGAMOUNT,0) ELSE -ISNULL(ORIGAMOUNT,0) END ELSE 0 END),0) AS INVRMB");
|
|
|
strSql.Append(",isnull(SUM(CASE F.CURRENCY WHEN 'USD' THEN CASE WHEN F.FEETYPE=1 THEN ISNULL(F.AMOUNT,0) ELSE -ISNULL(F.AMOUNT,0) END ELSE 0 END),0) AS TTLUSD");
|
|
|
strSql.Append(",isnull(SUM(CASE D.ORIGCURRENCY WHEN 'USD' THEN CASE WHEN F.FEETYPE=1 THEN ISNULL(ORIGAMOUNT,0) ELSE -ISNULL(ORIGAMOUNT,0) END ELSE 0 END),0) AS INVUSD");
|
|
|
strSql.Append(" FROM CH_FEE_DO D ");
|
|
|
strSql.Append(" LEFT JOIN ch_fee_invoice i ON (D.BILLNO=I.BILLNO) ");
|
|
|
strSql.Append(" INNER JOIN V_OP_BILL B ON (D.BSNO=B.BSNO) ");
|
|
|
strSql.Append(" LEFT JOIN ch_fee F ON (D.FEEID=F.GID) ");
|
|
|
|
|
|
if (!string.IsNullOrEmpty(condition))
|
|
|
{
|
|
|
strSql.Append(" Where " + condition);
|
|
|
}
|
|
|
|
|
|
strSql.Append(" GROUP BY B.BSNO,B.OPLBNAME, B.BSTYPE,B.CUSTOMERNAME, B.CUSTNO, B.MBLNO, B.HBLNO,B.VESSEL, B.VOYNO, B.INPUTBY, B.CREATETIME, B.BSSTATUS, B.SALE, B.OP, B.DOC,");
|
|
|
strSql.Append(" B.ETD");
|
|
|
strSql.Append(" ,B.OPDATE,B.ENTERP");
|
|
|
strSql.Append(" ,B.CUSTOMDATE");
|
|
|
strSql.Append(" ,B.CUSTSERVICE, B.PORTLOAD, B.PORTDISCHARGE, B.CUSTOMNO, B.ACCDATE,B.CARRIER, B.BSSOURCE, B.LANE, B.FORWARDER,B.NETWEIGHT,B.KGS,B.TEU,B.CNTRTOTAL,B.CORPID");
|
|
|
strSql.Append(" ,B.TRADETYPE,B.GOODSNAME,B.FEESTATUS,F.CUSTOMERNAME");
|
|
|
strSql.Append(",i.INVOICENO,i.INVOICEMAKETIME ");
|
|
|
|
|
|
var sortstring = DatasetSort.Getsortstring(sort);
|
|
|
if (!string.IsNullOrEmpty(sortstring))
|
|
|
{
|
|
|
strSql.Append(" order by " + sortstring);
|
|
|
}
|
|
|
else {
|
|
|
|
|
|
strSql.Append(" order by i.INVOICEMAKETIME DESC,i.INVOICENO ");
|
|
|
|
|
|
}
|
|
|
|
|
|
if ((!string.IsNullOrEmpty(printstr)) && (printstr == "true"))
|
|
|
{
|
|
|
|
|
|
var jsonRespose = new JsonResponse
|
|
|
{
|
|
|
Success = true,
|
|
|
Message = "完成",
|
|
|
Data = strSql.ToString()
|
|
|
};
|
|
|
|
|
|
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
|
|
|
var dbparams = new List<CustomDbParamter>();
|
|
|
|
|
|
var paramps_sSQL = new CustomDbParamter();
|
|
|
paramps_sSQL.ParameterName = "@sSQL";
|
|
|
paramps_sSQL.DbType = DbType.String;
|
|
|
paramps_sSQL.Direction = ParameterDirection.Input;
|
|
|
paramps_sSQL.Value = strSql.ToString();
|
|
|
dbparams.Add(paramps_sSQL);
|
|
|
|
|
|
|
|
|
var dbRptResult = PubSysDAL.GetMsSqlPrcDataSet("sMsExesqlQry", dbparams, "Result_Set");
|
|
|
var json = RptHelper.GetRptJsonResult(start, limit, dbRptResult, "Result_Set", true);
|
|
|
return new ContentResult() { Content = json };
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
public static string GetRangDAStr(int type, string optype, string userid, string username, string companyid)
|
|
|
{
|
|
|
string str = "";
|
|
|
string modustr = "";
|
|
|
if (type == 1) {
|
|
|
if (optype == "op_Seae")
|
|
|
{
|
|
|
modustr = "modRecvFeeManagement";
|
|
|
}
|
|
|
else if (optype == "op_Apply")
|
|
|
{
|
|
|
modustr = "modApplyRecvFeeManagement";
|
|
|
}
|
|
|
else if (optype == "op_Seai")
|
|
|
{
|
|
|
modustr = "modSeaiRecvFeeManagement";
|
|
|
}
|
|
|
else if (optype == "op_Aire")
|
|
|
{
|
|
|
modustr = "modAireRecvFeeManagement";
|
|
|
}
|
|
|
else if (optype == "op_Airi")
|
|
|
{
|
|
|
modustr = "modAiriRecvFeeManagement";
|
|
|
}
|
|
|
else if (optype == "op_Seailcl")
|
|
|
{
|
|
|
modustr = "modSeaiLCLRecvFeeManagement";
|
|
|
}
|
|
|
else if (optype == "op_other" || optype == "tMsWlPcHead" || optype == "OpCtnBsCard" || optype == "op_Airn")
|
|
|
{
|
|
|
modustr = "modOtherRecvFeeManagement";
|
|
|
}
|
|
|
else if (optype == "op_Bulk")
|
|
|
{
|
|
|
modustr = "modBulkRecvFeeManagement";
|
|
|
}
|
|
|
else if (optype == "op_railway")
|
|
|
{
|
|
|
modustr = "modRailwayRecvFeeManagement";
|
|
|
}
|
|
|
else if (optype == "import_main")
|
|
|
{
|
|
|
modustr = "modImport_Fee";
|
|
|
}
|
|
|
else if (optype == "WMSMAIN")
|
|
|
{
|
|
|
modustr = "modWMSMAIN";
|
|
|
}
|
|
|
else if (optype == "op_truckbulk")
|
|
|
{
|
|
|
modustr = "modTruckRecvFeeManagement";
|
|
|
}
|
|
|
}
|
|
|
else if (type== 2)
|
|
|
{
|
|
|
if (optype == "op_Seae")
|
|
|
{
|
|
|
modustr = "modPayFeeManagement";
|
|
|
}
|
|
|
else if (optype == "op_Apply")
|
|
|
{
|
|
|
modustr = "modApplyPayFeeManagement";
|
|
|
}
|
|
|
else if (optype == "op_Seai")
|
|
|
{
|
|
|
modustr = "modSeaiPayFeeManagement";
|
|
|
}
|
|
|
else if (optype == "op_Aire")
|
|
|
{
|
|
|
modustr = "modAirePayFeeManagement";
|
|
|
}
|
|
|
else if (optype == "op_Airi")
|
|
|
{
|
|
|
modustr = "modAiriPayFeeManagement";
|
|
|
}
|
|
|
else if (optype == "op_Seailcl")
|
|
|
{
|
|
|
modustr = "modSeaiLCLPayFeeManagement";
|
|
|
}
|
|
|
else if (optype == "op_other" || optype == "tMsWlPcHead" || optype == "OpCtnBsCard" || optype == "op_Airn")
|
|
|
{
|
|
|
modustr = "modOtherPayFeeManagement";
|
|
|
}
|
|
|
else if (optype == "op_Bulk")
|
|
|
{
|
|
|
modustr = "modBulkPayFeeManagement";
|
|
|
}
|
|
|
else if (optype == "op_railway")
|
|
|
{
|
|
|
modustr = "modRailwayPayFeeManagement";
|
|
|
}
|
|
|
else if (optype == "import_main")
|
|
|
{
|
|
|
modustr = "modImport_Fee";
|
|
|
}
|
|
|
else if (optype == "WMSMAIN")
|
|
|
{
|
|
|
modustr = "modWMSMAIN";
|
|
|
}
|
|
|
else if (optype == "op_truckbulk")
|
|
|
{
|
|
|
modustr = "modTruckPayFeeManagement";
|
|
|
}
|
|
|
}
|
|
|
|
|
|
var strSql = new StringBuilder();
|
|
|
strSql.Append("SELECT ");
|
|
|
strSql.Append(" VISIBLERANGE,OPERATERANGE,AUTHORITYID ");
|
|
|
strSql.Append(" from VW_User_Authority ");
|
|
|
strSql.Append(" where [NAME]='" + modustr+ "' and USERID='" + userid + "' and ISDELETE=0");
|
|
|
|
|
|
string visiblerange = "4";
|
|
|
string operaterange = "4";
|
|
|
string AUTHORITYID = "";
|
|
|
|
|
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
|
{
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
visiblerange = Convert.ToString(reader["VISIBLERANGE"]);
|
|
|
operaterange = Convert.ToString(reader["OPERATERANGE"]);
|
|
|
AUTHORITYID = Convert.ToString(reader["AUTHORITYID"]);
|
|
|
|
|
|
break;
|
|
|
}
|
|
|
reader.Close();
|
|
|
}
|
|
|
if (visiblerange == "4")
|
|
|
{
|
|
|
str = " F.ENTEROPERATOR='" + userid + "'";
|
|
|
}
|
|
|
else if (visiblerange == "3")
|
|
|
{
|
|
|
str = " F.ENTEROPERATOR='" + userid + "'";
|
|
|
}
|
|
|
else if (visiblerange == "2")
|
|
|
{
|
|
|
var rangeDa = new RangeDA();
|
|
|
var deptname = rangeDa.GetDEPTNAME(userid);
|
|
|
str = " F.ENTEROPERATOR in (select USERID from user_company where COMPANYID='" + companyid + "') and ENTEROPERATOR in (select userid from user_baseinfo where DEPTNAME='" + deptname + "')";
|
|
|
}
|
|
|
else if (visiblerange == "1")
|
|
|
{
|
|
|
str = " F.ENTEROPERATOR in (select USERID from user_company where COMPANYID='" + companyid + "') ";
|
|
|
}
|
|
|
else if (visiblerange == "5")
|
|
|
{
|
|
|
|
|
|
var userstr = new StringBuilder();
|
|
|
userstr.Append(" select COMPANYID from user_authority_range_company where userid='" + userid + "' and AUTHORITYID='" + AUTHORITYID + "' and VISIBLERANGE=1");
|
|
|
Database userdb = DatabaseFactory.CreateDatabase();
|
|
|
using (IDataReader reader = userdb.ExecuteReader(CommandType.Text, userstr.ToString()))
|
|
|
{
|
|
|
str = "";
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
if (str == "")
|
|
|
{
|
|
|
str = " (F.ENTEROPERATOR in (select USERID from user_company where COMPANYID='" + companyid + "') ";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
str = str + " or F.ENTEROPERATOR in (select USERID from user_company where COMPANYID='" + companyid + "')";
|
|
|
};
|
|
|
}
|
|
|
if (str != "")
|
|
|
str = str + ")";
|
|
|
reader.Close();
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|
|
|
else if (visiblerange == "6")
|
|
|
{
|
|
|
|
|
|
var userstr = new StringBuilder();
|
|
|
userstr.Append(" select OPID,(select SHOWNAME from [user] where GID=user_authority_range_op.OPID) SHOWNAME from user_authority_range_op where userid='" + userid + "' and AUTHORITYID='" + AUTHORITYID + "' and VISIBLERANGE=1");
|
|
|
Database userdb = DatabaseFactory.CreateDatabase();
|
|
|
using (IDataReader reader = userdb.ExecuteReader(CommandType.Text, userstr.ToString()))
|
|
|
{
|
|
|
str = "";
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
if (str == "")
|
|
|
{
|
|
|
str = " (F.ENTEROPERATOR='" + Convert.ToString(reader["OPID"]) + "' ";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
str = str + " or F.ENTEROPERATOR='" + Convert.ToString(reader["OPID"]) + "'";
|
|
|
};
|
|
|
}
|
|
|
if (str != "")
|
|
|
str = str + ")";
|
|
|
reader.Close();
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|
|
|
else if (visiblerange == "0")
|
|
|
{
|
|
|
str = " 1=1 ";
|
|
|
}
|
|
|
return str;
|
|
|
}
|
|
|
|
|
|
public ContentResult BsListData2(int start, int limit, string condition, string sort, string printstr)
|
|
|
{
|
|
|
var strDa = GetRangDAStr(1, "op_Seae", Convert.ToString(Session["USERID"]), Convert.ToString(Session["SHOWNAME"]), Convert.ToString(Session["COMPANYID"]));
|
|
|
|
|
|
if (!string.IsNullOrEmpty(strDa))
|
|
|
{
|
|
|
if (!string.IsNullOrEmpty(condition))
|
|
|
{
|
|
|
condition = condition + " and " + strDa;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
condition = strDa;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
var strSql = new StringBuilder();
|
|
|
strSql.Append("SELECT B.BSNO, B.OPLBNAME, B.BSTYPE,B.CUSTOMERNAME, B.CUSTNO, B.MBLNO, B.HBLNO,B.VESSEL, B.VOYNO, B.INPUTBY, B.CREATETIME, B.BSSTATUS, B.SALE, B.OP, B.DOC,");
|
|
|
strSql.Append("case B.ETD when '1900-01-01 00:00:00.000' then '' else CONVERT(varchar(100), B.ETD,23) end as ETD");
|
|
|
strSql.Append(",case B.OPDATE when '1900-01-01 00:00:00.000' then '' else CONVERT(varchar(100), B.OPDATE,23) end as OPDATE,B.ENTERP");
|
|
|
strSql.Append(",case B.CUSTOMDATE when '1900-01-01 00:00:00.000' then '' else CONVERT(varchar(100), B.CUSTOMDATE,23) end as CUSTOMDATE");
|
|
|
strSql.Append(",B.CUSTSERVICE, B.PORTLOAD, B.PORTDISCHARGE, B.CUSTOMNO, B.ACCDATE,B.CARRIER, B.BSSOURCE, B.LANE, B.FORWARDER,B.NETWEIGHT,B.KGS,B.TEU,B.CNTRTOTAL,B.CORPID");
|
|
|
strSql.Append(",B.TRADETYPE,B.GOODSNAME,B.FEESTATUS");
|
|
|
strSql.Append(",(CASE B.FEESTATUS WHEN 1 THEN '锁定' else '未锁定' end) as FEESTATUSREF ");
|
|
|
strSql.Append(",F.CUSTOMERNAME AS CUSTNAME ");
|
|
|
strSql.Append(",i.INVOICENO,i.INVOICEMAKETIME ");
|
|
|
strSql.Append(",isnull(SUM(CASE F.CURRENCY WHEN 'RMB' THEN CASE WHEN F.FEETYPE=1 THEN ISNULL(F.AMOUNT,0) ELSE -ISNULL(F.AMOUNT,0) END ELSE 0 END),0) AS TTLRMB");
|
|
|
strSql.Append(",isnull(SUM(CASE D.ORIGCURRENCY WHEN 'RMB' THEN CASE WHEN F.FEETYPE=1 THEN ISNULL(ORIGAMOUNT,0) ELSE -ISNULL(ORIGAMOUNT,0) END ELSE 0 END),0) AS INVRMB");
|
|
|
strSql.Append(",isnull(SUM(CASE F.CURRENCY WHEN 'USD' THEN CASE WHEN F.FEETYPE=1 THEN ISNULL(F.AMOUNT,0) ELSE -ISNULL(F.AMOUNT,0) END ELSE 0 END),0) AS TTLUSD");
|
|
|
strSql.Append(",isnull(SUM(CASE D.ORIGCURRENCY WHEN 'USD' THEN CASE WHEN F.FEETYPE=1 THEN ISNULL(ORIGAMOUNT,0) ELSE -ISNULL(ORIGAMOUNT,0) END ELSE 0 END),0) AS INVUSD");
|
|
|
strSql.Append(" FROM ch_fee F ");
|
|
|
strSql.Append(" LEFT JOIN ch_fee_do D ON (D.FEEID=F.GID AND D.CATEGORY=7) ");
|
|
|
strSql.Append(" LEFT JOIN ch_fee_invoice i ON (D.BILLNO=I.BILLNO) ");
|
|
|
strSql.Append(" left JOIN V_OP_BILL B ON (f.BSNO=B.BSNO) ");
|
|
|
|
|
|
if (!string.IsNullOrEmpty(condition))
|
|
|
{
|
|
|
strSql.Append(" Where " + condition);
|
|
|
}
|
|
|
|
|
|
strSql.Append(" GROUP BY B.BSNO,B.OPLBNAME, B.BSTYPE,B.CUSTOMERNAME, B.CUSTNO, B.MBLNO, B.HBLNO,B.VESSEL, B.VOYNO, B.INPUTBY, B.CREATETIME, B.BSSTATUS, B.SALE, B.OP, B.DOC,");
|
|
|
strSql.Append(" B.ETD");
|
|
|
strSql.Append(" ,B.OPDATE,B.ENTERP");
|
|
|
strSql.Append(" ,B.CUSTOMDATE");
|
|
|
strSql.Append(" ,B.CUSTSERVICE, B.PORTLOAD, B.PORTDISCHARGE, B.CUSTOMNO, B.ACCDATE,B.CARRIER, B.BSSOURCE, B.LANE, B.FORWARDER,B.NETWEIGHT,B.KGS,B.TEU,B.CNTRTOTAL,B.CORPID");
|
|
|
strSql.Append(" ,B.TRADETYPE,B.GOODSNAME,B.FEESTATUS,F.CUSTOMERNAME");
|
|
|
strSql.Append(",i.INVOICENO,i.INVOICEMAKETIME ");
|
|
|
|
|
|
var sortstring = DatasetSort.Getsortstring(sort);
|
|
|
if (!string.IsNullOrEmpty(sortstring))
|
|
|
{
|
|
|
strSql.Append(" order by " + sortstring);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
|
|
|
strSql.Append(" order by i.INVOICEMAKETIME DESC,i.INVOICENO ");
|
|
|
|
|
|
}
|
|
|
|
|
|
if ((!string.IsNullOrEmpty(printstr)) && (printstr == "true"))
|
|
|
{
|
|
|
|
|
|
var jsonRespose = new JsonResponse
|
|
|
{
|
|
|
Success = true,
|
|
|
Message = "完成",
|
|
|
Data = strSql.ToString()
|
|
|
};
|
|
|
|
|
|
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
|
|
|
var dbparams = new List<CustomDbParamter>();
|
|
|
|
|
|
var paramps_sSQL = new CustomDbParamter();
|
|
|
paramps_sSQL.ParameterName = "@sSQL";
|
|
|
paramps_sSQL.DbType = DbType.String;
|
|
|
paramps_sSQL.Direction = ParameterDirection.Input;
|
|
|
paramps_sSQL.Value = strSql.ToString();
|
|
|
dbparams.Add(paramps_sSQL);
|
|
|
|
|
|
|
|
|
var dbRptResult = PubSysDAL.GetMsSqlPrcDataSet("sMsExesqlQry", dbparams, "Result_Set");
|
|
|
var json = RptHelper.GetRptJsonResult(start, limit, dbRptResult, "Result_Set", true);
|
|
|
return new ContentResult() { Content = json };
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
public ContentResult InvListData(int start, int limit, string condition, string sort, string printstr)
|
|
|
{
|
|
|
var strDa = GetRangDAStr("index", Convert.ToString(Session["USERID"]), Convert.ToString(Session["SHOWNAME"]), Convert.ToString(Session["COMPANYID"]));
|
|
|
|
|
|
if (!string.IsNullOrEmpty(strDa))
|
|
|
{
|
|
|
if (!string.IsNullOrEmpty(condition))
|
|
|
{
|
|
|
condition = condition + " and " + strDa;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
condition = strDa;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
var strSql = new StringBuilder();
|
|
|
strSql.Append(" SELECT i.GID,i.INVOICENO,i.BILLNO,i.CUSTOMERNAME,i.ACTUALCUSTOMERNAME,i.INVOICECUSTNAME,i.INVOICEMAKETIME,i.BANK,i.ACCOUNT,i.BSNO,i.VESSELVOYAGE,i.ETD,i.POL,i.POD");
|
|
|
strSql.Append(" ,i.FEEITEM,i.AMOUNT,cast(i.INVAMOUNT as decimal(18,2))INVAMOUNT,i.AMOUNTCAPITAL,i.OTCURRAMOUNT,i.CURRENCY,i.REMARK,i.APPLICANT,i.APPLYTIME,i.OPERATOR,i.LICENSECODE,i.TAXCODE,i.INVOICETYPE,i.BILLSTATUS");
|
|
|
strSql.Append(" ,i.ISNEEDPRINT,i.ISNEEDFEE,i.OPERATETIME,i.MBLNO,i.EXCHANGERATE,i.PRINTCAPITAL,i.PRINTAMOUNT,i.PRINTTITLE,i.COMPANYID,i.VOUCHERNO ");
|
|
|
strSql.Append(" ,i.CUSTRATENO,i.CUSTADDRTEL,i.CUSTBANK,i.INVOICECATEGORY,i.ISDELETE,i.DELETEOPERATOR,i.DELETETIME ");
|
|
|
strSql.Append(",(select EnumValueName from tSysEnumValue where LangId=0 and EnumTypeID=97008 and EnumValueID=i.INVOICECATEGORY) as INVOICECATEGORYREF");
|
|
|
strSql.Append(",(select EnumValueName from tSysEnumValue where LangId=0 and EnumTypeID=97009 and EnumValueID=i.INVOICETYPE) as INVOICETYPEREF");
|
|
|
strSql.Append(",(case i.billstatus when 1 then '已锁定' else '未锁定' end) as BILLSTATUSREF");
|
|
|
strSql.Append(",(select ShowName from [user] where GID=i.OPERATOR) as OPERATORNAME");
|
|
|
strSql.Append(",(select ShowName from [user] where GID=i.DELETEOPERATOR) as DELOPERATORNAME");
|
|
|
strSql.Append(",isnull(SUM(CASE D.ORIGCURRENCY WHEN 'RMB' THEN CASE WHEN D.FEETYPE=1 THEN ISNULL(ORIGAMOUNT,0) ELSE -ISNULL(ORIGAMOUNT,0) END ELSE 0 END),0) AS INVRMB");
|
|
|
strSql.Append(",isnull(SUM(CASE D.ORIGCURRENCY WHEN 'USD' THEN CASE WHEN D.FEETYPE=1 THEN ISNULL(ORIGAMOUNT,0) ELSE -ISNULL(ORIGAMOUNT,0) END ELSE 0 END),0) AS INVUSD");
|
|
|
strSql.Append(" FROM ch_fee_invoice i ");
|
|
|
strSql.Append(" left join CH_FEE_DO D on (D.BILLNO=i.BILLNO)");
|
|
|
|
|
|
if (!string.IsNullOrEmpty(condition))
|
|
|
{
|
|
|
strSql.Append(" Where " + condition);
|
|
|
}
|
|
|
|
|
|
strSql.Append(" GROUP BY i.GID,i.INVOICENO,i.BILLNO,i.CUSTOMERNAME,i.ACTUALCUSTOMERNAME,i.INVOICECUSTNAME,i.INVOICEMAKETIME,i.BANK,i.ACCOUNT,i.BSNO,i.VESSELVOYAGE,i.ETD,i.POL,i.POD");
|
|
|
strSql.Append(" ,i.FEEITEM,i.AMOUNT,i.INVAMOUNT,i.AMOUNTCAPITAL,i.OTCURRAMOUNT,i.CURRENCY,i.REMARK,i.APPLICANT,i.APPLYTIME,i.OPERATOR,i.LICENSECODE,i.TAXCODE,i.INVOICETYPE,i.BILLSTATUS");
|
|
|
strSql.Append(" ,i.ISNEEDPRINT,i.ISNEEDFEE,i.OPERATETIME,i.MBLNO,i.EXCHANGERATE,i.PRINTCAPITAL,i.PRINTAMOUNT,i.PRINTTITLE,i.COMPANYID,i.VOUCHERNO ");
|
|
|
strSql.Append(" ,i.CUSTRATENO,i.CUSTADDRTEL,i.CUSTBANK,i.INVOICECATEGORY,i.ISDELETE,i.DELETEOPERATOR,i.DELETETIME ");
|
|
|
|
|
|
|
|
|
var sortstring = DatasetSort.Getsortstring(sort);
|
|
|
if (!string.IsNullOrEmpty(sortstring))
|
|
|
{
|
|
|
strSql.Append(" order by " + sortstring);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
|
|
|
strSql.Append(" order by i.INVOICEMAKETIME DESC");
|
|
|
|
|
|
}
|
|
|
|
|
|
if ((!string.IsNullOrEmpty(printstr)) && (printstr == "true"))
|
|
|
{
|
|
|
|
|
|
var jsonRespose = new JsonResponse
|
|
|
{
|
|
|
Success = true,
|
|
|
Message = "完成",
|
|
|
Data = strSql.ToString()
|
|
|
};
|
|
|
|
|
|
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
|
|
|
var dbparams = new List<CustomDbParamter>();
|
|
|
|
|
|
var paramps_sSQL = new CustomDbParamter();
|
|
|
paramps_sSQL.ParameterName = "@sSQL";
|
|
|
paramps_sSQL.DbType = DbType.String;
|
|
|
paramps_sSQL.Direction = ParameterDirection.Input;
|
|
|
paramps_sSQL.Value = strSql.ToString();
|
|
|
dbparams.Add(paramps_sSQL);
|
|
|
|
|
|
|
|
|
var dbRptResult = PubSysDAL.GetMsSqlPrcDataSet("sMsExesqlQry", dbparams, "Result_Set");
|
|
|
var json = RptHelper.GetRptJsonResult(start, limit, dbRptResult, "Result_Set", true);
|
|
|
return new ContentResult() { Content = json };
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
public ContentResult GetSqlStr(string condition)
|
|
|
{
|
|
|
var strDa = GetRangDAStr("index", Convert.ToString(Session["USERID"]), Convert.ToString(Session["SHOWNAME"]), Convert.ToString(Session["COMPANYID"]));
|
|
|
|
|
|
if (!string.IsNullOrEmpty(strDa))
|
|
|
{
|
|
|
if (!string.IsNullOrEmpty(condition))
|
|
|
{
|
|
|
condition = condition + " and " + strDa;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
condition = strDa;
|
|
|
}
|
|
|
}
|
|
|
var jsonRespose = new JsonResponse
|
|
|
{
|
|
|
Success = true,
|
|
|
Message = "完成",
|
|
|
Data = condition
|
|
|
};
|
|
|
|
|
|
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public ContentResult CustListData(int start, int limit, string condition, string sort, string printstr)
|
|
|
{
|
|
|
var strDa = GetRangDAStr("index", Convert.ToString(Session["USERID"]), Convert.ToString(Session["SHOWNAME"]), Convert.ToString(Session["COMPANYID"]));
|
|
|
|
|
|
if (!string.IsNullOrEmpty(strDa))
|
|
|
{
|
|
|
if (!string.IsNullOrEmpty(condition))
|
|
|
{
|
|
|
condition = condition + " and " + strDa;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
condition = strDa;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
var strSql = new StringBuilder();
|
|
|
strSql.Append("SELECT F.CUSTOMERNAME AS CUSTNAME ");
|
|
|
strSql.Append(",CASE F.FEETYPE WHEN 1 THEN '收' WHEN 2 THEN '付' ELSE '' END AS FEETYPEREF");
|
|
|
strSql.Append(",isnull(SUM(CASE CURRENCY WHEN 'RMB' THEN ISNULL(AMOUNT,0) ELSE 0 END),0) AS TTLRMB,");
|
|
|
strSql.Append("isnull(SUM(CASE CURRENCY WHEN 'RMB' THEN ISNULL(INVOICE,0) ELSE 0 END),0) AS INVRMB,");
|
|
|
strSql.Append("isnull(SUM(CASE CURRENCY WHEN 'RMB' THEN ISNULL(AMOUNT-ISNULL(INVOICE,0),0) ELSE 0 END),0) AS BALINVRMB,");
|
|
|
strSql.Append("isnull(SUM(CASE CURRENCY WHEN 'RMB' THEN ISNULL(SETTLEMENT,0) ELSE 0 END),0) AS STLRMB,");
|
|
|
strSql.Append("isnull(SUM(CASE WHEN CURRENCY='RMB' AND ISNULL(INVOICE,0)<>0 THEN ISNULL(CASE WHEN INVOICE>ISNULL(SETTLEMENT,0) THEN INVOICE-ISNULL(SETTLEMENT,0) ELSE 0 END,0) ELSE 0 END),0) AS INVNOSTLRMB,");
|
|
|
strSql.Append("isnull(SUM(CASE WHEN CURRENCY='RMB' AND ISNULL(SETTLEMENT,0)<>0 THEN ISNULL(CASE WHEN SETTLEMENT>ISNULL(INVOICE,0) THEN SETTLEMENT-ISNULL(INVOICE,0) ELSE 0 END,0) ELSE 0 END),0) AS STLNOINVRMB,");
|
|
|
strSql.Append("isnull(SUM(CASE CURRENCY WHEN 'USD' THEN ISNULL(AMOUNT,0) ELSE 0 END),0) AS TTLUSD,");
|
|
|
strSql.Append("isnull(SUM(CASE CURRENCY WHEN 'USD' THEN ISNULL(INVOICE,0) ELSE 0 END),0) AS INVUSD,");
|
|
|
strSql.Append("isnull(SUM(CASE CURRENCY WHEN 'USD' THEN ISNULL(AMOUNT-ISNULL(INVOICE,0),0) ELSE 0 END),0) AS BALINVUSD,");
|
|
|
strSql.Append("isnull(SUM(CASE CURRENCY WHEN 'USD' THEN ISNULL(SETTLEMENT,0) ELSE 0 END),0) AS STLUSD,");
|
|
|
strSql.Append("isnull(SUM(CASE WHEN CURRENCY='USD' AND ISNULL(INVOICE,0)<>0 THEN ISNULL(CASE WHEN INVOICE>ISNULL(SETTLEMENT,0) THEN INVOICE-ISNULL(SETTLEMENT,0) ELSE 0 END,0) ELSE 0 END),0) AS INVNOSTLUSD,");
|
|
|
strSql.Append("isnull(SUM(CASE WHEN CURRENCY='USD' AND ISNULL(SETTLEMENT,0)<>0 THEN ISNULL(CASE WHEN SETTLEMENT>ISNULL(INVOICE,0) THEN SETTLEMENT-ISNULL(INVOICE,0) ELSE 0 END,0) ELSE 0 END),0) AS STLNOINVUSD,");
|
|
|
strSql.Append("isnull(SUM(ISNULL(AMOUNT,0) * ISNULL(EXCHANGERATE,0)),0) AS TTL,");
|
|
|
strSql.Append("isnull(SUM(ISNULL(INVOICE,0) * ISNULL(EXCHANGERATE,0)),0) AS TTLINV,");
|
|
|
strSql.Append("isnull(SUM(ISNULL(AMOUNT-ISNULL(INVOICE,0),0) * ISNULL(EXCHANGERATE,0)),0) AS BALINVTTL,");
|
|
|
strSql.Append("isnull(SUM(ISNULL(SETTLEMENT,0) * ISNULL(EXCHANGERATE,0)),0) AS STLTTL,");
|
|
|
strSql.Append("isnull(SUM(CASE WHEN ISNULL(INVOICE,0)<>0 THEN ISNULL(CASE WHEN INVOICE>ISNULL(SETTLEMENT,0) THEN INVOICE-ISNULL(SETTLEMENT,0) ELSE 0 END,0)* ISNULL(EXCHANGERATE,0) ELSE 0 END),0) AS INVNOSTL,");
|
|
|
strSql.Append("isnull(SUM(CASE WHEN ISNULL(SETTLEMENT,0)<>0 THEN ISNULL(CASE WHEN SETTLEMENT>ISNULL(INVOICE,0) THEN SETTLEMENT-ISNULL(INVOICE,0) ELSE 0 END,0)* ISNULL(EXCHANGERATE,0) ELSE 0 END),0) AS STLNOINV");
|
|
|
|
|
|
strSql.Append(" FROM CH_FEE F ");
|
|
|
strSql.Append("INNER JOIN V_OP_BILL B ON (F.BSNO=B.BSNO) ");
|
|
|
|
|
|
if (!string.IsNullOrEmpty(condition))
|
|
|
{
|
|
|
strSql.Append(" Where " + condition);
|
|
|
}
|
|
|
strSql.Append(" Group by F.CUSTOMERNAME,F.FEETYPE ");
|
|
|
|
|
|
var sortstring = DatasetSort.Getsortstring(sort);
|
|
|
if (!string.IsNullOrEmpty(sortstring))
|
|
|
{
|
|
|
strSql.Append(" order by " + sortstring);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
|
|
|
strSql.Append(" order by F.CUSTOMERNAME");
|
|
|
|
|
|
}
|
|
|
|
|
|
if ((!string.IsNullOrEmpty(printstr)) && (printstr == "true"))
|
|
|
{
|
|
|
|
|
|
var jsonRespose = new JsonResponse
|
|
|
{
|
|
|
Success = true,
|
|
|
Message = "完成",
|
|
|
Data = strSql.ToString()
|
|
|
};
|
|
|
|
|
|
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
|
|
|
var dbparams = new List<CustomDbParamter>();
|
|
|
|
|
|
var paramps_sSQL = new CustomDbParamter();
|
|
|
paramps_sSQL.ParameterName = "@sSQL";
|
|
|
paramps_sSQL.DbType = DbType.String;
|
|
|
paramps_sSQL.Direction = ParameterDirection.Input;
|
|
|
paramps_sSQL.Value = strSql.ToString();
|
|
|
dbparams.Add(paramps_sSQL);
|
|
|
|
|
|
|
|
|
|
|
|
var dbRptResult = PubSysDAL.GetMsSqlPrcDataSet("sMsExesqlQry", dbparams, "Result_Set");
|
|
|
var json = RptHelper.GetRptJsonResult(start, limit, dbRptResult, "Result_Set", true);
|
|
|
return new ContentResult() { Content = json };
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public ContentResult SumListData(int start, int limit, string condition, string sort)
|
|
|
{
|
|
|
var strDa = GetRangDAStr("index", Convert.ToString(Session["USERID"]), Convert.ToString(Session["SHOWNAME"]), Convert.ToString(Session["COMPANYID"]));
|
|
|
|
|
|
if (!string.IsNullOrEmpty(strDa))
|
|
|
{
|
|
|
if (!string.IsNullOrEmpty(condition))
|
|
|
{
|
|
|
condition = condition + " and " + strDa;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
condition = strDa;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
var strSql = new StringBuilder();
|
|
|
strSql.Append("SELECT 1 AS NO");
|
|
|
strSql.Append(",isnull(SUM(CASE F.CURRENCY WHEN 'RMB' THEN CASE WHEN D.FEETYPE=1 THEN ISNULL(F.AMOUNT,0) ELSE -ISNULL(F.AMOUNT,0) END ELSE 0 END),0) AS TTLRMB");
|
|
|
strSql.Append(",isnull(SUM(CASE D.ORIGCURRENCY WHEN 'RMB' THEN CASE WHEN D.FEETYPE=1 THEN ISNULL(ORIGAMOUNT,0) ELSE -ISNULL(ORIGAMOUNT,0) END ELSE 0 END),0) AS INVRMB");
|
|
|
strSql.Append(",isnull(SUM(CASE F.CURRENCY WHEN 'USD' THEN CASE WHEN D.FEETYPE=1 THEN ISNULL(F.AMOUNT,0) ELSE -ISNULL(F.AMOUNT,0) END ELSE 0 END),0) AS TTLUSD");
|
|
|
strSql.Append(",isnull(SUM(CASE D.ORIGCURRENCY WHEN 'USD' THEN CASE WHEN D.FEETYPE=1 THEN ISNULL(ORIGAMOUNT,0) ELSE -ISNULL(ORIGAMOUNT,0) END ELSE 0 END),0) AS INVUSD");
|
|
|
strSql.Append(",(select sum(cast(INVAMOUNT as decimal(18,2))) from ch_fee_invoice i ");
|
|
|
if (!string.IsNullOrEmpty(condition))
|
|
|
{
|
|
|
strSql.Append(" Where " + condition);
|
|
|
}
|
|
|
strSql.Append(") AS TTLINV");
|
|
|
strSql.Append(" FROM CH_FEE_DO D ");
|
|
|
strSql.Append(" LEFT JOIN ch_fee_invoice i ON (D.BILLNO=I.BILLNO) ");
|
|
|
strSql.Append(" INNER JOIN V_OP_BILL B ON (D.BSNO=B.BSNO) ");
|
|
|
strSql.Append(" LEFT JOIN ch_fee F ON (D.FEEID=F.GID) ");
|
|
|
|
|
|
if (!string.IsNullOrEmpty(condition))
|
|
|
{
|
|
|
strSql.Append(" Where " + condition);
|
|
|
}
|
|
|
|
|
|
|
|
|
var dbparams = new List<CustomDbParamter>();
|
|
|
|
|
|
var paramps_sSQL = new CustomDbParamter();
|
|
|
paramps_sSQL.ParameterName = "@sSQL";
|
|
|
paramps_sSQL.DbType = DbType.String;
|
|
|
paramps_sSQL.Direction = ParameterDirection.Input;
|
|
|
paramps_sSQL.Value = strSql.ToString();
|
|
|
dbparams.Add(paramps_sSQL);
|
|
|
|
|
|
|
|
|
|
|
|
var dbRptResult = PubSysDAL.GetMsSqlPrcDataSet("sMsExesqlQry", dbparams, "Result_Set");
|
|
|
var json = RptHelper.GetRptJsonResult(start, limit, dbRptResult, "Result_Set", true);
|
|
|
return new ContentResult() { Content = json };
|
|
|
}
|
|
|
public static string GetRangDAStr(string tb, string userid, string usercode, string companyid)
|
|
|
{
|
|
|
string str = "";
|
|
|
var strSql = new StringBuilder();
|
|
|
strSql.Append("SELECT ");
|
|
|
strSql.Append(" VISIBLERANGE,OPERATERANGE ");
|
|
|
strSql.Append(" from VW_User_Authority ");
|
|
|
strSql.Append(" where [NAME]='modInvTotalreportRange' and USERID='" + userid + "' and ISDELETE=0");
|
|
|
|
|
|
string visiblerange = "4";
|
|
|
string operaterange = "4";
|
|
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
|
|
|
|
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
|
{
|
|
|
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
visiblerange = Convert.ToString(reader["VISIBLERANGE"]);
|
|
|
operaterange = Convert.ToString(reader["OPERATERANGE"]);
|
|
|
break;
|
|
|
}
|
|
|
reader.Close();
|
|
|
}
|
|
|
if (visiblerange == "4")
|
|
|
{
|
|
|
str = "1=2";
|
|
|
}
|
|
|
else if (visiblerange == "3")
|
|
|
{
|
|
|
|
|
|
str = " (i.OPERATOR='" + usercode+"')";
|
|
|
|
|
|
}
|
|
|
else if (visiblerange == "2")
|
|
|
{
|
|
|
if (tb == "index")
|
|
|
{
|
|
|
var rangeDa = new RangeDA();
|
|
|
var deptname = rangeDa.GetDEPTNAME(userid);
|
|
|
var userstr = new StringBuilder();
|
|
|
userstr.Append(" select GID from [user] where GID in (select USERID from user_company where COMPANYID='" + companyid + "') and GID in (select userid from user_baseinfo where DEPTNAME='" + deptname + "')");
|
|
|
Database userdb = DatabaseFactory.CreateDatabase();
|
|
|
using (IDataReader reader = userdb.ExecuteReader(CommandType.Text, userstr.ToString()))
|
|
|
{
|
|
|
str = "";
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
if (str == "")
|
|
|
{
|
|
|
str = " (i.OPERATOR='" + Convert.ToString(reader["GID"]) + "'";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
str = str + " or i.OPERATOR='" + Convert.ToString(reader["GID"]) + "'";
|
|
|
};
|
|
|
}
|
|
|
str =str+ ")";
|
|
|
reader.Close();
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
str = " UPPER(i.COMPANYID)='" + companyid + "'";
|
|
|
}
|
|
|
|
|
|
}
|
|
|
else if (visiblerange == "1")
|
|
|
{
|
|
|
str = " UPPER(i.COMPANYID)='" + companyid + "'";
|
|
|
}
|
|
|
|
|
|
return str;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#region 参照部分
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|