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.
2225 lines
104 KiB
C#
2225 lines
104 KiB
C#
using System;
|
|
using System.Data;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using DSWeb.Areas.Import.Models.Finance;
|
|
using DSWeb.Areas.Import.Models.Comm;
|
|
using Microsoft.Practices.EnterpriseLibrary.Data;
|
|
using HcUtility.Comm;
|
|
using WebSqlHelper;
|
|
using System.Data.SqlClient;
|
|
using DSWeb.EntityDA;
|
|
|
|
namespace DSWeb.Areas.Import.DAL.Finance
|
|
{
|
|
public partial class FinanceDAL
|
|
{
|
|
#region 费用参数
|
|
private const string PARM_FEE_GID = "@gid";
|
|
private const string PARM_FEE_BSNO = "@bsno";
|
|
private const string PARM_FEE_TYPE = "@fee_type";
|
|
private const string PARM_FEE_NAME = "@fee_name";
|
|
private const string PARM_FEE_DESCRIPTION = "@fee_description";
|
|
private const string PARM_FEE_CUSTOMER_TYPE = "@customer_type";
|
|
private const string PARM_FEE_CUSTOMER_NAME = "@customer_name";
|
|
private const string PARM_FEE_UNIT = "@unit";
|
|
private const string PARM_FEE_UNIT_PRICE = "@unit_price";
|
|
private const string PARM_FEE_TAXUNIT_PRICE = "@taxunit_price";
|
|
private const string PARM_FEE_QUANTITY = "@quantity";
|
|
private const string PARM_FEE_AMOUNT = "@amount";
|
|
private const string PARM_FEE_CURRENCY = "@currency";
|
|
private const string PARM_FEE_EXCHANGE_RATE = "@exchange_rate";
|
|
private const string PARM_FEE_REASON = "@reason";
|
|
private const string PARM_FEE_REMARK = "@remark";
|
|
private const string PARM_FEE_COMMISSION_RATE = "@comm_rate";
|
|
private const string PARM_FEE_SETTLEMENT = "@settlement";
|
|
private const string PARM_FEE_INVOICE = "@invoice";
|
|
private const string PARM_FEE_ORDER_AMOUNT = "@order_amount";
|
|
private const string PARM_FEE_ORDER_INVOCE = "@order_invoice";
|
|
private const string PARM_FEE_SUBMIT_DATE = "@submit_date";
|
|
private const string PARM_FEE_AUDIT_OPERATOR = "@audit_operator";
|
|
private const string PARM_FEE_AUDIT_DATE = "@audit_date";
|
|
private const string PARM_FEE_ENTER_OPERATOR = "@enter_operator";
|
|
private const string PARM_FEE_ENTER_DATE = "@enter_date";
|
|
private const string PARM_FEE_DEBITNO = "@debitno";
|
|
private const string PARM_FEE_ISDEBIT = "@is_debit";
|
|
private const string PARM_FEE_ISOPEN = "@is_open";
|
|
private const string PARM_FEE_ISADVANCEPAY = "@is_advance_pay";
|
|
private const string PARM_FEE_SORT = "@sort";
|
|
private const string PARM_FEE_ISINVOICE = "@is_invoice";
|
|
private const string PARM_FEE_STATUS = "@fee_status";
|
|
private const string PARM_FEE_FRT = "@fee_frt";
|
|
private const string PARM_FEE_AUDIT_STATUS = "@audit_status";
|
|
private const string PARM_FEE_AUDIT_WMSOUTBSNO = "@WMSOUTBSNO";
|
|
private const string PARM_FEE_TAXRATE = "@taxrate";
|
|
private const string PARM_FEE_NOTAXAMOUNT = "@notaxamount";
|
|
private const string PARM_FEE_ACCTAXRATE = "@acctaxrate";
|
|
private const string PARM_FEE_LINENUM = "@LINENUM";
|
|
private const string PARM_FEE_MODIFIEDUSER = "@MODIFIEDUSER";
|
|
private const string PARM_FEE_MODIFIEDTIME = "@MODIFIEDTIME";
|
|
private const string PARM_FEE_F_NO = "@F_NO";
|
|
|
|
#endregion
|
|
static private SqlParameter[] GetInsertParms()
|
|
{
|
|
SqlParameter[] parms = new SqlParameter[]{
|
|
new SqlParameter(PARM_FEE_GID,SqlDbType.VarChar,36),
|
|
new SqlParameter(PARM_FEE_BSNO,SqlDbType.VarChar,60),
|
|
new SqlParameter(PARM_FEE_TYPE,SqlDbType.VarChar,20),
|
|
new SqlParameter(PARM_FEE_NAME,SqlDbType.VarChar,100),
|
|
new SqlParameter(PARM_FEE_DESCRIPTION,SqlDbType.VarChar,100),
|
|
new SqlParameter(PARM_FEE_CUSTOMER_TYPE,SqlDbType.VarChar,50),
|
|
new SqlParameter(PARM_FEE_CUSTOMER_NAME,SqlDbType.VarChar,50),
|
|
new SqlParameter(PARM_FEE_UNIT,SqlDbType.VarChar,20),
|
|
new SqlParameter(PARM_FEE_UNIT_PRICE,SqlDbType.Decimal,18),
|
|
new SqlParameter(PARM_FEE_QUANTITY,SqlDbType.Decimal,18),
|
|
new SqlParameter(PARM_FEE_AMOUNT,SqlDbType.Decimal,18),
|
|
new SqlParameter(PARM_FEE_CURRENCY,SqlDbType.VarChar,20),
|
|
new SqlParameter(PARM_FEE_EXCHANGE_RATE,SqlDbType.Decimal,18),
|
|
new SqlParameter(PARM_FEE_REASON,SqlDbType.VarChar,50),
|
|
new SqlParameter(PARM_FEE_REMARK,SqlDbType.VarChar,100),
|
|
new SqlParameter(PARM_FEE_COMMISSION_RATE,SqlDbType.Decimal,18),
|
|
new SqlParameter(PARM_FEE_ENTER_OPERATOR,SqlDbType.VarChar,50),
|
|
new SqlParameter(PARM_FEE_ENTER_DATE,SqlDbType.SmallDateTime),
|
|
new SqlParameter(PARM_FEE_ISOPEN,SqlDbType.VarChar,1),
|
|
new SqlParameter(PARM_FEE_ISADVANCEPAY,SqlDbType.VarChar,1),
|
|
new SqlParameter(PARM_FEE_SORT,SqlDbType.Int),
|
|
new SqlParameter(PARM_FEE_STATUS,SqlDbType.VarChar,20),
|
|
new SqlParameter(PARM_FEE_FRT,SqlDbType.VarChar,20),
|
|
new SqlParameter(PARM_FEE_TAXRATE,SqlDbType.Decimal,18),
|
|
new SqlParameter(PARM_FEE_NOTAXAMOUNT,SqlDbType.Decimal,18),
|
|
new SqlParameter(PARM_FEE_ACCTAXRATE,SqlDbType.Decimal,18),
|
|
new SqlParameter(PARM_FEE_LINENUM,SqlDbType.Decimal,18),
|
|
new SqlParameter(PARM_FEE_TAXUNIT_PRICE,SqlDbType.Decimal,18),
|
|
new SqlParameter(PARM_FEE_MODIFIEDUSER,SqlDbType.VarChar,50),
|
|
new SqlParameter(PARM_FEE_MODIFIEDTIME,SqlDbType.DateTime),
|
|
new SqlParameter(PARM_FEE_F_NO,SqlDbType.VarChar,50),
|
|
new SqlParameter(PARM_FEE_SETTLEMENT,SqlDbType.Decimal,18)
|
|
|
|
};
|
|
|
|
return parms;
|
|
}
|
|
private const string SQL_INSERT_FEE = " INSERT INTO ch_fee(GID, BSNO, FEETYPE, FEENAME, FEEDESCRIPTION, CUSTOMERTYPE, CUSTOMERNAME, UNIT, UNITPRICE, QUANTITY, AMOUNT, CURRENCY, "
|
|
+ " EXCHANGERATE, REASON, REMARK, COMMISSIONRATE,ENTEROPERATOR, ENTERDATE,ISOPEN, ISADVANCEDPAY, SORT, FEESTATUS, FEEFRT, "
|
|
+ " TAXRATE,NOTAXAMOUNT,ACCTAXRATE,LINENUM,TAXUNITPRICE,MODIFIEDUSER,MODIFIEDTIME,F_NO,SETTLEMENT) "
|
|
+ " VALUES "
|
|
+ " (@gid,@bsno,@fee_type,@fee_name,@fee_description,@customer_type,@customer_name,@unit,@unit_price,@quantity,@amount,@currency, "
|
|
+ " @exchange_rate,@reason,@remark,@comm_rate,@enter_operator,@enter_date,@is_open,@is_advance_pay,@sort,@fee_status,@fee_frt, "
|
|
+ " @taxrate,@notaxamount,@acctaxrate,@LINENUM,@taxunit_price,@MODIFIEDUSER,@MODIFIEDTIME,@F_NO,@SETTLEMENT)";//DateTime.Now.ToString()
|
|
|
|
|
|
#region 融资业务列表
|
|
|
|
static public List<Financemb> GetDataList(string strCondition, string sort)
|
|
{
|
|
var strSql = new StringBuilder();
|
|
strSql.Append(" select F_NO,F_CURRENCY,F_Rate,F_RMB,F_AMOUNT,CUSTOMER,f.REMARK,f.OP,dbo.trimtime(ENTERDATE) ENTERDATE ");
|
|
strSql.Append(" ,dbo.trimdate(STARTDATE) STARTDATE,dbo.trimdate(ENDDATE) ENDDATE ");
|
|
strSql.Append(" ,DAYS,isnull(BANK_INTEREST_RATE,0) BANK_INTEREST_RATE,isnull(BANK_INTEREST,0) BANK_INTEREST ");
|
|
strSql.Append(" ,isnull(CUST_INTEREST_RATE,0) CUST_INTEREST_RATE,isnull(CUST_INTEREST,0) CUST_INTEREST ");
|
|
strSql.Append(" ,isnull(BANK_EXCHANGERATE,0) BANK_EXCHANGERATE,isnull(CUST_EXCHANGERATE,0) CUST_EXCHANGERATE ");
|
|
strSql.Append(" ,MAINNO,F_STATUS,FINANCE_BANK,M.[HTH],M.[seller],M.[company],M.[buyer], M.[BillNo],dbo.trimdate(BANKENDDATE) BANKENDDATE ");
|
|
strSql.Append(" ,dbo.trimdate(ArrivalDate) ArrivalDate ");
|
|
strSql.Append(" ,(select EnumValueName from tSysEnumValue where LangId=0 and EnumTypeID=10 and EnumValueID=M.port) as portRef ");
|
|
strSql.Append(" ,(select Name from company where gid=M.company) as companyname ,(select showname from [user] where gid=f.OP) as OPREF ");
|
|
strSql.Append(" ,isnull(CUSTSTLAMOUNT,0) CUSTSTLAMOUNT,F_RMB-isnull(CUSTSTLAMOUNT,0) AS CUSTBALAMOUNT ");//
|
|
strSql.Append(" ,(select sum(F_AMOUNT) from IMPORT_FINANCE_BODY where F_NO=f.F_NO and F_TYPE='2') BANKSTLAMOUNT,F_AMOUNT-(select sum(F_AMOUNT) from IMPORT_FINANCE_BODY where F_NO=f.F_NO and F_TYPE='2') AS BANKBALAMOUNT ");
|
|
strSql.Append(" ,dbo.f_financeBank(f.F_NO) BANKNAME ");
|
|
strSql.Append(" ,case when isnull(CUSTSTLAMOUNT,0)=0 then '未还款' when isnull(CUSTSTLAMOUNT,0)>=F_RMB then '全部归还' ");
|
|
strSql.Append(" when isnull(CUSTSTLAMOUNT,0)>0 and isnull(CUSTSTLAMOUNT,0)<F_RMB then '部分归还' end CUSTSTLSTATUS ");
|
|
strSql.Append(" from import_finance f left join [dbo].[Import_main] M on (M.ContractNo=f.MAINNO) ");
|
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
{
|
|
strSql.Append(" where " + strCondition);
|
|
}
|
|
return SetDateList(strSql);
|
|
}
|
|
|
|
|
|
static public Financemb GetData(string condition,string sort)
|
|
{
|
|
var list = GetDataList(condition,sort);
|
|
if (list.Count > 0)
|
|
return list[0];
|
|
|
|
return new Financemb();
|
|
}
|
|
|
|
private static List<Financemb> SetDateList(StringBuilder strSql)
|
|
{
|
|
var headList = new List<Financemb>();
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
{
|
|
while (reader.Read())
|
|
{
|
|
Financemb data = new Financemb();
|
|
#region Set DB data to Object
|
|
|
|
data.F_NO = Convert.ToString(reader["F_NO"]);
|
|
if (reader["F_AMOUNT"] != DBNull.Value)
|
|
data.F_AMOUNT = Convert.ToDecimal(reader["F_AMOUNT"]);
|
|
//headRow.SETTLETYPE = ds.Tables[0].Rows[0]["FSETTLCODE"].ToString() == "" ? 0 : int.Parse(ds.Tables[0].Rows[0]["FSETTLCODE"].ToString());//结算方式
|
|
|
|
//字段过滤器(判断是否存在该列)
|
|
//reader.GetSchemaTable().DefaultView.RowFilter = "ColumnName= 'F_Rate'";
|
|
//if (reader.GetSchemaTable().DefaultView.Count > 0)
|
|
//{
|
|
if (reader["F_Rate"] != DBNull.Value)
|
|
//data.F_Rate = Convert.ToDecimal(reader["F_Rate"]);
|
|
data.F_Rate = reader["F_Rate"].ToString() == "" ? 1 : Convert.ToDecimal( reader["F_Rate"]);//融资汇率
|
|
if (reader["F_RMB"] != DBNull.Value)
|
|
//data.F_RMB = Convert.ToDecimal(reader["F_RMB"]);
|
|
data.F_RMB = reader["F_RMB"].ToString() == "" ? 0 : Convert.ToDecimal(reader["F_RMB"]);//融资金额折合RMB
|
|
//}
|
|
|
|
data.F_CURRENCY = Convert.ToString(reader["F_CURRENCY"]);
|
|
data.CUSTOMER = Convert.ToString(reader["CUSTOMER"]);
|
|
data.REMARK = Convert.ToString(reader["REMARK"]);
|
|
data.OP = Convert.ToString(reader["OP"]);
|
|
data.OPREF = Convert.ToString(reader["OPREF"]);
|
|
data.ENTERDATE = Convert.ToString(reader["ENTERDATE"]);
|
|
if (!string.IsNullOrEmpty( reader["STARTDATE"].ToString() ))
|
|
data.STARTDATE = Convert.ToDateTime(reader["STARTDATE"]).ToString("yyyy-MM-dd");//到港日期
|
|
if (!string.IsNullOrEmpty(reader["ENDDATE"].ToString()))
|
|
data.ENDDATE = Convert.ToDateTime(reader["ENDDATE"]).ToString("yyyy-MM-dd");//到港日期
|
|
if (!string.IsNullOrEmpty(reader["BANKENDDATE"].ToString()))
|
|
data.BANKENDDATE = Convert.ToDateTime(reader["BANKENDDATE"]).ToString("yyyy-MM-dd");//到港日期
|
|
if (!string.IsNullOrEmpty(reader["DAYS"] .ToString()))
|
|
data.DAYS = Convert.ToInt16(reader["DAYS"]);
|
|
data.BANK_INTEREST_RATE = Convert.ToString(reader["BANK_INTEREST_RATE"]);
|
|
data.BANK_INTEREST = Convert.ToString(reader["BANK_INTEREST"]);
|
|
data.CUST_INTEREST_RATE = Convert.ToString(reader["CUST_INTEREST_RATE"]);
|
|
data.CUST_INTEREST = Convert.ToString(reader["CUST_INTEREST"]);
|
|
data.BANK_EXCHANGERATE = Convert.ToString(reader["BANK_EXCHANGERATE"]);
|
|
data.CUST_EXCHANGERATE = Convert.ToString(reader["CUST_EXCHANGERATE"]);
|
|
data.MAINNO = Convert.ToString(reader["MAINNO"]);
|
|
data.F_STATUS = Convert.ToString(reader["F_STATUS"]);
|
|
data.FINANCE_BANK = Convert.ToString(reader["FINANCE_BANK"]);
|
|
|
|
if (reader["CUSTSTLAMOUNT"] != DBNull.Value)
|
|
data.CUSTSTLAMOUNT = reader["CUSTSTLAMOUNT"].ToString() == "" ? 0 : Convert.ToDecimal(reader["CUSTSTLAMOUNT"]);
|
|
if (reader["BANKSTLAMOUNT"] != DBNull.Value)
|
|
data.BANKSTLAMOUNT = reader["BANKSTLAMOUNT"].ToString() == "" ? 0 : Convert.ToDecimal(reader["BANKSTLAMOUNT"]);
|
|
//if (reader["CUSTBALAMOUNT"] != DBNull.Value)
|
|
// data.CUSTBALAMOUNT = reader["CUSTBALAMOUNT"].ToString() == "" ? 0 : Convert.ToDecimal(reader["CUSTBALAMOUNT"]);
|
|
if (reader["BANKBALAMOUNT"] != DBNull.Value)
|
|
data.BANKBALAMOUNT = reader["BANKBALAMOUNT"].ToString() == "" ? 0 : Convert.ToDecimal(reader["BANKBALAMOUNT"]);
|
|
|
|
data.CUSTBALAMOUNT = data.F_RMB - data.CUSTSTLAMOUNT;
|
|
|
|
data.BANKNAME = Convert.ToString(reader["BANKNAME"]);
|
|
data.CUSTSTLSTATUS = Convert.ToString(reader["CUSTSTLSTATUS"]);
|
|
#endregion
|
|
headList.Add(data);
|
|
}
|
|
reader.Close();
|
|
}
|
|
return headList;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 融资还款明细列表(import_finance_BODY)
|
|
|
|
static public List<FinanceBodymb> GetFinanceList(string strCondition, string sort)
|
|
{
|
|
var strSql = new StringBuilder();
|
|
strSql.Append(" select GID,F_NO,F_AMOUNT,F_CURRENCY,CUSTOMER,ISFEE,F_TYPE, ");
|
|
strSql.Append(" ENDDATE,[DAYS],EXCHANGERATE,INTEREST_RATE,D_INTEREST_RATE,Y_INTEREST_RATE,INTEREST,INTERESTUSD,REMARK,");
|
|
strSql.Append(" RMBVALUE,HANDFEE,TELXFEE,OTFEE,RMBAMOUNT,FINEFEE,TTLAMOUNTRMB");
|
|
strSql.Append(" ,BANKID,OP,dbo.trimtime(ENTERDATE) ENTERDATE,(select showname from [user] where gid=b.OP) as OPREF ");
|
|
strSql.Append(",(CASE ISFEE WHEN 1 THEN '锁定' else '未锁定' end) as ISFEEREF ");
|
|
strSql.Append(",b.BSNO,(select CUSTNO from v_op_bill where bsno=b.bsno) CUSTNO ");
|
|
strSql.Append(" FROM IMPORT_FINANCE_BODY b");
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
{
|
|
strSql.Append(" where " + strCondition);
|
|
}
|
|
return SetFinanceBodyList(strSql);
|
|
}
|
|
|
|
static public FinanceBodymb GetFinanceData(string condition, string sort)
|
|
{
|
|
var list = GetFinanceList(condition, sort);
|
|
if (list.Count > 0)
|
|
return list[0];
|
|
|
|
return new FinanceBodymb();
|
|
}
|
|
|
|
private static List<FinanceBodymb> SetFinanceBodyList(StringBuilder strSql)
|
|
{
|
|
var headList = new List<FinanceBodymb>();
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
{
|
|
while (reader.Read())
|
|
{
|
|
FinanceBodymb data = new FinanceBodymb();
|
|
#region Set DB data to Object
|
|
|
|
data.GID = Convert.ToString(reader["GID"]);
|
|
data.F_NO = Convert.ToString(reader["F_NO"]);
|
|
if (reader["F_AMOUNT"] != DBNull.Value)
|
|
data.F_AMOUNT = Convert.ToDecimal(reader["F_AMOUNT"]);
|
|
data.F_CURRENCY = Convert.ToString(reader["F_CURRENCY"]);
|
|
data.CUSTOMER = Convert.ToString(reader["CUSTOMER"]);
|
|
data.ISFEE = Convert.ToString(reader["ISFEE"]);
|
|
data.ISFEEREF = Convert.ToString(reader["ISFEEREF"]);
|
|
data.F_TYPE = Convert.ToString(reader["F_TYPE"]);
|
|
data.ENDDATE = Convert.ToDateTime(reader["ENDDATE"]).ToString("yyyy-MM-dd");
|
|
if (reader["DAYS"] != DBNull.Value)
|
|
data.DAYS = Convert.ToInt32(reader["DAYS"]);
|
|
if (reader["EXCHANGERATE"] != DBNull.Value)
|
|
data.EXCHANGERATE = Convert.ToDecimal(reader["EXCHANGERATE"]);
|
|
if (reader["D_INTEREST_RATE"] != DBNull.Value)
|
|
data.D_INTEREST_RATE = Convert.ToDecimal(reader["D_INTEREST_RATE"]);
|
|
if (reader["INTEREST_RATE"] != DBNull.Value)
|
|
data.INTEREST_RATE = Convert.ToDecimal(reader["INTEREST_RATE"]);
|
|
if (reader["Y_INTEREST_RATE"] != DBNull.Value)
|
|
data.Y_INTEREST_RATE = Convert.ToDecimal(reader["Y_INTEREST_RATE"]);
|
|
if (reader["INTEREST"] != DBNull.Value)
|
|
data.INTEREST = Convert.ToDecimal(reader["INTEREST"]);
|
|
if (reader["INTERESTUSD"] != DBNull.Value)
|
|
data.INTERESTUSD = Convert.ToDecimal(reader["INTERESTUSD"]);
|
|
data.REMARK = Convert.ToString(reader["REMARK"]);
|
|
|
|
if (reader["RMBVALUE"] != DBNull.Value)
|
|
data.RMBVALUE = Convert.ToDecimal(reader["RMBVALUE"]);
|
|
if (reader["HANDFEE"] != DBNull.Value)
|
|
data.HANDFEE = Convert.ToDecimal(reader["HANDFEE"]);
|
|
if (reader["TELXFEE"] != DBNull.Value)
|
|
data.TELXFEE = Convert.ToDecimal(reader["TELXFEE"]);
|
|
if (reader["OTFEE"] != DBNull.Value)
|
|
data.OTFEE = Convert.ToDecimal(reader["OTFEE"]);
|
|
if (reader["RMBAMOUNT"] != DBNull.Value)
|
|
data.RMBAMOUNT = Convert.ToDecimal(reader["RMBAMOUNT"]);
|
|
if (reader["FINEFEE"] != DBNull.Value)
|
|
data.FINEFEE = Convert.ToDecimal(reader["FINEFEE"]);
|
|
if (reader["TTLAMOUNTRMB"] != DBNull.Value)
|
|
data.TTLAMOUNTRMB = Convert.ToDecimal(reader["TTLAMOUNTRMB"]);
|
|
data.BANKID = Convert.ToString(reader["BANKID"]);
|
|
data.OP = Convert.ToString(reader["OP"]);
|
|
data.OPREF = Convert.ToString(reader["OPREF"]);
|
|
data.ENTERDATE = Convert.ToString(reader["ENTERDATE"]);
|
|
data.BSNO = Convert.ToString(reader["BSNO"]);
|
|
data.CUSTNO = Convert.ToString(reader["CUSTNO"]);
|
|
#endregion
|
|
headList.Add(data);
|
|
}
|
|
reader.Close();
|
|
}
|
|
return headList;
|
|
}
|
|
|
|
|
|
public static DBResult SaveBody(string F_NO, List<FinanceBodymb> bodyList,bool isfee)
|
|
{
|
|
var result = new DBResult();
|
|
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (var conn = db.CreateConnection())
|
|
{
|
|
conn.Open();
|
|
var tran = conn.BeginTransaction();
|
|
|
|
try
|
|
{
|
|
|
|
var cmdInsert =
|
|
db.GetSqlStringCommand(
|
|
@"insert into IMPORT_FINANCE_BODY (GID,F_NO,F_AMOUNT,F_CURRENCY,CUSTOMER,ISFEE,F_TYPE,ENDDATE,DAYS,EXCHANGERATE,D_INTEREST_RATE,INTEREST_RATE,Y_INTEREST_RATE
|
|
,INTEREST,INTERESTUSD,REMARK,RMBVALUE,HANDFEE,TELXFEE,OTFEE,RMBAMOUNT,FINEFEE,TTLAMOUNTRMB,BANKID,BSNO)
|
|
values (@GID,@F_NO,@F_AMOUNT,@F_CURRENCY,@CUSTOMER,@ISFEE,@F_TYPE,@ENDDATE,@DAYS,@EXCHANGERATE,@D_INTEREST_RATE,@INTEREST_RATE,@Y_INTEREST_RATE
|
|
,@INTEREST,@INTERESTUSD,@REMARK,@RMBVALUE,@HANDFEE,@TELXFEE,@OTFEE,@RMBAMOUNT,@FINEFEE,@TTLAMOUNTRMB,@BANKID,@BSNO) ");
|
|
|
|
var cmdUpdate =
|
|
db.GetSqlStringCommand(
|
|
@"update IMPORT_FINANCE_BODY set F_AMOUNT=@F_AMOUNT,F_CURRENCY=@F_CURRENCY,CUSTOMER=@CUSTOMER,ISFEE=@ISFEE,F_TYPE=@F_TYPE,ENDDATE=@ENDDATE
|
|
,DAYS=@DAYS,EXCHANGERATE=@EXCHANGERATE,D_INTEREST_RATE=@D_INTEREST_RATE,INTEREST_RATE=@INTEREST_RATE,Y_INTEREST_RATE=@Y_INTEREST_RATE,INTEREST=@INTEREST,INTERESTUSD=@INTERESTUSD,REMARK=@REMARK,RMBVALUE=@RMBVALUE,
|
|
HANDFEE=@HANDFEE,TELXFEE=@TELXFEE,OTFEE=@OTFEE,RMBAMOUNT=@RMBAMOUNT,FINEFEE=@FINEFEE,TTLAMOUNTRMB=@TTLAMOUNTRMB,BANKID=@BANKID,BSNO=@BSNO where GID=@GID ");
|
|
|
|
|
|
if (bodyList != null)
|
|
{
|
|
foreach (var enumValue in bodyList)
|
|
{
|
|
|
|
if (enumValue.F_NO == "*" || enumValue.F_NO == "")
|
|
{
|
|
cmdInsert.Parameters.Clear();
|
|
db.AddInParameter(cmdInsert, "@GID", DbType.String, enumValue.GID);
|
|
db.AddInParameter(cmdInsert, "@F_NO", DbType.String, F_NO);
|
|
db.AddInParameter(cmdInsert, "@F_AMOUNT", DbType.Decimal, enumValue.F_AMOUNT);
|
|
db.AddInParameter(cmdInsert, "@F_CURRENCY", DbType.String, enumValue.F_CURRENCY);
|
|
db.AddInParameter(cmdInsert, "@CUSTOMER", DbType.String, enumValue.CUSTOMER);
|
|
if (isfee)
|
|
db.AddInParameter(cmdInsert, "@ISFEE", DbType.String, "1");
|
|
else
|
|
db.AddInParameter(cmdInsert, "@ISFEE", DbType.String, enumValue.ISFEE);
|
|
db.AddInParameter(cmdInsert, "@F_TYPE", DbType.String, enumValue.F_TYPE);
|
|
db.AddInParameter(cmdInsert, "@ENDDATE", DbType.String, enumValue.ENDDATE);
|
|
db.AddInParameter(cmdInsert, "@DAYS", DbType.Int16, enumValue.DAYS);
|
|
db.AddInParameter(cmdInsert, "@EXCHANGERATE", DbType.Decimal, enumValue.EXCHANGERATE);
|
|
db.AddInParameter(cmdInsert, "@D_INTEREST_RATE", DbType.Decimal, enumValue.D_INTEREST_RATE);
|
|
db.AddInParameter(cmdInsert, "@INTEREST_RATE", DbType.Decimal, enumValue.INTEREST_RATE);
|
|
db.AddInParameter(cmdInsert, "@Y_INTEREST_RATE", DbType.Decimal, enumValue.Y_INTEREST_RATE);
|
|
db.AddInParameter(cmdInsert, "@INTEREST", DbType.Decimal, enumValue.INTEREST);
|
|
db.AddInParameter(cmdInsert, "@INTERESTUSD", DbType.Decimal, enumValue.INTERESTUSD);
|
|
db.AddInParameter(cmdInsert, "@REMARK", DbType.String, enumValue.REMARK);
|
|
db.AddInParameter(cmdInsert, "@RMBVALUE", DbType.Decimal, enumValue.RMBVALUE);
|
|
db.AddInParameter(cmdInsert, "@HANDFEE", DbType.Decimal, enumValue.HANDFEE);
|
|
db.AddInParameter(cmdInsert, "@OTFEE", DbType.Decimal, enumValue.OTFEE);
|
|
db.AddInParameter(cmdInsert, "@TELXFEE", DbType.Decimal, enumValue.TELXFEE);
|
|
db.AddInParameter(cmdInsert, "@RMBAMOUNT", DbType.Decimal, enumValue.RMBAMOUNT);
|
|
db.AddInParameter(cmdInsert, "@FINEFEE", DbType.Decimal, enumValue.FINEFEE);
|
|
db.AddInParameter(cmdInsert, "@TTLAMOUNTRMB", DbType.Decimal, enumValue.TTLAMOUNTRMB);
|
|
db.AddInParameter(cmdInsert, "@BANKID", DbType.String, enumValue.BANKID);
|
|
db.AddInParameter(cmdInsert, "@BSNO", DbType.String, enumValue.BSNO);
|
|
|
|
db.ExecuteNonQuery(cmdInsert, tran);
|
|
}
|
|
else
|
|
{
|
|
|
|
cmdUpdate.Parameters.Clear();
|
|
db.AddInParameter(cmdUpdate, "@GID", DbType.String, enumValue.GID);
|
|
db.AddInParameter(cmdUpdate, "@F_AMOUNT", DbType.Decimal, enumValue.F_AMOUNT);
|
|
db.AddInParameter(cmdUpdate, "@F_CURRENCY", DbType.String, enumValue.F_CURRENCY);
|
|
db.AddInParameter(cmdUpdate, "@CUSTOMER", DbType.String, enumValue.CUSTOMER);
|
|
if (isfee)
|
|
db.AddInParameter(cmdUpdate, "@ISFEE", DbType.String, "1");
|
|
else
|
|
db.AddInParameter(cmdUpdate, "@ISFEE", DbType.String, enumValue.ISFEE);
|
|
db.AddInParameter(cmdUpdate, "@F_TYPE", DbType.String, enumValue.F_TYPE);
|
|
db.AddInParameter(cmdUpdate, "@ENDDATE", DbType.String, enumValue.ENDDATE);
|
|
db.AddInParameter(cmdUpdate, "@DAYS", DbType.Int16, enumValue.DAYS);
|
|
db.AddInParameter(cmdUpdate, "@EXCHANGERATE", DbType.Decimal, enumValue.EXCHANGERATE);
|
|
db.AddInParameter(cmdUpdate, "@D_INTEREST_RATE", DbType.Decimal, enumValue.D_INTEREST_RATE);
|
|
db.AddInParameter(cmdUpdate, "@INTEREST_RATE", DbType.Decimal, enumValue.INTEREST_RATE);
|
|
db.AddInParameter(cmdUpdate, "@Y_INTEREST_RATE", DbType.Decimal, enumValue.Y_INTEREST_RATE);
|
|
db.AddInParameter(cmdUpdate, "@INTEREST", DbType.Decimal, enumValue.INTEREST);
|
|
db.AddInParameter(cmdUpdate, "@INTERESTUSD", DbType.Decimal, enumValue.INTERESTUSD);
|
|
db.AddInParameter(cmdUpdate, "@REMARK", DbType.String, enumValue.REMARK);
|
|
db.AddInParameter(cmdUpdate, "@RMBVALUE", DbType.Decimal, enumValue.RMBVALUE);
|
|
db.AddInParameter(cmdUpdate, "@HANDFEE", DbType.Decimal, enumValue.HANDFEE);
|
|
db.AddInParameter(cmdUpdate, "@OTFEE", DbType.Decimal, enumValue.OTFEE);
|
|
db.AddInParameter(cmdUpdate, "@TELXFEE", DbType.Decimal, enumValue.TELXFEE);
|
|
db.AddInParameter(cmdUpdate, "@RMBAMOUNT", DbType.Decimal, enumValue.RMBAMOUNT);
|
|
db.AddInParameter(cmdUpdate, "@FINEFEE", DbType.Decimal, enumValue.FINEFEE);
|
|
db.AddInParameter(cmdUpdate, "@TTLAMOUNTRMB", DbType.Decimal, enumValue.TTLAMOUNTRMB);
|
|
db.AddInParameter(cmdUpdate, "@BANKID", DbType.String, enumValue.BANKID);
|
|
db.AddInParameter(cmdUpdate, "@BSNO", DbType.String, enumValue.BSNO);
|
|
db.ExecuteNonQuery(cmdUpdate, tran);
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
tran.Commit();
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
tran.Rollback();
|
|
|
|
result.Success = false;
|
|
result.Message = "保存出现错误,"+e.Message+",请重试或联系系统管理员";
|
|
|
|
return result;
|
|
}
|
|
}
|
|
|
|
result.Success = true;
|
|
result.Message = "保存成功" + result.Message;
|
|
|
|
return result;
|
|
}
|
|
|
|
static public int CreateBodyFee(string F_NO, List<FinanceBodymb> bodyList, string USERID,string buildtype)
|
|
{
|
|
|
|
|
|
int iResult = 0;
|
|
if (bodyList != null)
|
|
{
|
|
foreach (var enumValue in bodyList)
|
|
{
|
|
iResult = CreateBodyFeeFn(F_NO,enumValue,USERID, buildtype);
|
|
}
|
|
}
|
|
|
|
return iResult;
|
|
|
|
|
|
}
|
|
|
|
static public int CreateBodyFeeFn(string F_NO, FinanceBodymb enumValue, string USERID,string buildtype)
|
|
{
|
|
int iResult = 0;
|
|
using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction))
|
|
{
|
|
try
|
|
{
|
|
var endDateTime = String.IsNullOrEmpty(enumValue.ENDDATE)? DateTime.Now: Convert.ToDateTime(enumValue.ENDDATE);
|
|
|
|
var remark1 ="融资时间: " + endDateTime.AddDays(enumValue.DAYS*-1+1).ToString("yyyy-MM-dd") + " 还款时间:" + endDateTime.ToString("yyyy-MM-dd") + " 计息天数:" + enumValue.DAYS;
|
|
|
|
if (enumValue.RMBVALUE != 0)
|
|
{
|
|
SqlParameter[] validParms = new SqlParameter[] {
|
|
new SqlParameter(PARM_FEE_GID,SqlDbType.VarChar,36)
|
|
};
|
|
SqlParameter[] parms = GetInsertParms();
|
|
/* + " (@gid,@bsno,@fee_type,@fee_name,@fee_description,@customer_type,@customer_name,@unit,@unit_price,@quantity,@amount,@currency, "
|
|
+ " @exchange_rate,@reason,@remark,@comm_rate,@enter_operator,@enter_date,@is_open,@is_advance_pay,@sort,@fee_status,@fee_frt, "
|
|
+ " @taxrate,@notaxamount,@acctaxrate,@LINENUM,@taxunit_price,@MODIFIEDUSER,@MODIFIEDTIME,@F_NO,@SETTLEMENT)";//DateTime.Now.ToString()
|
|
*/
|
|
parms = GetInsertParms();
|
|
parms[0].Value = Guid.NewGuid().ToString();
|
|
parms[1].Value = F_NO;
|
|
parms[2].Value = enumValue.F_TYPE;
|
|
parms[3].Value = "融资本金";
|
|
parms[4].Value = "";
|
|
parms[5].Value = "";
|
|
parms[6].Value = enumValue.CUSTOMER;
|
|
parms[7].Value = "票";
|
|
parms[8].Value = enumValue.F_AMOUNT;
|
|
parms[9].Value = 1;
|
|
parms[10].Value = enumValue.F_AMOUNT;
|
|
parms[11].Value = enumValue.F_CURRENCY;
|
|
parms[12].Value = enumValue.EXCHANGERATE;//汇率
|
|
parms[13].Value = "";
|
|
parms[14].Value = enumValue.RMBAMOUNT + "RMB "+ remark1;//
|
|
parms[15].Value = "0";
|
|
parms[16].Value = USERID;
|
|
parms[17].Value = DateTime.Now;
|
|
parms[18].Value = "0";
|
|
parms[19].Value = "0";
|
|
parms[20].Value = 1;
|
|
parms[21].Value = 0;
|
|
parms[22].Value = "";
|
|
parms[23].Value = 0;
|
|
parms[24].Value = enumValue.F_AMOUNT;
|
|
parms[25].Value = 0;
|
|
parms[26].Value = 1;
|
|
parms[27].Value = enumValue.F_AMOUNT;
|
|
parms[28].Value = USERID;
|
|
parms[29].Value = DateTime.Now.ToString();
|
|
parms[30].Value = enumValue.GID;
|
|
parms[31].Value = 0;
|
|
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, SQL_INSERT_FEE, parms);
|
|
|
|
}
|
|
else if (enumValue.RMBVALUE == 0 && enumValue.F_AMOUNT != 0)
|
|
{
|
|
SqlParameter[] validParms = new SqlParameter[] {
|
|
new SqlParameter(PARM_FEE_GID,SqlDbType.VarChar,36)
|
|
};
|
|
SqlParameter[] parms = GetInsertParms();
|
|
parms[0].Value = Guid.NewGuid().ToString();
|
|
parms[1].Value = F_NO;
|
|
parms[2].Value = enumValue.F_TYPE;
|
|
parms[3].Value = "融资本金";
|
|
parms[4].Value = "";
|
|
parms[5].Value = "";
|
|
parms[6].Value = enumValue.CUSTOMER;
|
|
parms[7].Value = "票";
|
|
parms[8].Value = enumValue.F_AMOUNT;
|
|
parms[9].Value = 1;
|
|
parms[10].Value = enumValue.F_AMOUNT;
|
|
parms[11].Value = enumValue.F_CURRENCY;
|
|
parms[12].Value = 1;
|
|
parms[13].Value = "";
|
|
parms[14].Value = remark1;
|
|
parms[15].Value = "0";
|
|
parms[16].Value = USERID;
|
|
parms[17].Value = DateTime.Now;
|
|
parms[18].Value = "0";
|
|
parms[19].Value = "0";
|
|
parms[20].Value = 1;
|
|
parms[21].Value = 0;
|
|
parms[22].Value = "";
|
|
parms[23].Value = 0;
|
|
parms[24].Value = enumValue.F_AMOUNT;
|
|
parms[25].Value = 0;
|
|
parms[26].Value = 1;
|
|
parms[27].Value = enumValue.F_AMOUNT;
|
|
parms[28].Value = USERID;
|
|
parms[29].Value = DateTime.Now.ToString();
|
|
parms[30].Value = enumValue.GID;
|
|
parms[31].Value = 0;
|
|
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, SQL_INSERT_FEE, parms);
|
|
}
|
|
if (enumValue.INTEREST != 0)
|
|
{
|
|
SqlParameter[] validParms = new SqlParameter[] {
|
|
new SqlParameter(PARM_FEE_GID,SqlDbType.VarChar,36)
|
|
};
|
|
SqlParameter[] parms = GetInsertParms();
|
|
parms[0].Value = Guid.NewGuid().ToString();
|
|
parms[1].Value = buildtype == "true" ? F_NO : enumValue.BSNO;
|
|
parms[2].Value = enumValue.F_TYPE;
|
|
parms[3].Value = "附加费";//原 融资利息
|
|
parms[4].Value = "";
|
|
parms[5].Value = "";
|
|
parms[6].Value = enumValue.CUSTOMER;
|
|
parms[7].Value = "票";
|
|
parms[8].Value = enumValue.INTEREST;
|
|
parms[9].Value = 1;
|
|
parms[10].Value = enumValue.INTEREST;
|
|
parms[11].Value = "RMB";
|
|
parms[12].Value = 1;
|
|
parms[13].Value = "";
|
|
parms[14].Value = remark1;
|
|
parms[15].Value = "0";
|
|
parms[16].Value = USERID;
|
|
parms[17].Value = DateTime.Now;
|
|
parms[18].Value = "0";
|
|
parms[19].Value = "0";
|
|
parms[20].Value = 1;
|
|
parms[21].Value = 0;
|
|
parms[22].Value = "";
|
|
parms[23].Value = 0;
|
|
parms[24].Value = enumValue.INTEREST;
|
|
parms[25].Value = 0;
|
|
parms[26].Value = 1;
|
|
parms[27].Value = enumValue.INTEREST;
|
|
parms[28].Value = USERID;
|
|
parms[29].Value = DateTime.Now.ToString();
|
|
parms[30].Value = enumValue.BSNO;
|
|
parms[31].Value = 0;
|
|
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, SQL_INSERT_FEE, parms);
|
|
}
|
|
else if (enumValue.INTEREST==0&&enumValue.INTERESTUSD != 0)
|
|
{
|
|
SqlParameter[] validParms = new SqlParameter[] {
|
|
new SqlParameter(PARM_FEE_GID,SqlDbType.VarChar,36)
|
|
};
|
|
SqlParameter[] parms = GetInsertParms();
|
|
parms[0].Value = Guid.NewGuid().ToString();
|
|
parms[1].Value = buildtype == "true" ? F_NO : enumValue.BSNO;
|
|
parms[2].Value = enumValue.F_TYPE;
|
|
parms[3].Value = "附加费";//原 融资利息
|
|
parms[4].Value = "";
|
|
parms[5].Value = "";
|
|
parms[6].Value = enumValue.CUSTOMER;
|
|
parms[7].Value = "票";
|
|
parms[8].Value = enumValue.INTERESTUSD;
|
|
parms[9].Value = 1;
|
|
parms[10].Value = enumValue.INTERESTUSD;
|
|
parms[11].Value = enumValue.F_CURRENCY;
|
|
parms[12].Value = 1;
|
|
parms[13].Value = "";
|
|
parms[14].Value = remark1;
|
|
parms[15].Value = "0";
|
|
parms[16].Value = USERID;
|
|
parms[17].Value = DateTime.Now;
|
|
parms[18].Value = "0";
|
|
parms[19].Value = "0";
|
|
parms[20].Value = 1;
|
|
parms[21].Value = 0;
|
|
parms[22].Value = "";
|
|
parms[23].Value = 0;
|
|
parms[24].Value = enumValue.INTERESTUSD;
|
|
parms[25].Value = 0;
|
|
parms[26].Value = 1;
|
|
parms[27].Value = enumValue.INTERESTUSD;
|
|
parms[28].Value = USERID;
|
|
parms[29].Value = DateTime.Now.ToString();
|
|
parms[30].Value = enumValue.BSNO;
|
|
parms[31].Value = 0;
|
|
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, SQL_INSERT_FEE, parms);
|
|
}
|
|
if (enumValue.HANDFEE != 0)
|
|
{
|
|
SqlParameter[] validParms = new SqlParameter[] {
|
|
new SqlParameter(PARM_FEE_GID,SqlDbType.VarChar,36)
|
|
};
|
|
SqlParameter[] parms = GetInsertParms();
|
|
parms[0].Value = Guid.NewGuid().ToString();
|
|
parms[1].Value = buildtype == "true" ? F_NO : enumValue.BSNO;
|
|
parms[2].Value = enumValue.F_TYPE;
|
|
parms[3].Value = "手续费";
|
|
parms[4].Value = "";
|
|
parms[5].Value = "";
|
|
parms[6].Value = enumValue.CUSTOMER;
|
|
parms[7].Value = "票";
|
|
parms[8].Value = enumValue.HANDFEE;
|
|
parms[9].Value = 1;
|
|
parms[10].Value = enumValue.HANDFEE;
|
|
parms[11].Value = "RMB";
|
|
parms[12].Value = 1;
|
|
parms[13].Value = "";
|
|
parms[14].Value = remark1;
|
|
parms[15].Value = "0";
|
|
parms[16].Value = USERID;
|
|
parms[17].Value = DateTime.Now;
|
|
parms[18].Value = "0";
|
|
parms[19].Value = "0";
|
|
parms[20].Value = 1;
|
|
parms[21].Value = 0;
|
|
parms[22].Value = "";
|
|
parms[23].Value = 0;
|
|
parms[24].Value = enumValue.HANDFEE;
|
|
parms[25].Value = 0;
|
|
parms[26].Value = 1;
|
|
parms[27].Value = enumValue.HANDFEE;
|
|
parms[28].Value = USERID;
|
|
parms[29].Value = DateTime.Now.ToString();
|
|
parms[30].Value = enumValue.GID;
|
|
parms[31].Value = 0;
|
|
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, SQL_INSERT_FEE, parms);
|
|
}
|
|
if (enumValue.TELXFEE != 0)
|
|
{
|
|
SqlParameter[] validParms = new SqlParameter[] {
|
|
new SqlParameter(PARM_FEE_GID,SqlDbType.VarChar,36)
|
|
};
|
|
SqlParameter[] parms = GetInsertParms();
|
|
parms[0].Value = Guid.NewGuid().ToString();
|
|
parms[1].Value = buildtype == "true" ? F_NO : enumValue.BSNO;
|
|
parms[2].Value = enumValue.F_TYPE;
|
|
parms[3].Value = "电报费";
|
|
parms[4].Value = "";
|
|
parms[5].Value = "";
|
|
parms[6].Value = enumValue.CUSTOMER;
|
|
parms[7].Value = "票";
|
|
parms[8].Value = enumValue.TELXFEE;
|
|
parms[9].Value = 1;
|
|
parms[10].Value = enumValue.TELXFEE;
|
|
parms[11].Value = "RMB";
|
|
parms[12].Value = 1;
|
|
parms[13].Value = "";
|
|
parms[14].Value = remark1;
|
|
parms[15].Value = "0";
|
|
parms[16].Value = USERID;
|
|
parms[17].Value = DateTime.Now;
|
|
parms[18].Value = "0";
|
|
parms[19].Value = "0";
|
|
parms[20].Value = 1;
|
|
parms[21].Value = 0;
|
|
parms[22].Value = "";
|
|
parms[23].Value = 0;
|
|
parms[24].Value = enumValue.TELXFEE;
|
|
parms[25].Value = 0;
|
|
parms[26].Value = 1;
|
|
parms[27].Value = enumValue.TELXFEE;
|
|
parms[28].Value = USERID;
|
|
parms[29].Value = DateTime.Now.ToString();
|
|
parms[30].Value = enumValue.GID;
|
|
parms[31].Value = 0;
|
|
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, SQL_INSERT_FEE, parms);
|
|
}
|
|
if (enumValue.FINEFEE != 0)
|
|
{
|
|
SqlParameter[] validParms = new SqlParameter[] {
|
|
new SqlParameter(PARM_FEE_GID,SqlDbType.VarChar,36)
|
|
};
|
|
SqlParameter[] parms = GetInsertParms();
|
|
parms[0].Value = Guid.NewGuid().ToString();
|
|
parms[1].Value = buildtype == "true" ? F_NO : enumValue.BSNO;
|
|
parms[2].Value = enumValue.F_TYPE;
|
|
parms[3].Value = "罚息";
|
|
parms[4].Value = "";
|
|
parms[5].Value = "";
|
|
parms[6].Value = enumValue.CUSTOMER;
|
|
parms[7].Value = "票";
|
|
parms[8].Value = enumValue.FINEFEE;
|
|
parms[9].Value = 1;
|
|
parms[10].Value = enumValue.FINEFEE;
|
|
parms[11].Value = "RMB";
|
|
parms[12].Value = 1;
|
|
parms[13].Value = "";
|
|
parms[14].Value = remark1;
|
|
parms[15].Value = "0";
|
|
parms[16].Value = USERID;
|
|
parms[17].Value = DateTime.Now;
|
|
parms[18].Value = "0";
|
|
parms[19].Value = "0";
|
|
parms[20].Value = 1;
|
|
parms[21].Value = 0;
|
|
parms[22].Value = "";
|
|
parms[23].Value = 0;
|
|
parms[24].Value = enumValue.FINEFEE;
|
|
parms[25].Value = 0;
|
|
parms[26].Value = 1;
|
|
parms[27].Value = enumValue.FINEFEE;
|
|
parms[28].Value = USERID;
|
|
parms[29].Value = DateTime.Now.ToString();
|
|
parms[30].Value = enumValue.GID;
|
|
parms[31].Value = 0;
|
|
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, SQL_INSERT_FEE, parms);
|
|
}
|
|
if (enumValue.OTFEE != 0)
|
|
{
|
|
SqlParameter[] validParms = new SqlParameter[] {
|
|
new SqlParameter(PARM_FEE_GID,SqlDbType.VarChar,36)
|
|
};
|
|
SqlParameter[] parms = GetInsertParms();
|
|
parms[0].Value = Guid.NewGuid().ToString();
|
|
parms[1].Value = buildtype == "true" ? F_NO : enumValue.BSNO;
|
|
parms[2].Value = enumValue.F_TYPE;
|
|
parms[3].Value = "其他费用";
|
|
parms[4].Value = "";
|
|
parms[5].Value = "";
|
|
parms[6].Value = enumValue.CUSTOMER;
|
|
parms[7].Value = "票";
|
|
parms[8].Value = enumValue.OTFEE;
|
|
parms[9].Value = 1;
|
|
parms[10].Value = enumValue.OTFEE;
|
|
parms[11].Value = "RMB";
|
|
parms[12].Value = 1;
|
|
parms[13].Value = "";
|
|
parms[14].Value = remark1;
|
|
parms[15].Value = "0";
|
|
parms[16].Value = USERID;
|
|
parms[17].Value = DateTime.Now;
|
|
parms[18].Value = "0";
|
|
parms[19].Value = "0";
|
|
parms[20].Value = 1;
|
|
parms[21].Value = 0;
|
|
parms[22].Value = "";
|
|
parms[23].Value = 0;
|
|
parms[24].Value = enumValue.OTFEE;
|
|
parms[25].Value = 0;
|
|
parms[26].Value = 1;
|
|
parms[27].Value = enumValue.OTFEE;
|
|
parms[28].Value = USERID;
|
|
parms[29].Value = DateTime.Now.ToString();
|
|
parms[30].Value = enumValue.GID;
|
|
parms[31].Value = 0;
|
|
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, SQL_INSERT_FEE, parms);
|
|
}
|
|
|
|
sqlTran.Commit();
|
|
|
|
iResult = 1;//状态为1表示插入成功
|
|
}
|
|
catch (Exception execError)
|
|
{
|
|
iResult = -1;//有异常,插入失败
|
|
sqlTran.Rollback();
|
|
iResult = -2;//插入异常,事务已回滚成功
|
|
throw execError;
|
|
}
|
|
finally
|
|
{
|
|
SqlHelper.CloseConnection();
|
|
}
|
|
}
|
|
|
|
return iResult;
|
|
|
|
|
|
}
|
|
|
|
static public int DeleteBody(string tempGId)
|
|
{
|
|
int iResult = 0;
|
|
using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction))
|
|
{
|
|
try
|
|
{
|
|
|
|
var strSql = new StringBuilder();
|
|
strSql.Append("Delete from IMPORT_FINANCE_BODY where ");
|
|
strSql.Append(" GId in (" + tempGId + ")");
|
|
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, strSql.ToString());
|
|
sqlTran.Commit();
|
|
|
|
iResult = 1;//状态为1表示插入成功
|
|
}
|
|
catch (Exception execError)
|
|
{
|
|
iResult = -1;//有异常,插入失败
|
|
sqlTran.Rollback();
|
|
iResult = -2;//插入异常,事务已回滚成功
|
|
throw execError;
|
|
}
|
|
finally
|
|
{
|
|
SqlHelper.CloseConnection();
|
|
}
|
|
}
|
|
|
|
return iResult;
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
#region 融资申请
|
|
|
|
static public List<FinanceTradeBody> GetBodyList(string condition)
|
|
{
|
|
var strSql = new StringBuilder();
|
|
strSql.Append(" select c.GID,c.CUSTOMERNAME CUSTOMER,M.ID,M.contractno,c.F_NO,M.HTH,M.billno,M.BUYER,M.seller,ARRIVALDATE ");
|
|
strSql.Append(" ,(select EnumValueName from tSysEnumValue where LangId=0 and EnumTypeID=10 and EnumValueID=M.port) as portRef ");
|
|
strSql.Append(" ,(select NAME from [COMPANY] where GID=M.COMPANY) as COMPANYNAME ");
|
|
strSql.Append(" ,c.AMOUNT as W_AMOUNT ");
|
|
strSql.Append(" ,0 as S_AMOUNT ");
|
|
strSql.Append(" ,f.F_CURRENCY CURRENCY ");
|
|
strSql.Append(" from Import_Finance_do c left join IMPORT_Main M ON M.contractno=c.contractno ");
|
|
strSql.Append(" left join Import_Finance f ON f.F_NO=c.F_NO ");
|
|
strSql.Append(" where 1=1 ");
|
|
if (!string.IsNullOrEmpty(condition))
|
|
{
|
|
strSql.Append(" and " + condition);
|
|
}
|
|
|
|
return SetBodyAddList(strSql);
|
|
}
|
|
|
|
|
|
static public List<FinanceTradeBody> GetBodyAddList(string condition)
|
|
{
|
|
var strSql = new StringBuilder();
|
|
strSql.Append(" select '' GID, c.CUSTOMERNAME as CUSTOMER,M.ID,M.contractno,'' F_NO,M.HTH,M.billno,M.BUYER,M.seller,M.ARRIVALDATE ");
|
|
strSql.Append(" ,(select EnumValueName from tSysEnumValue where LangId=0 and EnumTypeID=10 and EnumValueID=M.port) as portRef ");
|
|
strSql.Append(" ,sum(c.amount) as W_AMOUNT ");
|
|
strSql.Append(" ,c.CURRENCY ");
|
|
strSql.Append(" ,(select NAME from [COMPANY] where GID=m.COMPANY) as COMPANYNAME ");
|
|
strSql.Append(" from ch_fee c left join IMPORT_Main M ON M.contractno=c.BSNO ");
|
|
strSql.Append(" where c.FEETYPE=1 AND c.FEESTATUS in (10) ");
|
|
if (!string.IsNullOrEmpty(condition))
|
|
{
|
|
strSql.Append(" and " + condition);
|
|
}
|
|
strSql.Append(" group by c.CUSTOMERNAME,M.ID,M.contractno,M.HTH,M.billno,M.BUYER,M.seller,M.port,M.COMPANY,M.ARRIVALDATE,c.CURRENCY ");
|
|
|
|
return SetBodyAddList(strSql);
|
|
}
|
|
|
|
|
|
private static List<FinanceTradeBody> SetBodyAddList(StringBuilder strSql)
|
|
{
|
|
var headList = new List<FinanceTradeBody>();
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
{
|
|
while (reader.Read())
|
|
{
|
|
FinanceTradeBody data = new FinanceTradeBody();
|
|
#region Set DB data to Object
|
|
|
|
data.GID = Convert.ToString(reader["GID"]);
|
|
data.F_NO = Convert.ToString(reader["F_NO"]);
|
|
data.CUSTOMER = Convert.ToString(reader["CUSTOMER"]);
|
|
data.CONTRACTNO = Convert.ToString(reader["CONTRACTNO"]);
|
|
data.HTH = Convert.ToString(reader["HTH"]);
|
|
data.SELLER = Convert.ToString(reader["SELLER"]);
|
|
data.BUYER = Convert.ToString(reader["BUYER"]);
|
|
data.BILLNO = Convert.ToString(reader["BILLNO"]);
|
|
data.COMPANYNAME = Convert.ToString(reader["COMPANYNAME"]);
|
|
data.PORTREF = Convert.ToString(reader["PORTREF"]);
|
|
data.CURR = Convert.ToString(reader["CURRENCY"]);
|
|
if (reader["ARRIVALDATE"] != DBNull.Value)
|
|
data.ARRIVALDATE = Convert.ToDateTime(reader["ARRIVALDATE"]).ToString("yyyy-MM-dd");
|
|
if (reader["W_AMOUNT"] != DBNull.Value)
|
|
data.W_AMOUNT = Convert.ToDecimal(reader["W_AMOUNT"]);
|
|
if (reader["W_AMOUNT"] != DBNull.Value)
|
|
data.R_AMOUNT = Convert.ToDecimal(reader["W_AMOUNT"]);
|
|
|
|
#endregion
|
|
headList.Add(data);
|
|
}
|
|
reader.Close();
|
|
}
|
|
return headList;
|
|
}
|
|
|
|
|
|
|
|
public static DBResult AddBill(string billno, List<FinanceTradeBody> bodylist)
|
|
{
|
|
var result = new DBResult();
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (var conn = db.CreateConnection())
|
|
{
|
|
conn.Open();
|
|
var tran = conn.BeginTransaction();
|
|
|
|
try
|
|
{
|
|
|
|
|
|
var cmdInsert =
|
|
db.GetSqlStringCommand(
|
|
@"insert into Import_Finance_do (GID,F_NO,CONTRACTNO,CUSTOMERNAME,AMOUNT,DOAMOUNT)
|
|
values (@GID,@F_NO,@CONTRACTNO,@CUSTOMERNAME,@AMOUNT,@DOAMOUNT) ");
|
|
|
|
var cmdUpdate =
|
|
db.GetSqlStringCommand(
|
|
@"UPDATE IMPORT_FINANCE SET F_AMOUNT=ISNULL(F_AMOUNT,0)+@F_AMOUNT WHERE F_NO=@F_NO ");
|
|
|
|
var cmdUpdateM =
|
|
db.GetSqlStringCommand(
|
|
@"update ch_fee set FEESTATUS=11,F_NO=@F_NO where BSNO=@CONTRACTNO AND FEESTATUS=10 AND CURRENCY=@CURRENCY");
|
|
|
|
|
|
decimal amount = 0;
|
|
|
|
if (bodylist != null)
|
|
{
|
|
foreach (var enumValue in bodylist)
|
|
{
|
|
cmdInsert.Parameters.Clear();
|
|
db.AddInParameter(cmdInsert, "@GID", DbType.String, Guid.NewGuid().ToString());
|
|
db.AddInParameter(cmdInsert, "@F_NO", DbType.String, billno);
|
|
db.AddInParameter(cmdInsert, "@CONTRACTNO", DbType.String, enumValue.CONTRACTNO);
|
|
db.AddInParameter(cmdInsert, "@CUSTOMERNAME", DbType.String, enumValue.CUSTOMER);
|
|
db.AddInParameter(cmdInsert, "@AMOUNT", DbType.Decimal, enumValue.R_AMOUNT);
|
|
db.AddInParameter(cmdInsert, "@DOAMOUNT", DbType.Decimal, 0);
|
|
db.ExecuteNonQuery(cmdInsert, tran);
|
|
amount = amount + enumValue.R_AMOUNT;
|
|
|
|
cmdUpdateM.Parameters.Clear();
|
|
db.AddInParameter(cmdUpdateM, "@CONTRACTNO", DbType.String, enumValue.CONTRACTNO);
|
|
db.AddInParameter(cmdUpdateM, "@F_NO", DbType.String, billno);
|
|
db.AddInParameter(cmdUpdateM, "@CURRENCY", DbType.String, enumValue.CURR);
|
|
db.ExecuteNonQuery(cmdUpdateM, tran);
|
|
|
|
}
|
|
}
|
|
|
|
cmdUpdate.Parameters.Clear();
|
|
db.AddInParameter(cmdUpdate, "@F_NO", DbType.String, billno);
|
|
db.AddInParameter(cmdUpdate, "@F_AMOUNT", DbType.Decimal, amount);
|
|
db.ExecuteNonQuery(cmdUpdate, tran);
|
|
|
|
result = new DBResult();
|
|
result.Success = true;
|
|
result.Message = "成功";
|
|
tran.Commit();
|
|
}
|
|
catch (Exception)
|
|
{
|
|
tran.Rollback();
|
|
|
|
result.Success = false;
|
|
result.Message = "保存出现错误,请重试或联系系统管理员";
|
|
|
|
return result;
|
|
}
|
|
}
|
|
|
|
result.Success = true;
|
|
result.Message = "保存成功";
|
|
|
|
return result;
|
|
}
|
|
|
|
public static DBResult DelBill(string billno, List<FinanceTradeBody> bodylist)
|
|
{
|
|
var result = new DBResult();
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (var conn = db.CreateConnection())
|
|
{
|
|
conn.Open();
|
|
var tran = conn.BeginTransaction();
|
|
|
|
try
|
|
{
|
|
|
|
|
|
var cmdInsert =
|
|
db.GetSqlStringCommand(
|
|
@"delete from Import_Finance_do where GID=@GID ");
|
|
|
|
var cmdUpdate =
|
|
db.GetSqlStringCommand(
|
|
@"UPDATE IMPORT_FINANCE SET F_AMOUNT=ISNULL(F_AMOUNT,0)-@F_AMOUNT WHERE F_NO=@F_NO ");
|
|
|
|
var cmdUpdateM =
|
|
db.GetSqlStringCommand(
|
|
@"update ch_fee set FEESTATUS=10 where F_NO=@F_NO and BSNO=@CONTRACTNO ");
|
|
|
|
|
|
decimal amount = 0;
|
|
|
|
if (bodylist != null)
|
|
{
|
|
foreach (var enumValue in bodylist)
|
|
{
|
|
cmdInsert.Parameters.Clear();
|
|
db.AddInParameter(cmdInsert, "@GID", DbType.String, enumValue.GID);
|
|
db.ExecuteNonQuery(cmdInsert, tran);
|
|
amount = amount + enumValue.W_AMOUNT;
|
|
|
|
cmdUpdateM.Parameters.Clear();
|
|
db.AddInParameter(cmdUpdateM, "@CONTRACTNO", DbType.String, enumValue.CONTRACTNO);
|
|
db.AddInParameter(cmdUpdateM, "@F_NO", DbType.String, billno);
|
|
db.ExecuteNonQuery(cmdUpdateM, tran);
|
|
|
|
}
|
|
}
|
|
|
|
cmdUpdate.Parameters.Clear();
|
|
db.AddInParameter(cmdUpdate, "@F_NO", DbType.String, billno);
|
|
db.AddInParameter(cmdUpdate, "@F_AMOUNT", DbType.Decimal, amount);
|
|
db.ExecuteNonQuery(cmdUpdate, tran);
|
|
|
|
result = new DBResult();
|
|
result.Success = true;
|
|
result.Message = "成功";
|
|
tran.Commit();
|
|
}
|
|
catch (Exception)
|
|
{
|
|
tran.Rollback();
|
|
|
|
result.Success = false;
|
|
result.Message = "保存出现错误,请重试或联系系统管理员";
|
|
|
|
return result;
|
|
}
|
|
}
|
|
|
|
result.Success = true;
|
|
result.Message = "保存成功";
|
|
|
|
return result;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 提交和撤销融资申请
|
|
|
|
public static DBResult SubmitAudit(String USERID, String bill)
|
|
{
|
|
var result = new DBResult();
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (var conn = db.CreateConnection())
|
|
{
|
|
conn.Open();
|
|
var tran = conn.BeginTransaction();
|
|
|
|
try
|
|
{
|
|
var cmdupdate = db.GetSqlStringCommand("update IMPORT_FINANCE set F_STATUS='提交融资' where F_NO=@F_NO");
|
|
cmdupdate.Parameters.Clear();
|
|
db.AddInParameter(cmdupdate, "@F_NO", DbType.String, bill);
|
|
db.ExecuteNonQuery(cmdupdate, tran);
|
|
|
|
result = new DBResult();
|
|
result.Success = true;
|
|
result.Message = "提交成功";
|
|
|
|
tran.Commit();
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
tran.Rollback();
|
|
|
|
result.Success = false;
|
|
result.Message = "提交审核错误,请重试或联系系统管理员 " + e.Message;
|
|
|
|
return result;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
return result;
|
|
}
|
|
|
|
|
|
public static DBResult SubmitAuditList(String USERID, String bills)
|
|
{
|
|
var result = new DBResult();
|
|
var billList = bills.Split(',');
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (var conn = db.CreateConnection())
|
|
{
|
|
conn.Open();
|
|
var tran = conn.BeginTransaction();
|
|
|
|
try
|
|
{
|
|
|
|
foreach (var bill in billList)
|
|
{
|
|
|
|
|
|
var cmdupdate = db.GetSqlStringCommand("update IMPORT_FINANCE set F_STATUS='提交融资' where F_NO=@F_NO");
|
|
|
|
|
|
cmdupdate.Parameters.Clear();
|
|
db.AddInParameter(cmdupdate, "@F_NO", DbType.String, bill);
|
|
db.ExecuteNonQuery(cmdupdate, tran);
|
|
|
|
|
|
|
|
result = new DBResult();
|
|
result.Success = true;
|
|
result.Message = "提交成功";
|
|
|
|
}
|
|
tran.Commit();
|
|
}
|
|
catch (Exception)
|
|
{
|
|
tran.Rollback();
|
|
|
|
result.Success = false;
|
|
result.Message = "提交审核错误,请重试或联系系统管理员";
|
|
|
|
return result;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
return result;
|
|
}
|
|
|
|
|
|
public static DBResult SubmitAuditBack(String USERID, String bill)
|
|
{
|
|
var result = new DBResult();
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (var conn = db.CreateConnection())
|
|
{
|
|
conn.Open();
|
|
var tran = conn.BeginTransaction();
|
|
|
|
try
|
|
{
|
|
|
|
var cmdupdate = db.GetSqlStringCommand("update IMPORT_FINANCE set F_STATUS='新建融资' where F_NO=@F_NO");
|
|
|
|
|
|
cmdupdate.Parameters.Clear();
|
|
db.AddInParameter(cmdupdate, "@F_NO", DbType.String, bill);
|
|
db.ExecuteNonQuery(cmdupdate, tran);
|
|
|
|
result = new DBResult();
|
|
result.Success = true;
|
|
result.Message = "撤销成功";
|
|
|
|
|
|
|
|
tran.Commit();
|
|
}
|
|
catch (Exception)
|
|
{
|
|
tran.Rollback();
|
|
|
|
result.Success = false;
|
|
result.Message = "撤销提交错误,请重试或联系系统管理员";
|
|
|
|
return result;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
return result;
|
|
}
|
|
|
|
public static DBResult SubmitAuditBackList(String USERID, String bills)
|
|
{
|
|
var result = new DBResult();
|
|
|
|
var billList = bills.Split(',');
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (var conn = db.CreateConnection())
|
|
{
|
|
conn.Open();
|
|
var tran = conn.BeginTransaction();
|
|
|
|
try
|
|
{
|
|
foreach (var bill in billList)
|
|
{
|
|
|
|
|
|
|
|
var cmdupdate = db.GetSqlStringCommand("update IMPORT_FINANCE set F_STATUS='新建融资' where F_NO=@F_NO");
|
|
|
|
|
|
cmdupdate.Parameters.Clear();
|
|
db.AddInParameter(cmdupdate, "@F_NO", DbType.String, bill);
|
|
db.ExecuteNonQuery(cmdupdate, tran);
|
|
|
|
result = new DBResult();
|
|
result.Success = true;
|
|
result.Message = "撤销提交成功";
|
|
|
|
|
|
}
|
|
tran.Commit();
|
|
}
|
|
catch (Exception)
|
|
{
|
|
tran.Rollback();
|
|
|
|
result.Success = false;
|
|
result.Message = "撤销提交错误,请重试或联系系统管理员";
|
|
|
|
return result;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
return result;
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region 银行明细
|
|
|
|
static public List<FinanceBank> GetBankList(string strCondition)
|
|
{
|
|
var strSql = new StringBuilder();
|
|
strSql.Append(" select GID,F_NO,BANK,AMOUNT,DOAMOUNT ");
|
|
strSql.Append(" FROM IMPORT_FINANCE_BANK ");
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
{
|
|
strSql.Append(" where " + strCondition);
|
|
}
|
|
return SetBankList(strSql);
|
|
}
|
|
|
|
private static List<FinanceBank> SetBankList(StringBuilder strSql)
|
|
{
|
|
var headList = new List<FinanceBank>();
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
{
|
|
while (reader.Read())
|
|
{
|
|
FinanceBank data = new FinanceBank();
|
|
#region Set DB data to Object
|
|
|
|
data.GID = Convert.ToString(reader["GID"]);
|
|
data.F_NO = Convert.ToString(reader["F_NO"]);
|
|
data.BANK = Convert.ToString(reader["BANK"]);
|
|
if (reader["AMOUNT"] != DBNull.Value)
|
|
data.AMOUNT = Convert.ToDecimal(reader["AMOUNT"]);
|
|
if (reader["DOAMOUNT"] != DBNull.Value)
|
|
data.DOAMOUNT = Convert.ToDecimal(reader["DOAMOUNT"]);
|
|
#endregion
|
|
headList.Add(data);
|
|
}
|
|
reader.Close();
|
|
}
|
|
return headList;
|
|
}
|
|
|
|
|
|
public static DBResult SaveBank(string F_NO, List<FinanceBank> bodyList)
|
|
{
|
|
var result = new DBResult();
|
|
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (var conn = db.CreateConnection())
|
|
{
|
|
conn.Open();
|
|
var tran = conn.BeginTransaction();
|
|
|
|
try
|
|
{
|
|
|
|
var cmdInsert =
|
|
db.GetSqlStringCommand(
|
|
@"insert into IMPORT_FINANCE_BANK (GID,F_NO,AMOUNT,DOAMOUNT,BANK)
|
|
values (@GID,@F_NO,@AMOUNT,@DOAMOUNT,@BANK) ");
|
|
|
|
var cmdUpdate =
|
|
db.GetSqlStringCommand(
|
|
@"update IMPORT_FINANCE_BANK set AMOUNT=@AMOUNT,DOAMOUNT=@DOAMOUNT,BANK=@BANK where GID=@GID ");
|
|
|
|
if (bodyList != null)
|
|
{
|
|
foreach (var enumValue in bodyList)
|
|
{
|
|
|
|
if (enumValue.F_NO == "*" || enumValue.F_NO == "")
|
|
{
|
|
cmdInsert.Parameters.Clear();
|
|
db.AddInParameter(cmdInsert, "@GID", DbType.String, enumValue.GID);
|
|
db.AddInParameter(cmdInsert, "@F_NO", DbType.String, F_NO);
|
|
db.AddInParameter(cmdInsert, "@AMOUNT", DbType.Decimal, enumValue.AMOUNT);
|
|
db.AddInParameter(cmdInsert, "@DOAMOUNT", DbType.Decimal, enumValue.DOAMOUNT);
|
|
db.AddInParameter(cmdInsert, "@BANK", DbType.String, enumValue.BANK);
|
|
db.ExecuteNonQuery(cmdInsert, tran);
|
|
}
|
|
else
|
|
{
|
|
|
|
cmdUpdate.Parameters.Clear();
|
|
db.AddInParameter(cmdUpdate, "@GID", DbType.String, enumValue.GID);
|
|
db.AddInParameter(cmdUpdate, "@AMOUNT", DbType.Decimal, enumValue.AMOUNT);
|
|
db.AddInParameter(cmdUpdate, "@DOAMOUNT", DbType.Decimal, enumValue.DOAMOUNT);
|
|
db.AddInParameter(cmdUpdate, "@BANK", DbType.String, enumValue.BANK);
|
|
db.ExecuteNonQuery(cmdUpdate, tran);
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
tran.Commit();
|
|
}
|
|
catch (Exception)
|
|
{
|
|
tran.Rollback();
|
|
|
|
result.Success = false;
|
|
result.Message = "保存出现错误,请重试或联系系统管理员";
|
|
|
|
return result;
|
|
}
|
|
}
|
|
|
|
result.Success = true;
|
|
result.Message = "保存成功" + result.Message;
|
|
|
|
return result;
|
|
}
|
|
static public int CreateBankFee(string F_NO, List<FinanceBank> bodyList, string USERID)
|
|
{
|
|
|
|
|
|
int iResult = 0;
|
|
using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction))
|
|
{
|
|
try
|
|
{
|
|
if (bodyList != null)
|
|
{
|
|
foreach (var enumValue in bodyList)
|
|
{
|
|
SqlParameter[] validParms = new SqlParameter[] {
|
|
new SqlParameter(PARM_FEE_GID,SqlDbType.VarChar,36)
|
|
};
|
|
SqlParameter[] parms = GetInsertParms();
|
|
parms = GetInsertParms();
|
|
parms[0].Value = Guid.NewGuid().ToString();
|
|
parms[1].Value = F_NO;
|
|
parms[2].Value = 2;
|
|
parms[3].Value = "融资本金";
|
|
parms[4].Value = "";
|
|
parms[5].Value = "";
|
|
parms[6].Value = enumValue.BANK;
|
|
parms[7].Value = "票";
|
|
parms[8].Value = enumValue.AMOUNT;
|
|
parms[9].Value = 1;
|
|
parms[10].Value = enumValue.AMOUNT;
|
|
parms[11].Value ="USD";
|
|
parms[12].Value = 1;
|
|
parms[13].Value = "";
|
|
parms[14].Value = "";
|
|
parms[15].Value = "0";
|
|
parms[16].Value = USERID;
|
|
parms[17].Value = DateTime.Now;
|
|
parms[18].Value = "0";
|
|
parms[19].Value = "0";
|
|
parms[20].Value = 1;
|
|
parms[21].Value = 1;
|
|
parms[22].Value = "";
|
|
parms[23].Value = 0;
|
|
parms[24].Value = enumValue.AMOUNT;
|
|
parms[25].Value = 0;
|
|
parms[26].Value = 1;
|
|
parms[27].Value = enumValue.AMOUNT;
|
|
parms[28].Value = USERID;
|
|
parms[29].Value = DateTime.Now.ToString();
|
|
parms[30].Value =enumValue.F_NO;
|
|
parms[31].Value = 0;
|
|
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, SQL_INSERT_FEE, parms);
|
|
}
|
|
}
|
|
|
|
sqlTran.Commit();
|
|
|
|
iResult = 1;//状态为1表示插入成功
|
|
}
|
|
catch (Exception execError)
|
|
{
|
|
iResult = -1;//有异常,插入失败
|
|
sqlTran.Rollback();
|
|
iResult = -2;//插入异常,事务已回滚成功
|
|
throw execError;
|
|
}
|
|
finally
|
|
{
|
|
SqlHelper.CloseConnection();
|
|
}
|
|
}
|
|
|
|
return iResult;
|
|
|
|
|
|
}
|
|
|
|
|
|
static public int DeleteBank(string tempGId)
|
|
{
|
|
int iResult = 0;
|
|
using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction))
|
|
{
|
|
try
|
|
{
|
|
|
|
var strSql = new StringBuilder();
|
|
strSql.Append("Delete from IMPORT_FINANCE_BANK where ");
|
|
strSql.Append(" GId in (" + tempGId + ")");
|
|
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, strSql.ToString());
|
|
sqlTran.Commit();
|
|
|
|
iResult = 1;//状态为1表示插入成功
|
|
}
|
|
catch (Exception execError)
|
|
{
|
|
iResult = -1;//有异常,插入失败
|
|
sqlTran.Rollback();
|
|
iResult = -2;//插入异常,事务已回滚成功
|
|
throw execError;
|
|
}
|
|
finally
|
|
{
|
|
SqlHelper.CloseConnection();
|
|
}
|
|
}
|
|
|
|
return iResult;
|
|
}
|
|
|
|
#endregion
|
|
|
|
|
|
#region 银行核销
|
|
static public List<Financemb> GetAddBankFinalList(string strCondition, string sort)
|
|
{
|
|
var strSql = new StringBuilder();
|
|
strSql.Append(" select f.F_NO,f.F_CURRENCY,f.F_Rate,f.F_RMB,f.F_AMOUNT,f.CUSTOMER,f.REMARK,f.OP,dbo.trimtime(f.ENTERDATE) ENTERDATE,dbo.trimdate(f.STARTDATE) STARTDATE,dbo.trimdate(f.ENDDATE) ENDDATE ");
|
|
strSql.Append(" ,f.DAYS,b.AMOUNT BANK_INTEREST_RATE,b.DOAMOUNT CUST_INTEREST_RATE,b.AMOUNT-b.DOAMOUNT CUST_INTEREST,f.BANK_EXCHANGERATE,f.CUST_EXCHANGERATE ");
|
|
strSql.Append(" ,b.GID MAINNO,f.F_STATUS,b.BANK FINANCE_BANK,M.[HTH],M.[seller],M.[company],M.[buyer], M.[BillNo],dbo.trimdate(BANKENDDATE) BANKENDDATE ");
|
|
strSql.Append(" ,case M.[ArrivalDate] when '1900-01-01 00:00:00.000' then '' else CONVERT(varchar , M.[ArrivalDate],23) end as ArrivalDate ");
|
|
strSql.Append(" ,(select EnumValueName from tSysEnumValue where LangId=0 and EnumTypeID=10 and EnumValueID=M.port) as portRef ");
|
|
strSql.Append(" ,(select Name from company where gid=M.company) as companyname ");
|
|
strSql.Append(" ,(select showname from [user] where gid=f.OP) as OPREF ");
|
|
strSql.Append(" ,CUSTSTLAMOUNT,F_RMB-CUSTSTLAMOUNT AS CUSTBALAMOUNT ");
|
|
strSql.Append(" ,BANKSTLAMOUNT,F_AMOUNT-BANKSTLAMOUNT AS BANKBALAMOUNT ");
|
|
strSql.Append(" ,(select sum(isnull(INTERESTUSD,0)) from IMPORT_FINANCE_BODY where BANKID=b.GID) as BANK_INTEREST ");
|
|
strSql.Append(" ,dbo.f_financeBank(f.F_NO) BANKNAME ");
|
|
strSql.Append(" ,case when isnull(CUSTSTLAMOUNT,0)=0 then '未还款' when isnull(CUSTSTLAMOUNT,0)>=F_RMB then '全部归还' ");
|
|
strSql.Append(" when isnull(CUSTSTLAMOUNT,0)>0 and isnull(CUSTSTLAMOUNT,0)<F_RMB then '部分归还' end CUSTSTLSTATUS ");
|
|
strSql.Append(" from import_finance_bank b left join import_finance f on (f.F_NO=b.F_NO)");
|
|
strSql.Append(" left join [dbo].[Import_main] M on (M.ContractNo=f.MAINNO) where (b.AMOUNT-b.DOAMOUNT)<>0 ");
|
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
{
|
|
strSql.Append(" and " + strCondition);
|
|
}
|
|
return SetDateList(strSql);
|
|
}
|
|
|
|
static public List<Financemb> GetBankStlDetailList(string strCondition, string sort)
|
|
{
|
|
var strSql = new StringBuilder();
|
|
strSql.Append(" select f.F_NO,f.F_CURRENCY,f.F_Rate,f.F_RMB,f.F_AMOUNT,f.CUSTOMER,f.REMARK,f.OP,dbo.trimtime(f.ENTERDATE) ENTERDATE,dbo.trimdate(f.STARTDATE) STARTDATE,dbo.trimdate(f.ENDDATE) ENDDATE ");
|
|
strSql.Append(" ,f.DAYS,b.AMOUNT BANK_INTEREST_RATE,d.DOAMOUNT CUST_INTEREST_RATE,b.AMOUNT-b.DOAMOUNT CUST_INTEREST,f.BANK_EXCHANGERATE,f.CUST_EXCHANGERATE ");
|
|
strSql.Append(" ,b.GID MAINNO,f.F_STATUS,b.BANK FINANCE_BANK,'' HTH,'' seller,'' company,'' buyer, d.GID BillNo,dbo.trimdate(f.BANKENDDATE) BANKENDDATE ");
|
|
strSql.Append(" ,'' as ArrivalDate ");
|
|
strSql.Append(" ,'' as portRef ");
|
|
strSql.Append(" ,'' as companyname ");
|
|
strSql.Append(" ,(select showname from [user] where gid=f.OP) as OPREF ");
|
|
strSql.Append(" ,CUSTSTLAMOUNT,F_RMB-CUSTSTLAMOUNT AS CUSTBALAMOUNT ");
|
|
strSql.Append(" ,BANKSTLAMOUNT,F_AMOUNT-BANKSTLAMOUNT AS BANKBALAMOUNT ");
|
|
strSql.Append(" ,(select sum(isnull(INTERESTUSD,0)) from IMPORT_FINANCE_BODY where BANKID=b.GID) as BANK_INTEREST ");
|
|
strSql.Append(" ,dbo.f_financeBank(f.F_NO) BANKNAME ");
|
|
strSql.Append(" ,case when isnull(CUSTSTLAMOUNT,0)=0 then '未还款' when isnull(CUSTSTLAMOUNT,0)>=F_RMB then '全部归还' ");
|
|
strSql.Append(" when isnull(CUSTSTLAMOUNT,0)>0 and isnull(CUSTSTLAMOUNT,0)<F_RMB then '部分归还' end CUSTSTLSTATUS ");
|
|
strSql.Append(" from Import_Finance_Bankdo d left join import_finance_bank b on (b.GID=d.BANKID)");
|
|
strSql.Append(" left join import_finance f on (f.F_NO=b.F_NO)");
|
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
{
|
|
strSql.Append(" where " + strCondition);
|
|
}
|
|
return SetDateList(strSql);
|
|
}
|
|
|
|
|
|
|
|
public static DBResult AddBankStlBill(string billno, List<Financemb> bodylist)
|
|
{
|
|
var result = new DBResult();
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (var conn = db.CreateConnection())
|
|
{
|
|
conn.Open();
|
|
var tran = conn.BeginTransaction();
|
|
|
|
try
|
|
{
|
|
|
|
|
|
var cmdInsert =
|
|
db.GetSqlStringCommand(
|
|
@"insert into Import_Finance_Bankdo (GID,F_NO,BANKID,DOAMOUNT)
|
|
values (@GID,@F_NO,@BANKID,@DOAMOUNT) ");
|
|
|
|
|
|
var cmdUpdateM =
|
|
db.GetSqlStringCommand(
|
|
@"UPDATE Import_Finance_Bank SET DOAMOUNT=AMOUNT WHERE GID=@GID ");
|
|
|
|
var cmdUpdate =
|
|
db.GetSqlStringCommand(
|
|
@"UPDATE IMPORT_FINANCE_BODY SET F_AMOUNT=F_AMOUNT+@AMOUNT WHERE F_NO=@F_NO ");
|
|
|
|
|
|
|
|
|
|
decimal amount = 0;
|
|
var F_NO = "";
|
|
|
|
if (bodylist != null)
|
|
{
|
|
foreach (var enumValue in bodylist)
|
|
{
|
|
cmdInsert.Parameters.Clear();
|
|
db.AddInParameter(cmdInsert, "@GID", DbType.String, Guid.NewGuid().ToString());
|
|
db.AddInParameter(cmdInsert, "@F_NO", DbType.String, billno);
|
|
db.AddInParameter(cmdInsert, "@BANKID", DbType.String, enumValue.MAINNO);
|
|
db.AddInParameter(cmdInsert, "@DOAMOUNT", DbType.Decimal, enumValue.CUST_INTEREST);
|
|
db.ExecuteNonQuery(cmdInsert, tran);
|
|
amount = amount + Convert.ToDecimal(enumValue.CUST_INTEREST);
|
|
|
|
cmdUpdateM.Parameters.Clear();
|
|
db.AddInParameter(cmdUpdateM, "@GID", DbType.String, enumValue.MAINNO);
|
|
db.ExecuteNonQuery(cmdUpdateM, tran);
|
|
F_NO = enumValue.F_NO;
|
|
|
|
}
|
|
}
|
|
|
|
cmdUpdate.Parameters.Clear();
|
|
db.AddInParameter(cmdUpdate, "@F_NO", DbType.String, billno);
|
|
db.AddInParameter(cmdUpdate, "@AMOUNT", DbType.Decimal, amount);
|
|
db.ExecuteNonQuery(cmdUpdate, tran);
|
|
|
|
|
|
|
|
|
|
result = new DBResult();
|
|
result.Success = true;
|
|
result.Message = "成功";
|
|
tran.Commit();
|
|
}
|
|
catch (Exception)
|
|
{
|
|
tran.Rollback();
|
|
|
|
result.Success = false;
|
|
result.Message = "保存出现错误,请重试或联系系统管理员";
|
|
|
|
return result;
|
|
}
|
|
}
|
|
|
|
result.Success = true;
|
|
result.Message = "保存成功";
|
|
|
|
return result;
|
|
}
|
|
public static DBResult DelBankStlBill(string billno, List<Financemb> bodylist)
|
|
{
|
|
var result = new DBResult();
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (var conn = db.CreateConnection())
|
|
{
|
|
conn.Open();
|
|
var tran = conn.BeginTransaction();
|
|
|
|
try
|
|
{
|
|
|
|
|
|
var cmdInsert =
|
|
db.GetSqlStringCommand(
|
|
@"delete from Import_Finance_Bankdo where GID=@GID ");
|
|
|
|
var cmdUpdate =
|
|
db.GetSqlStringCommand(
|
|
@"UPDATE IMPORT_FINANCE_BODY SET F_AMOUNT=(select sum(F_AMOUNT) from Import_Finance_Bankdo where ) ");
|
|
|
|
var cmdUpdateM =
|
|
db.GetSqlStringCommand(
|
|
@"UPDATE Import_Finance_Bank SET DOAMOUNT=0 WHERE GID=@GID ");
|
|
|
|
|
|
decimal amount = 0;
|
|
var F_NO = "";
|
|
if (bodylist != null)
|
|
{
|
|
foreach (var enumValue in bodylist)
|
|
{
|
|
cmdInsert.Parameters.Clear();
|
|
db.AddInParameter(cmdInsert, "@GID", DbType.String, enumValue);
|
|
db.ExecuteNonQuery(cmdInsert, tran);
|
|
amount = amount + Convert.ToDecimal(enumValue.CUST_INTEREST_RATE);
|
|
|
|
cmdUpdateM.Parameters.Clear();
|
|
db.AddInParameter(cmdUpdateM, "@GID", DbType.String, enumValue.MAINNO);
|
|
db.ExecuteNonQuery(cmdUpdateM, tran);
|
|
|
|
|
|
}
|
|
}
|
|
|
|
cmdUpdate.Parameters.Clear();
|
|
db.AddInParameter(cmdUpdate, "@F_NO", DbType.String, billno);
|
|
db.AddInParameter(cmdUpdate, "@F_AMOUNT", DbType.Decimal, amount);
|
|
db.ExecuteNonQuery(cmdUpdate, tran);
|
|
result = new DBResult();
|
|
result.Success = true;
|
|
result.Message = "成功";
|
|
tran.Commit();
|
|
}
|
|
catch (Exception)
|
|
{
|
|
tran.Rollback();
|
|
|
|
result.Success = false;
|
|
result.Message = "保存出现错误,请重试或联系系统管理员";
|
|
|
|
return result;
|
|
}
|
|
}
|
|
|
|
result.Success = true;
|
|
result.Message = "保存成功";
|
|
|
|
return result;
|
|
}
|
|
|
|
public static DBResult SubmitBankStl(FinanceBodymb head, List<Financemb> bodyList, string USERID)
|
|
{
|
|
var result = new DBResult();
|
|
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (var conn = db.CreateConnection())
|
|
{
|
|
conn.Open();
|
|
var tran = conn.BeginTransaction();
|
|
|
|
try
|
|
{
|
|
|
|
var cmdDelete =
|
|
db.GetSqlStringCommand(
|
|
@"delete from ch_fee where FEETYPE=2 AND FEESTATUS not in (8,9) AND f_no=@f_no ");
|
|
|
|
var cmdUpdate =
|
|
db.GetSqlStringCommand(
|
|
@"update IMPORT_FINANCE_BANK set BANKINTEREST=@INTEREST where GID=@GID ");
|
|
|
|
var cmdUpdateBody =
|
|
db.GetSqlStringCommand(
|
|
@"update IMPORT_FINANCE_BODY set EXCHANGERATE=@EXCHANGERATE,RMBVALUE=@RMBVALUE,HANDFEE=@HANDFEE,INTEREST=@INTEREST where GID=@GID ");
|
|
var cmdUpdateBodyM =
|
|
db.GetSqlStringCommand(
|
|
@"update IMPORT_FINANCE_BODY set ISFEE=1 where GID=@GID ");
|
|
|
|
|
|
|
|
if (bodyList != null)
|
|
{
|
|
foreach (var enumValue in bodyList)
|
|
{
|
|
if (Convert.ToDecimal(enumValue.CUST_INTEREST_RATE) != 0 && head.INTERESTUSD != 0)
|
|
{
|
|
var bankinterest = head.INTERESTUSD * (head.F_AMOUNT / Convert.ToDecimal(enumValue.CUST_INTEREST_RATE));
|
|
if (bankinterest != 0) {
|
|
cmdUpdate.Parameters.Clear();
|
|
db.AddInParameter(cmdUpdate, "@GID", DbType.String, enumValue.MAINNO);
|
|
db.AddInParameter(cmdUpdate, "@INTEREST", DbType.Decimal, bankinterest);
|
|
db.ExecuteNonQuery(cmdUpdate, tran);
|
|
}
|
|
|
|
var bankbody = GetFinanceList("BANKID='" + enumValue.MAINNO + "'", "");
|
|
if (bankbody != null)
|
|
{
|
|
foreach (var financebody in bankbody)
|
|
{
|
|
if (financebody.EXCHANGERATE!=head.EXCHANGERATE)
|
|
{
|
|
|
|
cmdUpdateBody.Parameters.Clear();
|
|
db.AddInParameter(cmdUpdateBody, "@GID", DbType.String, financebody.GID);
|
|
db.AddInParameter(cmdUpdateBody, "@EXCHANGERATE", DbType.Decimal, head.EXCHANGERATE);
|
|
db.AddInParameter(cmdUpdateBody, "@RMBVALUE", DbType.Decimal, financebody.F_AMOUNT*head.EXCHANGERATE);
|
|
financebody.RMBVALUE = financebody.F_AMOUNT * head.EXCHANGERATE;
|
|
var handfee = (financebody.F_AMOUNT * head.EXCHANGERATE) *Convert.ToDecimal(0.001);
|
|
financebody.HANDFEE = handfee;
|
|
db.AddInParameter(cmdUpdateBody, "@HANDFEE", DbType.Decimal, handfee);
|
|
financebody.INTEREST = (financebody.F_AMOUNT * head.EXCHANGERATE
|
|
+ handfee + financebody.TELXFEE + financebody.OTFEE) * (financebody.INTEREST_RATE / 30) * financebody.DAYS;
|
|
|
|
db.AddInParameter(cmdUpdateBody, "@INTEREST", DbType.Decimal, financebody.INTEREST);
|
|
db.ExecuteNonQuery(cmdUpdateBody, tran);
|
|
}
|
|
|
|
if (financebody.ISFEE != "1" || financebody.EXCHANGERATE != head.EXCHANGERATE)
|
|
{
|
|
cmdDelete.Parameters.Clear();
|
|
db.AddInParameter(cmdDelete, "@f_no", DbType.String, financebody.GID);
|
|
db.ExecuteNonQuery(cmdDelete, tran);
|
|
CreateBodyFeeFn(financebody.F_NO, financebody, USERID,"true");
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
cmdUpdateBodyM.Parameters.Clear();
|
|
db.AddInParameter(cmdUpdateBodyM, "@GID", DbType.String, head.GID);
|
|
db.ExecuteNonQuery(cmdUpdateBodyM, tran);
|
|
|
|
tran.Commit();
|
|
}
|
|
catch (Exception)
|
|
{
|
|
tran.Rollback();
|
|
|
|
result.Success = false;
|
|
result.Message = "保存出现错误,请重试或联系系统管理员";
|
|
|
|
return result;
|
|
}
|
|
}
|
|
|
|
result.Success = true;
|
|
result.Message = "保存成功" + result.Message;
|
|
|
|
return result;
|
|
}
|
|
|
|
public static DBResult SubmitBackBankStl(FinanceBodymb head)
|
|
{
|
|
var result = new DBResult();
|
|
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (var conn = db.CreateConnection())
|
|
{
|
|
conn.Open();
|
|
var tran = conn.BeginTransaction();
|
|
|
|
try
|
|
{
|
|
|
|
|
|
var cmdUpdateBodyM =
|
|
db.GetSqlStringCommand(
|
|
@"update IMPORT_FINANCE_BODY set ISFEE=0 where GID=@GID ");
|
|
|
|
cmdUpdateBodyM.Parameters.Clear();
|
|
db.AddInParameter(cmdUpdateBodyM, "@GID", DbType.String, head.GID);
|
|
db.ExecuteNonQuery(cmdUpdateBodyM, tran);
|
|
|
|
tran.Commit();
|
|
}
|
|
catch (Exception)
|
|
{
|
|
tran.Rollback();
|
|
|
|
result.Success = false;
|
|
result.Message = "保存出现错误,请重试或联系系统管理员";
|
|
|
|
return result;
|
|
}
|
|
}
|
|
|
|
result.Success = true;
|
|
result.Message = "保存成功" + result.Message;
|
|
|
|
return result;
|
|
}
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 判断是否有费用
|
|
public static bool GetFeeCount(string BSNO)
|
|
{
|
|
var isfee = false;
|
|
var strSql = new StringBuilder();
|
|
strSql.Append("Select count(*) as count ");
|
|
strSql.Append(" from ch_fee ");
|
|
strSql.Append(" where BSNO='" + BSNO + "'");
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
{
|
|
while (reader.Read())
|
|
{
|
|
var evData = Convert.ToInt32(reader["count"]);
|
|
if (evData > 0) { isfee = true; };
|
|
}
|
|
reader.Close();
|
|
}
|
|
return isfee;
|
|
}
|
|
|
|
public static DBResult DeleteDetail(string bsno)
|
|
{
|
|
var result = new DBResult();
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (var conn = db.CreateConnection())
|
|
{
|
|
conn.Open();
|
|
var tran = conn.BeginTransaction();
|
|
try
|
|
{
|
|
var cmdDelete = db.GetSqlStringCommand("delete from IMPORT_FINANCE_BODY where F_NO='" + bsno + "'");
|
|
db.ExecuteNonQuery(cmdDelete, tran);
|
|
|
|
var cmdDelete2 = db.GetSqlStringCommand("delete from Import_Finance_Bank where F_NO='" + bsno + "'");
|
|
db.ExecuteNonQuery(cmdDelete2, tran);
|
|
|
|
tran.Commit();
|
|
}
|
|
catch (Exception)
|
|
{
|
|
tran.Rollback();
|
|
|
|
result.Success = false;
|
|
result.Message = "删除出现错误,请重试或联系系统管理员";
|
|
|
|
return result;
|
|
}
|
|
}
|
|
result.Success = true;
|
|
result.Message = "操作成功";
|
|
return result;
|
|
}
|
|
public static DBResult CancelFinancel(string bsno)
|
|
{
|
|
var result = new DBResult();
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (var conn = db.CreateConnection())
|
|
{
|
|
conn.Open();
|
|
var tran = conn.BeginTransaction();
|
|
try
|
|
{
|
|
var cmdDelete = db.GetSqlStringCommand("update Import_main set FinanceStatus='0' where contractno='" + bsno + "'");
|
|
db.ExecuteNonQuery(cmdDelete, tran);
|
|
|
|
|
|
tran.Commit();
|
|
}
|
|
catch (Exception)
|
|
{
|
|
tran.Rollback();
|
|
|
|
result.Success = false;
|
|
result.Message = "删除出现错误,请重试或联系系统管理员";
|
|
|
|
return result;
|
|
}
|
|
}
|
|
result.Success = true;
|
|
result.Message = "操作成功";
|
|
return result;
|
|
}
|
|
|
|
public static DBResult AuditFinancelStatus(string F_NO)
|
|
{
|
|
var result = new DBResult();
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (var conn = db.CreateConnection())
|
|
{
|
|
conn.Open();
|
|
var tran = conn.BeginTransaction();
|
|
try
|
|
{
|
|
var cmdDelete = db.GetSqlStringCommand(" update Import_main set FinanceStatus='2' where contractno in (select CONTRACTNO from Import_Finance_do where F_NO='"+F_NO+"')"
|
|
+ " update ch_fee set feestatus=11 where F_NO=='" + F_NO + "'");
|
|
db.ExecuteNonQuery(cmdDelete, tran);
|
|
|
|
tran.Commit();
|
|
}
|
|
catch (Exception)
|
|
{
|
|
tran.Rollback();
|
|
|
|
result.Success = false;
|
|
result.Message = "删除出现错误,请重试或联系系统管理员";
|
|
|
|
return result;
|
|
}
|
|
}
|
|
result.Success = true;
|
|
result.Message = "操作成功";
|
|
return result;
|
|
}
|
|
|
|
static public int SaveFinanceFee(Financemb Finance, string tempUserID)
|
|
{
|
|
|
|
|
|
int iResult = 0;
|
|
using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction))
|
|
{
|
|
try
|
|
{
|
|
SqlParameter[] validParms = new SqlParameter[] {
|
|
new SqlParameter(PARM_FEE_GID,SqlDbType.VarChar,36)
|
|
};
|
|
SqlParameter[] parms = GetInsertParms();
|
|
parms[0].Value = Guid.NewGuid().ToString();
|
|
parms[1].Value = Finance.F_NO;
|
|
parms[2].Value =1;
|
|
parms[3].Value ="融资本金";
|
|
parms[4].Value ="";
|
|
parms[5].Value ="";
|
|
parms[6].Value = Finance.CUSTOMER;
|
|
parms[7].Value ="票";
|
|
parms[8].Value = Finance.F_AMOUNT;
|
|
parms[9].Value = 1;
|
|
parms[10].Value = Finance.F_AMOUNT;
|
|
parms[11].Value = Finance.F_CURRENCY;
|
|
parms[12].Value = 1;
|
|
parms[13].Value ="";
|
|
parms[14].Value = "";
|
|
parms[15].Value ="0";
|
|
parms[16].Value = tempUserID;
|
|
parms[17].Value = DateTime.Now;
|
|
parms[18].Value = "0";
|
|
parms[19].Value = "0";
|
|
parms[20].Value = 1;
|
|
parms[21].Value =1;
|
|
parms[22].Value ="";
|
|
parms[23].Value =0;
|
|
parms[24].Value = Finance.F_AMOUNT;
|
|
parms[25].Value =0;
|
|
parms[26].Value = 1;
|
|
parms[27].Value = Finance.F_AMOUNT;
|
|
parms[28].Value = tempUserID;
|
|
parms[29].Value = DateTime.Now.ToString();
|
|
parms[30].Value = Finance.F_NO;
|
|
parms[31].Value = 0;
|
|
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, SQL_INSERT_FEE, parms);
|
|
|
|
|
|
|
|
sqlTran.Commit();
|
|
|
|
iResult = 1;//状态为1表示插入成功
|
|
}
|
|
catch (Exception execError)
|
|
{
|
|
iResult = -1;//有异常,插入失败
|
|
sqlTran.Rollback();
|
|
iResult = -2;//插入异常,事务已回滚成功
|
|
throw execError;
|
|
}
|
|
finally
|
|
{
|
|
SqlHelper.CloseConnection();
|
|
}
|
|
}
|
|
|
|
return iResult;
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
public static DBResult updateFinancel (string bsno)
|
|
{
|
|
var result = new DBResult();
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (var conn = db.CreateConnection())
|
|
{
|
|
conn.Open();
|
|
var tran = conn.BeginTransaction();
|
|
try
|
|
{
|
|
var cmdDelete = db.GetSqlStringCommand("update Import_main set FinanceStatus='1' where contractno='" + bsno + "'");
|
|
db.ExecuteNonQuery(cmdDelete, tran);
|
|
|
|
|
|
tran.Commit();
|
|
}
|
|
catch (Exception)
|
|
{
|
|
tran.Rollback();
|
|
|
|
result.Success = false;
|
|
result.Message = "删除出现错误,请重试或联系系统管理员";
|
|
|
|
return result;
|
|
}
|
|
}
|
|
result.Success = true;
|
|
result.Message = "操作成功";
|
|
return result;
|
|
}
|
|
|
|
public static int p_update_Finance(string billno)
|
|
{
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
|
var cmd = db.GetStoredProcCommand("p_update_Finance");
|
|
db.AddInParameter(cmd, "@con_no", DbType.String, billno);
|
|
db.ExecuteNonQuery(cmd);
|
|
return 0;
|
|
}
|
|
|
|
|
|
static public int ChangeStatus(string ContractNo, string status)
|
|
{
|
|
var strSql = new StringBuilder();
|
|
strSql.Append(" update ch_fee set feestatus="+status+" where feetype=1 and feestatus<>8 and feestatus<>9 and bsno='" + ContractNo + "'");
|
|
return setStatus(strSql);//ExecuteNonQuery
|
|
}
|
|
|
|
private static int setStatus(StringBuilder strSql)
|
|
{
|
|
var _count = 0;
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
_count = db.ExecuteNonQuery(CommandType.Text, strSql.ToString());
|
|
return _count;
|
|
}
|
|
|
|
public static string GetRangAddFeeDAStr(string userid, string username, string companyid)
|
|
{
|
|
string str = "";
|
|
string modustr = "MODFINANCEPAYAPPFEE";
|
|
|
|
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 = " c.ENTEROPERATOR='" + userid + "'";
|
|
}
|
|
else if (visiblerange == "3")
|
|
{
|
|
str = " c.ENTEROPERATOR='" + userid + "'";
|
|
}
|
|
else if (visiblerange == "2")
|
|
{
|
|
var rangeDa = new RangeDA();
|
|
var deptname = rangeDa.GetDEPTNAME(userid);
|
|
str = " c.ENTEROPERATOR in (select USERID from user_company where COMPANYID='" + companyid + "') and c.ENTEROPERATOR in (select userid from user_baseinfo where DEPTNAME='" + deptname + "')";
|
|
}
|
|
else if (visiblerange == "1")
|
|
{
|
|
str = " c.ENTEROPERATOR in (select USERID from user_company where COMPANYID='" + companyid + "') ";
|
|
}
|
|
else if (visiblerange == "5")
|
|
{
|
|
|
|
var userstr = new StringBuilder();
|
|
userstr.Append(" select USERID FROM user_company WHERE COMPANYID IN (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 = " (c.ENTEROPERATOR='" + Convert.ToString(reader["USERID"]) + "'";
|
|
}
|
|
else
|
|
{
|
|
str = str + " or c.ENTEROPERATOR='" + Convert.ToString(reader["USERID"]) + "'";
|
|
};
|
|
}
|
|
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 = " (c.ENTEROPERATOR='" + Convert.ToString(reader["OPID"]) + "' ";
|
|
}
|
|
else
|
|
{
|
|
str = str + " or c.ENTEROPERATOR='" + Convert.ToString(reader["OPID"]) + "' ";
|
|
};
|
|
}
|
|
str = str + ")";
|
|
reader.Close();
|
|
}
|
|
|
|
|
|
}
|
|
else if (visiblerange == "0")
|
|
{
|
|
str = " 1=1 ";
|
|
}
|
|
return str;
|
|
}
|
|
|
|
#region 参照部分
|
|
|
|
#endregion
|
|
}
|
|
}
|