|
|
using System;
|
|
|
using System.Collections.Generic;
|
|
|
using System.Data;
|
|
|
using System.Data.Common;
|
|
|
using System.Text;
|
|
|
using DSWeb.MvcShipping.Models.MsChFee;
|
|
|
using HcUtility.Comm;
|
|
|
using System.Data.SqlClient;
|
|
|
using Microsoft.Practices.EnterpriseLibrary.Data;
|
|
|
using DSWeb.EntityDA;
|
|
|
using DSWeb.Areas.Account.Models.MsOpBill;
|
|
|
using DSWeb.Areas.CommMng.Models;
|
|
|
using DSWeb.Areas.CommMng.DAL;
|
|
|
|
|
|
using DSWeb.MvcShipping.DAL.MsSysParamSet;
|
|
|
using DSWeb.MvcShipping.DAL.MsInfoClient;
|
|
|
using DSWeb.MvcShipping.DAL.DsSendmail;
|
|
|
using DSWeb.Areas.SysMng.DAL.SysUser;
|
|
|
using DSWeb.Areas.Dispatch.DB;
|
|
|
using System.Linq;
|
|
|
using com.sun.org.apache.bcel.@internal.generic;
|
|
|
|
|
|
namespace DSWeb.MvcShipping.DAL.Chfee_AuditDAL
|
|
|
{
|
|
|
public class Chfee_AuditDAL : IGetTotalCount
|
|
|
{
|
|
|
|
|
|
|
|
|
#region 查询费用数据
|
|
|
|
|
|
static public List<MsChFee> GetDataList(string bsno, int type, string optype, string isAll, string condition, string userid, string username, string companyid, string worktype = "")
|
|
|
{
|
|
|
|
|
|
|
|
|
var rangstr = GetRangDAStr(type, optype, userid, username, companyid);
|
|
|
|
|
|
#region 无机密费用权限的用户不让看到相关费用
|
|
|
//2018年2月6日14:53:53 李进举 鼎世
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
int power = Convert.ToInt32(db.ExecuteScalar(CommandType.Text, @"select count(*) from user_action
|
|
|
where ACTIONID = (SELECT GID FROM action where DESCRIPTION = '机密费用')
|
|
|
and USERID = '" + userid + "'"));
|
|
|
if (power > 0)
|
|
|
{
|
|
|
rangstr += " ";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
rangstr += " and IsOpen = 0";
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
var WorkFlowNameM = "FeeOpOtherModifyAudit";
|
|
|
var WorkFlowName = "FeeOpOpOtherRecvPayAudit";
|
|
|
if (optype == "op_seae" || optype == "op_seaeorder")
|
|
|
{
|
|
|
WorkFlowNameM = "FeeModifyAudit";
|
|
|
WorkFlowName = "FeeRecvPayAudit";
|
|
|
} if (optype == "op_seai")
|
|
|
{
|
|
|
//WorkFlowNameM = "FeeSeaiModifyAudit";
|
|
|
//WorkFlowName = "FeeSeaiRecvPayAudit";
|
|
|
WorkFlowNameM = "FeeModifyAudit";
|
|
|
WorkFlowName = "FeeRecvPayAudit";
|
|
|
|
|
|
} if (optype == "op_aire")
|
|
|
{
|
|
|
WorkFlowNameM = "AireFeeModify";
|
|
|
WorkFlowName = "AireFeeAudit";
|
|
|
|
|
|
} if (optype == "op_airi")
|
|
|
{
|
|
|
WorkFlowNameM = "AiriFeeModify";
|
|
|
WorkFlowName = "AiriFeeAudit";
|
|
|
|
|
|
} if (optype == "op_apply")
|
|
|
{
|
|
|
WorkFlowNameM = "ApplyFeeModify";
|
|
|
WorkFlowName = "ApplyFeeAudit";
|
|
|
|
|
|
} if (optype == "op_bulk")
|
|
|
{
|
|
|
WorkFlowNameM = "BulkFeeModify";
|
|
|
WorkFlowName = "BulkFeeAudit";
|
|
|
} if (optype == "op_other" || optype == "tMsWlPcHead" || optype == "OpCtnBsCard" || optype == "import_main")
|
|
|
{
|
|
|
WorkFlowNameM = "FeeOpOtherModifyAudit";
|
|
|
WorkFlowName = "FeeOpOpOtherRecvPayAudit";
|
|
|
} if (optype == "op_railway")
|
|
|
{
|
|
|
WorkFlowNameM = "RailwayFeeModify";
|
|
|
WorkFlowName = "RailwayFeeAudit";
|
|
|
}
|
|
|
|
|
|
if (optype == "op_railway")
|
|
|
{
|
|
|
WorkFlowNameM = "RailwayFeeModify";
|
|
|
WorkFlowName = "RailwayFeeAudit";
|
|
|
}
|
|
|
|
|
|
|
|
|
var strSql = new StringBuilder();
|
|
|
strSql.Append("SELECT ");
|
|
|
strSql.Append("GId,ch_fee.BsNo,FeeStatus,");
|
|
|
strSql.Append("(select EnumValueName from tSysEnumValue where LangId=0 and EnumTypeID=99024 and EnumValueID=ch_fee.FeeStatus) as FeeStatus_Ref");
|
|
|
strSql.Append(",FeeType,");
|
|
|
strSql.Append("(select EnumValueName from tSysEnumValue where LangId=0 and EnumTypeID=99020 and EnumValueID=ch_fee.FeeType) as FeeType_Ref");
|
|
|
strSql.Append(",FeeName,");
|
|
|
strSql.Append("FeeDescription,CustomerType,CustomerName,");
|
|
|
strSql.Append("Unit,UnitPrice,Quantity,TaxRate,TaxUnitPrice,NoTaxAmount,Amount,AccTaxRate,TAX,Currency,ExChangerate,ch_fee.Reason");
|
|
|
strSql.Append(",Remark,Commissionrate,Settlement,Invoice,OrderAmount,OrderInvoice,SubmitDate");
|
|
|
strSql.Append(",Auditoperator,AuditDate,EnteroPerator,EnterDate,DebitNo,IsDebit,IsOpen");
|
|
|
strSql.Append(",(select ShowName from [user] where GID=ch_fee.EnteroPerator) as OpName");
|
|
|
strSql.Append(",IsAdvancedpay,Sort,IsInvoice,FeeFrt,IsCrmOrderFee,AuditStatus,InvoiceNum");
|
|
|
strSql.Append(",ChequeNum,WmsOutBsNo,LineNum,INPUTMODE,PreAmount,SALECORP,(select top 1 DESCRIPTION from info_client where SHORTNAME=ch_fee.CustomerName) CustomerFullName");
|
|
|
strSql.Append(",(select showname from [user] where gid=ch_fee.Auditoperator) Auditoperatorref ");
|
|
|
if (optype == "罐箱业务卡")
|
|
|
{
|
|
|
if (isAll == "1")
|
|
|
{
|
|
|
strSql.Append(",1 as IsAudit ");
|
|
|
strSql.Append(" from ch_fee WITH (NOLOCK) ");
|
|
|
strSql.Append(" where ch_fee.bsno='" + bsno + "' ");
|
|
|
if (type != 0)
|
|
|
strSql.Append(" and ch_fee.FeeType=" + type);
|
|
|
strSql.Append(" and ch_fee.FeeStatus!=1 ");
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
strSql.Append(",1 as IsAudit ");
|
|
|
strSql.Append(" from ch_fee WITH (NOLOCK) ");
|
|
|
strSql.Append(" where ch_fee.bsno='" + bsno + "' ");
|
|
|
if (type != 0)
|
|
|
strSql.Append(" and ch_fee.FeeType=" + type);
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
if (isAll == "1")
|
|
|
{
|
|
|
strSql.Append(",dbo.[GetUsingStep](wu.WORKFLOWID,wu.currentid,'" + userid + "',wu.stepno) as IsAudit ");
|
|
|
strSql.Append(" from ch_fee WITH (NOLOCK) left join workflow_using wu on wu.bsno=ch_fee.GID ");
|
|
|
strSql.Append(" where ch_fee.bsno='" + bsno + "' ");
|
|
|
if (type != 0)
|
|
|
strSql.Append(" and ch_fee.FeeType=" + type);
|
|
|
strSql.Append(" and dbo.[GetUsingStep](wu.WORKFLOWID,wu.currentid,'" + userid + "',wu.stepno)>0 ");
|
|
|
// strSql.Append(" and dbo.[GetUsingStep](wu.WORKFLOWID,wu.currentid,'" + userid + "',wu.stepno)>0 and (wu.WORKFLOWID=dbo.[GetBSNOWorkFlowID]('" + WorkFlowName + "',ch_fee.GID) or wu.WORKFLOWID=dbo.[GetBSNOWorkFlowID]('" + WorkFlowNameM + "',ch_fee.GID) or wu.WORKFLOWID=dbo.[GetBSNOWorkFlowID]('OpFeeAudit',ch_fee.GID) ");
|
|
|
// strSql.Append(" or wu.WORKFLOWID=dbo.[GetBSNOWorkFlowID]('AmendFeefyAudit',ch_fee.GID) or wu.WORKFLOWID=dbo.[GetBSNOWorkFlowID]('YjFeefyAudit',ch_fee.GID) ) ");
|
|
|
|
|
|
}
|
|
|
else if (isAll == "2")
|
|
|
{
|
|
|
strSql.Append(",0 as IsAudit ");
|
|
|
strSql.Append(" from ch_fee WITH (NOLOCK) ");
|
|
|
strSql.Append(" where ch_fee.bsno='" + bsno + "' ");
|
|
|
if (type != 0)
|
|
|
strSql.Append(" and ch_fee.FeeType=" + type);
|
|
|
strSql.Append(" and ch_fee.FeeStatus=0 AND ch_fee.GID IN (select distinct billno from workflow_do where auditor='" + userid + "' ) ");
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
strSql.Append(",dbo.[GetUsingStep](wu.WORKFLOWID,wu.currentid,'" + userid + "',wu.stepno) as IsAudit ");
|
|
|
strSql.Append(" from ch_fee WITH (NOLOCK) left join workflow_using wu on wu.bsno=ch_fee.GID and wu.FINISHED=0 ");
|
|
|
strSql.Append(" where ch_fee.bsno='" + bsno + "' ");
|
|
|
if (type != 0)
|
|
|
strSql.Append(" and ch_fee.FeeType=" + type);
|
|
|
if (worktype== "SALEORDER") strSql.Append(" and ch_fee.IsCrmOrderFee=1 ");
|
|
|
else if (worktype != "") strSql.Append(" and isnull(ch_fee.IsCrmOrderFee,0)=0 ");
|
|
|
if (worktype == "BLAUDIT") strSql.Append(" and wu.TYPENO=602 ");
|
|
|
else if (worktype == "FEEAUDIT") strSql.Append(" and (wu.TYPENO=1 or wu.TYPENO=3 or wu.TYPENO=11 or wu.TYPENO=13 or wu.TYPENO=101 or wu.TYPENO=103 or wu.TYPENO=104 or wu.TYPENO=106 or wu.TYPENO=107 or wu.TYPENO=109 or wu.TYPENO=204 or wu.TYPENO=206 or wu.TYPENO=301 or wu.TYPENO=303 or wu.TYPENO=304 or wu.TYPENO=601) ");
|
|
|
|
|
|
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (!string.IsNullOrEmpty(condition))
|
|
|
{
|
|
|
strSql.Append(" and " + condition);
|
|
|
|
|
|
}
|
|
|
if ((optype != "罐箱业务卡") && (!string.IsNullOrEmpty(rangstr)))
|
|
|
{
|
|
|
strSql.Append(" and " + rangstr);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
strSql.Append(" order by sort,LineNum ");
|
|
|
return SetData(strSql);
|
|
|
}
|
|
|
|
|
|
|
|
|
private static List<MsChFee> SetData(StringBuilder strSql)
|
|
|
{
|
|
|
var bodyList = new List<MsChFee>();
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
|
{
|
|
|
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
MsChFee data = new MsChFee();
|
|
|
#region Set DB data to Object
|
|
|
data.GId = Convert.ToString(reader["GId"]);
|
|
|
data.BsNo = Convert.ToString(reader["BsNo"]);
|
|
|
data.FeeStatus = Convert.ToInt16(reader["FeeStatus"]);
|
|
|
data.FeeStatus_Ref = Convert.ToString(reader["FeeStatus_Ref"]);
|
|
|
data.FeeType = Convert.ToDecimal(reader["FeeType"]);
|
|
|
data.FeeName = Convert.ToString(reader["FeeName"]);
|
|
|
data.FeeDescription = Convert.ToString(reader["FeeDescription"]);
|
|
|
data.CustomerType = Convert.ToString(reader["CustomerType"]);
|
|
|
data.CustomerName = Convert.ToString(reader["CustomerName"]);
|
|
|
data.CustomerFullName = Convert.ToString(reader["CustomerFullName"]);
|
|
|
data.Unit = Convert.ToString(reader["Unit"]);
|
|
|
if (reader["UnitPrice"] != DBNull.Value)
|
|
|
data.UnitPrice = Convert.ToDecimal(reader["UnitPrice"]);
|
|
|
if (reader["Quantity"] != DBNull.Value)
|
|
|
data.Quantity = Convert.ToDecimal(reader["Quantity"]);
|
|
|
if (reader["TaxRate"] != DBNull.Value)
|
|
|
data.TaxRate = Convert.ToDecimal(reader["TaxRate"]);
|
|
|
if (reader["TaxUnitPrice"] != DBNull.Value)
|
|
|
data.TaxUnitPrice = Convert.ToDecimal(reader["TaxUnitPrice"]);
|
|
|
if (reader["NoTaxAmount"] != DBNull.Value)
|
|
|
data.NoTaxAmount = Convert.ToDecimal(reader["NoTaxAmount"]);
|
|
|
if (reader["Amount"] != DBNull.Value)
|
|
|
data.Amount = Convert.ToDecimal(reader["Amount"]);
|
|
|
if (reader["AccTaxRate"] != DBNull.Value)
|
|
|
data.AccTaxRate = Convert.ToDecimal(reader["AccTaxRate"]);
|
|
|
data.Currency = Convert.ToString(reader["Currency"]);
|
|
|
if (reader["ExChangerate"] != DBNull.Value)
|
|
|
data.ExChangerate = Convert.ToDecimal(reader["ExChangerate"]);
|
|
|
data.Reason = Convert.ToString(reader["Reason"]);
|
|
|
data.Remark = Convert.ToString(reader["Remark"]);
|
|
|
data.Commissionrate = Convert.ToDecimal(reader["Commissionrate"]);
|
|
|
data.Settlement = Convert.ToDecimal(reader["Settlement"]);
|
|
|
if (reader["Invoice"] != DBNull.Value)
|
|
|
data.Invoice = Convert.ToDecimal(reader["Invoice"]);
|
|
|
if (reader["OrderAmount"] != DBNull.Value)
|
|
|
data.OrderAmount = Convert.ToDecimal(reader["OrderAmount"]);
|
|
|
data.OrderInvoice = Convert.ToDecimal(reader["OrderInvoice"]);
|
|
|
if (reader["SubmitDate"] != DBNull.Value)
|
|
|
data.SubmitDate = Convert.ToDateTime(reader["SubmitDate"]).ToString("yyyy-MM-dd HH:mm:ss");
|
|
|
data.Auditoperator = Convert.ToString(reader["Auditoperatorref"]);
|
|
|
|
|
|
if (reader["AuditDate"] != DBNull.Value)
|
|
|
data.AuditDate = Convert.ToDateTime(reader["AuditDate"]).ToString("yyyy-MM-dd HH:mm:ss");
|
|
|
data.EnteroPerator = Convert.ToString(reader["EnteroPerator"]);
|
|
|
data.OpName = Convert.ToString(reader["OpName"]);
|
|
|
if (reader["EnterDate"] != DBNull.Value)
|
|
|
data.EnterDate = Convert.ToDateTime(reader["EnterDate"]).ToString("yyyy-MM-dd HH:mm:ss");
|
|
|
data.DebitNo = Convert.ToString(reader["DebitNo"]);
|
|
|
if (reader["IsDebit"] != DBNull.Value)
|
|
|
data.IsDebit = Convert.ToString(reader["IsDebit"]);
|
|
|
if (reader["IsOpen"] != DBNull.Value)
|
|
|
data.IsOpen = Convert.ToString(reader["IsOpen"]);
|
|
|
if (reader["IsAdvancedpay"] != DBNull.Value)
|
|
|
data.IsAdvancedpay = Convert.ToString(reader["IsAdvancedpay"]);
|
|
|
data.Sort = Convert.ToString(reader["Sort"]);
|
|
|
if (reader["IsInvoice"] != DBNull.Value)
|
|
|
data.IsInvoice = Convert.ToString(reader["IsInvoice"]);
|
|
|
data.FeeFrt = Convert.ToString(reader["FeeFrt"]);
|
|
|
data.IsCrmOrderFee = Convert.ToString(reader["IsCrmOrderFee"]);
|
|
|
data.AuditStatus = Convert.ToDecimal(reader["AuditStatus"]);
|
|
|
data.InvoiceNum = Convert.ToString(reader["InvoiceNum"]);
|
|
|
data.ChequeNum = Convert.ToString(reader["ChequeNum"]);
|
|
|
data.WmsOutBsNo = Convert.ToString(reader["WmsOutBsNo"]);
|
|
|
data.LineNum = Convert.ToDecimal(reader["LineNum"]);
|
|
|
if (reader["IsAudit"] != DBNull.Value)
|
|
|
data.IsAudit = Convert.ToString(reader["IsAudit"]);
|
|
|
data.INPUTMODE = Convert.ToString(reader["INPUTMODE"]);
|
|
|
data.SALECORP= Convert.ToString(reader["SALECORP"]);
|
|
|
if (reader["PREAMOUNT"] != DBNull.Value)
|
|
|
data.PreAmount = Convert.ToDecimal(reader["PREAMOUNT"]);
|
|
|
|
|
|
if (data.AccTaxRate != 0)
|
|
|
{
|
|
|
data.AccTax = Math.Round(data.Amount / (1 + data.AccTaxRate / 100) * data.AccTaxRate / 100, 2, MidpointRounding.AwayFromZero);
|
|
|
|
|
|
}
|
|
|
if (reader["TAX"] != DBNull.Value)
|
|
|
data.Tax = Convert.ToDecimal(reader["TAX"]);
|
|
|
if (data.Tax == 0 && data.TaxRate != 0 && data.NoTaxAmount != 0)
|
|
|
{
|
|
|
data.Tax = Math.Round(data.Amount - data.NoTaxAmount, 2);
|
|
|
}
|
|
|
data.AccAmount = data.Amount - data.AccTax;
|
|
|
#endregion
|
|
|
|
|
|
bodyList.Add(data);
|
|
|
}
|
|
|
reader.Close();
|
|
|
}
|
|
|
|
|
|
return bodyList;
|
|
|
}
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#region Inquery BillDataList
|
|
|
|
|
|
static public List<MsOpBill> GetBillDataList(string strCondition, string userid, string username, string companyid,string sort = null,bool all=false)
|
|
|
{
|
|
|
|
|
|
var strSql = new StringBuilder();
|
|
|
var rangstr = GetListRangDAStr("index", userid, username, companyid);
|
|
|
if (!string.IsNullOrEmpty(rangstr))
|
|
|
{
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
|
{
|
|
|
strCondition = strCondition + " and " + rangstr;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
strCondition = rangstr;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//if (all == true)
|
|
|
strSql.Append("SELECT ");
|
|
|
//else
|
|
|
// strSql.Append("SELECT TOP 100 ");
|
|
|
strSql.Append(" BSNO,PARENTID,OPLB,OPLBNAME,BSSTATUS,FEESTATUS,ACCDATE,MBLNO,HBLNO,CUSTNO,CUSTOMNO,BSTYPE,OPTYPE,ORDERNO,CREATETIME,BLTYPE ");
|
|
|
strSql.Append(",CUSTOMERNAME,INVNO,BillFeeStatus,BILLFEESTATUSTIME");
|
|
|
strSql.Append(",VESSEL,VOYNO,ETD,PORTLOAD,PLACERECEIPT,DESTINATION ");
|
|
|
strSql.Append(",PORTDISCHARGE,INPUTBY,OP,CUSTSERVICE,GOODSNAME");
|
|
|
strSql.Append(",DOC,SALE,ENTERP,BSSOURCE,BSSOURCEDETAIL,CUSTOMSNUM,CNTRTOTAL,PKGS,CBM,KGS,BSCUSTOMNO,REMARK,TRADETERM,REASON,BLFRT");
|
|
|
strSql.Append(",(CASE BSSTATUS WHEN 1 THEN '锁定' else '未锁定' end) as BSSTATUSREF");
|
|
|
strSql.Append(",(CASE FEESTATUS WHEN 1 THEN '锁定' else '未锁定' end) as FEESTATUSREF");
|
|
|
strSql.Append(",dbo.F_GetBillDrFeeStatus(v_op_bill.BSNO) DRFEESTATUS");
|
|
|
strSql.Append(",dbo.F_GetBillCrFeeStatus(v_op_bill.BSNO) CRFEESTATUS");
|
|
|
strSql.Append(",(SELECT TOP 1 STATUS+' '+ CONVERT(varchar(100),COMPTIME, 20) FROM OP_STATUS WHERE BSNO=v_op_bill.BSNO AND STTYPE='2' ORDER BY COMPTIME DESC,INPUTTIME DESC) as OPSTATUS ");
|
|
|
strSql.Append(",(SELECT TOP 1 COMMISSIONRATE FROM V_Client_ACCDATE WHERE SHORTNAME=v_op_bill.CUSTOMERNAME ORDER BY BGNDATE DESC) as COMMISSIONRATE ");
|
|
|
strSql.Append(",CARRIER,YARD,FORWARDER,CONTRACTNO,ISSUETYPE,SERVICE,REMARK2,CARGOID,DCLASS ");
|
|
|
strSql.Append(",SALEDEPT,(select [NAME] from [company] where GID=v_op_bill.SALECORPID) as SALECORP,'' BILLFEEOP ");//
|
|
|
|
|
|
strSql.Append(" from v_op_bill ");
|
|
|
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
|
{
|
|
|
strSql.Append(" where " + strCondition);
|
|
|
}
|
|
|
var sortstring = DatasetSort.Getsortstring(sort);
|
|
|
|
|
|
|
|
|
if (!string.IsNullOrEmpty(sortstring))
|
|
|
{
|
|
|
strSql.Append(" order by " + sortstring);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
//strSql.Append(" order by ETD,MBLNO");
|
|
|
}
|
|
|
return SetBillData(strSql);
|
|
|
}
|
|
|
static public string GetBillDataListStr(string strCondition, string userid, string username, string companyid, string sort = null, bool all = false)
|
|
|
{
|
|
|
|
|
|
var strSql = new StringBuilder();
|
|
|
var rangstr = GetListRangDAStr("index", userid, username, companyid);
|
|
|
if (!string.IsNullOrEmpty(rangstr))
|
|
|
{
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
|
{
|
|
|
strCondition = strCondition + " and " + rangstr;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
strCondition = rangstr;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//if (all == true)
|
|
|
strSql.Append("SELECT ");
|
|
|
//else
|
|
|
// strSql.Append("SELECT TOP 100 ");
|
|
|
strSql.Append(" BSNO,PARENTID,OPLB,OPLBNAME,BSSTATUS,FEESTATUS,ACCDATE,MBLNO,HBLNO,CUSTNO,CUSTOMNO,BSTYPE,OPTYPE,ORDERNO,CREATETIME,BLTYPE ");
|
|
|
strSql.Append(",CUSTOMERNAME,INVNO,BillFeeStatus,BILLFEESTATUSTIME");
|
|
|
strSql.Append(",VESSEL,VOYNO,ETD,PORTLOAD,PLACERECEIPT,DESTINATION ");
|
|
|
strSql.Append(",PORTDISCHARGE,INPUTBY,OP,CUSTSERVICE,GOODSNAME");
|
|
|
strSql.Append(",DOC,SALE,ENTERP,BSSOURCE,BSSOURCEDETAIL,CUSTOMSNUM,CNTRTOTAL,PKGS,CBM,KGS,BSCUSTOMNO,REMARK,TRADETERM,REASON,BLFRT");
|
|
|
strSql.Append(",(CASE BSSTATUS WHEN 1 THEN '锁定' else '未锁定' end) as BSSTATUSREF");
|
|
|
strSql.Append(",(CASE FEESTATUS WHEN 1 THEN '锁定' else '未锁定' end) as FEESTATUSREF");
|
|
|
strSql.Append(",dbo.F_GetBillDrFeeStatus(v_op_bill.BSNO) DRFEESTATUS");
|
|
|
strSql.Append(",dbo.F_GetBillCrFeeStatus(v_op_bill.BSNO) CRFEESTATUS");
|
|
|
strSql.Append(",(SELECT TOP 1 STATUS+' '+ CONVERT(varchar(100),COMPTIME, 20) FROM OP_STATUS WHERE BSNO=v_op_bill.BSNO AND STTYPE='2' ORDER BY COMPTIME DESC,INPUTTIME DESC) as OPSTATUS ");
|
|
|
strSql.Append(",(SELECT TOP 1 COMMISSIONRATE FROM V_Client_ACCDATE WHERE SHORTNAME=v_op_bill.CUSTOMERNAME ORDER BY BGNDATE DESC) as COMMISSIONRATE ");
|
|
|
strSql.Append(",CARRIER,YARD,FORWARDER,CONTRACTNO,ISSUETYPE,SERVICE,REMARK2,CARGOID,DCLASS ");
|
|
|
strSql.Append(",SALEDEPT,(select [NAME] from [company] where GID=v_op_bill.SALECORPID) as SALECORP,'' BILLFEEOP ");//
|
|
|
|
|
|
strSql.Append(" from v_op_bill ");
|
|
|
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
|
{
|
|
|
strSql.Append(" where " + strCondition);
|
|
|
}
|
|
|
var sortstring = DatasetSort.Getsortstring(sort);
|
|
|
|
|
|
|
|
|
if (!string.IsNullOrEmpty(sortstring))
|
|
|
{
|
|
|
strSql.Append(" order by " + sortstring);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
//strSql.Append(" order by ETD,MBLNO");
|
|
|
}
|
|
|
return strSql.ToString();
|
|
|
}
|
|
|
static public List<MsOpBill> GetBillDataList(int start, int limit, string strCondition, string userid, string username, string companyid, string sort = null, bool all = false)
|
|
|
{
|
|
|
|
|
|
var strSql = new StringBuilder();
|
|
|
var rangstr = GetListRangDAStr("index", userid, username, companyid);
|
|
|
if (!string.IsNullOrEmpty(rangstr))
|
|
|
{
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
|
{
|
|
|
strCondition = strCondition + " and " + rangstr;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
strCondition = rangstr;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
strSql.Append(@"SELECT * from (SELECT row_number() over (");
|
|
|
|
|
|
var sortstring = DatasetSort.Getsortstring(sort);
|
|
|
|
|
|
|
|
|
if (!string.IsNullOrEmpty(sortstring))
|
|
|
{
|
|
|
strSql.Append(" order by " + sortstring);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
strSql.Append(" order by ETD,MBLNO");
|
|
|
}
|
|
|
|
|
|
strSql.Append(@") as num , * from (");
|
|
|
|
|
|
strSql.Append(" SELECT BSNO,PARENTID,OPLB,OPLBNAME,BSSTATUS,FEESTATUS,ACCDATE,MBLNO,HBLNO,CUSTNO,CUSTOMNO,BSTYPE,OPTYPE,ORDERNO,CREATETIME,BLTYPE ");
|
|
|
strSql.Append(",CUSTOMERNAME,INVNO,BillFeeStatus,BILLFEESTATUSTIME");
|
|
|
strSql.Append(",VESSEL,VOYNO,ETD,PORTLOAD,PLACERECEIPT,DESTINATION ");
|
|
|
strSql.Append(",PORTDISCHARGE,INPUTBY,OP,CUSTSERVICE,GOODSNAME");
|
|
|
strSql.Append(",DOC,SALE,ENTERP,BSSOURCE,BSSOURCEDETAIL,CUSTOMSNUM,CNTRTOTAL,PKGS,CBM,KGS,BSCUSTOMNO,REMARK,TRADETERM,REASON,BLFRT");
|
|
|
strSql.Append(",(CASE BSSTATUS WHEN 1 THEN '锁定' else '未锁定' end) as BSSTATUSREF");
|
|
|
strSql.Append(",(CASE FEESTATUS WHEN 1 THEN '锁定' else '未锁定' end) as FEESTATUSREF");
|
|
|
strSql.Append(",dbo.F_GetBillDrFeeStatus(v_op_bill.BSNO) DRFEESTATUS");
|
|
|
strSql.Append(",dbo.F_GetBillCrFeeStatus(v_op_bill.BSNO) CRFEESTATUS");
|
|
|
strSql.Append(",(SELECT TOP 1 STATUS+' '+ CONVERT(varchar(100),COMPTIME, 20) FROM OP_STATUS WHERE BSNO=v_op_bill.BSNO AND STTYPE='2' ORDER BY COMPTIME DESC,INPUTTIME DESC) as OPSTATUS ");
|
|
|
strSql.Append(",(SELECT TOP 1 COMMISSIONRATE FROM V_Client_ACCDATE WHERE SHORTNAME=v_op_bill.CUSTOMERNAME ORDER BY BGNDATE DESC) as COMMISSIONRATE ");
|
|
|
strSql.Append(",CARRIER,YARD,FORWARDER,CONTRACTNO,ISSUETYPE,SERVICE,REMARK2,CARGOID,DCLASS ");//
|
|
|
strSql.Append(",SALEDEPT,(select [NAME] from [company] where GID=v_op_bill.SALECORPID) as SALECORP,'' BILLFEEOP ");//
|
|
|
|
|
|
strSql.Append(" from v_op_bill ");
|
|
|
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
|
{
|
|
|
strSql.Append(" where " + strCondition);
|
|
|
}
|
|
|
strSql.Append(" ) as v ");
|
|
|
strSql.Append(@")as t ");
|
|
|
strSql.Append(string.Format("where t.num>{0} and t.num<={1} ", start, start + limit)); //
|
|
|
|
|
|
return SetBillData(strSql);
|
|
|
}
|
|
|
|
|
|
static public List<MsOpBill> GetBillDataList3(int start, int limit, string strCondition, string userid, string username, string companyid, string sort = null, bool all = false)
|
|
|
{
|
|
|
|
|
|
var strSql = new StringBuilder();
|
|
|
var rangstr = GetListRangDAStr("index", userid, username, companyid);
|
|
|
if (!string.IsNullOrEmpty(rangstr))
|
|
|
{
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
|
{
|
|
|
strCondition = strCondition + " and " + rangstr;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
strCondition = rangstr;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
//strSql.Append(@"SELECT * from (SELECT row_number() over (");
|
|
|
|
|
|
|
|
|
|
|
|
//strSql.Append(@") as num , * from (");
|
|
|
|
|
|
strSql.Append(" SELECT BSNO,PARENTID,OPLB,OPLBNAME,BSSTATUS,FEESTATUS,ACCDATE,MBLNO,HBLNO,CUSTNO,CUSTOMNO,BSTYPE,OPTYPE,ORDERNO,CREATETIME,BLTYPE ");
|
|
|
strSql.Append(",CUSTOMERNAME,INVNO,BillFeeStatus,BILLFEESTATUSTIME");
|
|
|
strSql.Append(",VESSEL,VOYNO,ETD,PORTLOAD,PLACERECEIPT,DESTINATION ");
|
|
|
strSql.Append(",PORTDISCHARGE,INPUTBY,OP,CUSTSERVICE,GOODSNAME");
|
|
|
strSql.Append(",DOC,SALE,ENTERP,BSSOURCE,BSSOURCEDETAIL,CUSTOMSNUM,CNTRTOTAL,PKGS,CBM,KGS,BSCUSTOMNO,REMARK,TRADETERM,REASON,BLFRT");
|
|
|
strSql.Append(",(CASE BSSTATUS WHEN 1 THEN '锁定' else '未锁定' end) as BSSTATUSREF");
|
|
|
strSql.Append(",(CASE FEESTATUS WHEN 1 THEN '锁定' else '未锁定' end) as FEESTATUSREF");
|
|
|
strSql.Append(",dbo.F_GetBillDrFeeStatus(v_op_bill.BSNO) DRFEESTATUS");
|
|
|
strSql.Append(",dbo.F_GetBillCrFeeStatus(v_op_bill.BSNO) CRFEESTATUS");
|
|
|
strSql.Append(",(SELECT TOP 1 STATUS+' '+ CONVERT(varchar(100),COMPTIME, 20) FROM OP_STATUS WHERE BSNO=v_op_bill.BSNO AND STTYPE='2' ORDER BY COMPTIME DESC,INPUTTIME DESC) as OPSTATUS ");
|
|
|
strSql.Append(",(SELECT TOP 1 COMMISSIONRATE FROM V_Client_ACCDATE WHERE SHORTNAME=v_op_bill.CUSTOMERNAME ORDER BY BGNDATE DESC) as COMMISSIONRATE ");
|
|
|
strSql.Append(",CARRIER,YARD,FORWARDER,CONTRACTNO,ISSUETYPE,SERVICE,REMARK2,CARGOID,DCLASS ");//
|
|
|
strSql.Append(",SALEDEPT,(select [NAME] from [company] where GID=v_op_bill.SALECORPID) as SALECORP,(select top 1 SHOWNAME from VW_user where userid in (select top 1 op from workflow_using where TYPENO='602' and bsno=v_op_bill.bsno)) BILLFEEOP ");//
|
|
|
|
|
|
strSql.Append(" from v_op_bill ");
|
|
|
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
|
{
|
|
|
strSql.Append(" where " + strCondition);
|
|
|
}
|
|
|
|
|
|
var sortstring = DatasetSort.Getsortstring(sort);
|
|
|
|
|
|
|
|
|
if (!string.IsNullOrEmpty(sortstring))
|
|
|
{
|
|
|
strSql.Append(" order by " + sortstring);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
strSql.Append(" order by ETD,MBLNO");
|
|
|
}
|
|
|
//strSql.Append(" ) as v ");
|
|
|
//strSql.Append(@")as t ");
|
|
|
//strSql.Append(string.Format("where t.num>{0} and t.num<={1} ", start, start + limit)); //
|
|
|
|
|
|
return SetBillData(strSql);
|
|
|
}
|
|
|
|
|
|
public static int getTotalCount(string strCondition, string userid, string username, string companyid)
|
|
|
{
|
|
|
var rangstr = GetListRangDAStr("index", userid, username, companyid);
|
|
|
if (!string.IsNullOrEmpty(rangstr))
|
|
|
{
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
|
{
|
|
|
strCondition = strCondition + " and " + rangstr;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
strCondition = rangstr;
|
|
|
}
|
|
|
}
|
|
|
StringBuilder strSql = new StringBuilder();
|
|
|
strSql.Append("select count(*) ");
|
|
|
strSql.Append(" from v_op_bill WITH (NOLOCK)");
|
|
|
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
|
{
|
|
|
strSql.Append(" where " + strCondition);
|
|
|
}
|
|
|
int cnt = 0;
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
|
{
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
cnt = Convert.ToInt32(reader[0]);
|
|
|
}
|
|
|
}
|
|
|
return cnt;
|
|
|
}
|
|
|
|
|
|
public int GetTotalCount(string strCondition, string userid, string usercode, string companyid)
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
return getTotalCount(strCondition, userid, usercode, companyid);
|
|
|
}
|
|
|
catch (Exception e)
|
|
|
{
|
|
|
return 0;
|
|
|
}
|
|
|
}
|
|
|
private static List<MsOpBill> SetBillData(StringBuilder strSql)
|
|
|
{
|
|
|
var headList = new List<MsOpBill>();
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
|
|
|
SqlCommand cmd =new SqlCommand();
|
|
|
cmd.CommandText =strSql.ToString();
|
|
|
cmd.CommandTimeout = 120000; //要加这一句
|
|
|
|
|
|
using (IDataReader reader = db.ExecuteReader(cmd))
|
|
|
{
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
MsOpBill data = new MsOpBill();
|
|
|
#region Set DB data to Object
|
|
|
data.BSNO = Convert.ToString(reader["BSNO"]);
|
|
|
data.PARENTID = Convert.ToString(reader["PARENTID"]);
|
|
|
if (reader["ETD"] != DBNull.Value)
|
|
|
data.ETD = Convert.ToString(reader["ETD"]);
|
|
|
data.ACCDATE = Convert.ToString(reader["ACCDATE"]);
|
|
|
data.OPLB = Convert.ToString(reader["OPLB"]);
|
|
|
data.OPLBNAME = Convert.ToString(reader["OPLBNAME"]);
|
|
|
data.BSTYPE = Convert.ToString(reader["BSTYPE"]);
|
|
|
data.OPTYPE = Convert.ToString(reader["OPTYPE"]);
|
|
|
data.MBLNO = Convert.ToString(reader["MBLNO"]);
|
|
|
data.HBLNO = Convert.ToString(reader["HBLNO"]);
|
|
|
data.CUSTNO = Convert.ToString(reader["CUSTNO"]);
|
|
|
data.CUSTOMNO = Convert.ToString(reader["CUSTOMNO"]);
|
|
|
data.ORDERNO = Convert.ToString(reader["ORDERNO"]);
|
|
|
data.INVNO = Convert.ToString(reader["INVNO"]);
|
|
|
data.CUSTOMERNAME = Convert.ToString(reader["CUSTOMERNAME"]);
|
|
|
data.VESSEL = Convert.ToString(reader["VESSEL"]);
|
|
|
data.VOYNO = Convert.ToString(reader["VOYNO"]);
|
|
|
data.PORTLOAD = Convert.ToString(reader["PORTLOAD"]);
|
|
|
data.PLACERECEIPT = Convert.ToString(reader["PLACERECEIPT"]);
|
|
|
data.PORTLOAD = Convert.ToString(reader["PORTLOAD"]);
|
|
|
data.DESTINATION = Convert.ToString(reader["DESTINATION"]);
|
|
|
data.PORTDISCHARGE = Convert.ToString(reader["PORTDISCHARGE"]);
|
|
|
data.INPUTBY = Convert.ToString(reader["INPUTBY"]);
|
|
|
data.OP = Convert.ToString(reader["OP"]);
|
|
|
data.CUSTSERVICE = Convert.ToString(reader["CUSTSERVICE"]);
|
|
|
data.DOC = Convert.ToString(reader["DOC"]);
|
|
|
data.SALE = Convert.ToString(reader["SALE"]);
|
|
|
data.ENTERP = Convert.ToString(reader["ENTERP"]);
|
|
|
data.BSSOURCE = Convert.ToString(reader["BSSOURCE"]);
|
|
|
data.BSSOURCEDETAIL = Convert.ToString(reader["BSSOURCEDETAIL"]);
|
|
|
if (reader["CUSTOMSNUM"] != DBNull.Value)
|
|
|
data.CUSTOMSNUM = Convert.ToInt32(reader["CUSTOMSNUM"]);
|
|
|
data.PKGS = Convert.ToString(reader["PKGS"]);
|
|
|
data.CBM = Convert.ToString(reader["CBM"]);
|
|
|
data.KGS = Convert.ToString(reader["KGS"]);
|
|
|
data.BSCUSTOMNO = Convert.ToString(reader["BSCUSTOMNO"]);
|
|
|
if (reader["BSSTATUS"] != DBNull.Value)
|
|
|
data.BSSTATUS = Convert.ToBoolean(reader["BSSTATUS"]);
|
|
|
if (reader["FEESTATUS"] != DBNull.Value)
|
|
|
data.FEESTATUS = Convert.ToBoolean(reader["FEESTATUS"]);
|
|
|
data.BSSTATUSREF = Convert.ToString(reader["BSSTATUSREF"]);// 业务状态
|
|
|
data.FEESTATUSREF = Convert.ToString(reader["FEESTATUSREF"]);// 费用状态
|
|
|
data.DRFEESTATUS = getfeestatus(Convert.ToString(reader["DRFEESTATUS"]));
|
|
|
data.CRFEESTATUS = getfeestatus(Convert.ToString(reader["CRFEESTATUS"]));
|
|
|
data.CNTRTOTAL = Convert.ToString(reader["CNTRTOTAL"]);//集装箱全部内容
|
|
|
data.OPSTATUS = Convert.ToString(reader["OPSTATUS"]);
|
|
|
data.REMARK = Convert.ToString(reader["REMARK"]);
|
|
|
data.REASON = Convert.ToString(reader["REASON"]);
|
|
|
data.CREATETIME = Convert.ToString(reader["CREATETIME"]);
|
|
|
data.BillFeeStatus = Convert.ToString(reader["BillFeeStatus"]);
|
|
|
data.COMMISSIONRATE = Convert.ToString(reader["COMMISSIONRATE"]);
|
|
|
data.GOODSNAME= Convert.ToString(reader["GOODSNAME"]);
|
|
|
data.BLFRT = Convert.ToString(reader["BLFRT"]);
|
|
|
data.CARRIER = Convert.ToString(reader["CARRIER"]);
|
|
|
data.YARD = Convert.ToString(reader["YARD"]);
|
|
|
data.FORWARDER = Convert.ToString(reader["FORWARDER"]);
|
|
|
data.CONTRACTNO = Convert.ToString(reader["CONTRACTNO"]);
|
|
|
data.ISSUETYPE = Convert.ToString(reader["ISSUETYPE"]);
|
|
|
data.SERVICE = Convert.ToString(reader["SERVICE"]);
|
|
|
data.REMARK2 = Convert.ToString(reader["REMARK2"]);
|
|
|
if (reader["BILLFEESTATUSTIME"] != DBNull.Value)
|
|
|
data.BILLFEESTATUSTIME = Convert.ToString(reader["BILLFEESTATUSTIME"]);
|
|
|
data.SALEDEPT = Convert.ToString(reader["SALEDEPT"]);
|
|
|
data.SALECORP = Convert.ToString(reader["SALECORP"]);
|
|
|
data.BLTYPE = Convert.ToString(reader["BLTYPE"]);
|
|
|
data.BILLFEEOP = Convert.ToString(reader["BILLFEEOP"]);
|
|
|
data.CARGOID = Convert.ToString(reader["CARGOID"]);
|
|
|
data.DCLASS = Convert.ToString(reader["DCLASS"]);
|
|
|
#endregion
|
|
|
headList.Add(data);
|
|
|
}
|
|
|
reader.Close();
|
|
|
}
|
|
|
return headList;
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 陆运
|
|
|
|
|
|
static public List<BillTruck> GetTruckBillDataList(int start, int limit, string strCondition, string userid, string username, string companyid, string sort = null, bool all = false)
|
|
|
{
|
|
|
|
|
|
var strSql = new StringBuilder();
|
|
|
var rangstr = GetTruckListRangDAStr("index", userid, username, companyid);
|
|
|
if (!string.IsNullOrEmpty(rangstr))
|
|
|
{
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
|
{
|
|
|
strCondition = strCondition + " and " + rangstr;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
strCondition = rangstr;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
strSql.Append(@"SELECT * from (SELECT row_number() over (");
|
|
|
|
|
|
var sortstring = DatasetSort.Getsortstring(sort);
|
|
|
|
|
|
|
|
|
if (!string.IsNullOrEmpty(sortstring))
|
|
|
{
|
|
|
strSql.Append(" order by " + sortstring);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
strSql.Append(" order by ETD,MBLNO");
|
|
|
}
|
|
|
|
|
|
strSql.Append(@") as num , ");
|
|
|
|
|
|
strSql.Append("BSNO,OPTYPE,TRANSTYPE,TRANSSTATUS,CUSTOMERNAME,CUSTNO,CONTRACTNO,ORDERNO,BSDATE,");
|
|
|
strSql.Append("ETD,ETA,OP,SALE,CUSTSERVICE,CUSTATTN,CUSTTEL,CONSIGNEENAME,CONSIGNEEATTN,CONSIGNEETEL,CONSIGNEEADDR,");
|
|
|
strSql.Append("PORTLOAD,PORTDISCHARGE,GOODSNAME,KGS,NETWEIGHT,CBM,PKGS,KINDPKGS,TRUCKER,TRUCKNO,MBLNO");
|
|
|
strSql.Append(",dbo.F_GetBillDrFeeStatus(v_op_truck_bulk.BSNO) DRFEESTATUS");
|
|
|
strSql.Append(",dbo.F_GetBillCrFeeStatus(v_op_truck_bulk.BSNO) CRFEESTATUS");
|
|
|
|
|
|
|
|
|
strSql.Append(" from v_op_truck_bulk ");
|
|
|
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
|
{
|
|
|
strSql.Append(" where " + strCondition);
|
|
|
}
|
|
|
strSql.Append(@")as t ");
|
|
|
strSql.Append(string.Format("where t.num>{0} and t.num<={1} ", start, start + limit)); //
|
|
|
|
|
|
return SetTruckBillData(strSql);
|
|
|
}
|
|
|
|
|
|
public static int getTruckTotalCount(string strCondition, string userid, string username, string companyid)
|
|
|
{
|
|
|
var rangstr = GetTruckListRangDAStr("index", userid, username, companyid);
|
|
|
if (!string.IsNullOrEmpty(rangstr))
|
|
|
{
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
|
{
|
|
|
strCondition = strCondition + " and " + rangstr;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
strCondition = rangstr;
|
|
|
}
|
|
|
}
|
|
|
StringBuilder strSql = new StringBuilder();
|
|
|
strSql.Append("select count(*) ");
|
|
|
strSql.Append(" from v_op_truck_bulk ");
|
|
|
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
|
{
|
|
|
strSql.Append(" where " + strCondition);
|
|
|
}
|
|
|
int cnt = 0;
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
|
{
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
cnt = Convert.ToInt32(reader[0]);
|
|
|
}
|
|
|
}
|
|
|
return cnt;
|
|
|
}
|
|
|
|
|
|
private static List<BillTruck> SetTruckBillData(StringBuilder strSql)
|
|
|
{
|
|
|
var headList = new List<BillTruck>();
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
|
|
|
SqlCommand cmd = new SqlCommand();
|
|
|
cmd.CommandText = strSql.ToString();
|
|
|
cmd.CommandTimeout = 120000; //要加这一句
|
|
|
|
|
|
using (IDataReader reader = db.ExecuteReader(cmd))
|
|
|
{
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
BillTruck data = new BillTruck();
|
|
|
#region Set DB data to Object
|
|
|
data.TRANSTYPE = Convert.ToString(reader["TRANSTYPE"]);
|
|
|
data.OPTYPE = Convert.ToString(reader["OPTYPE"]);
|
|
|
|
|
|
data.BSNO = Convert.ToString(reader["BSNO"]);
|
|
|
if (reader["ETD"] != DBNull.Value)
|
|
|
data.ETD = Convert.ToDateTime(reader["ETD"]).ToString("yyyy-MM-dd");
|
|
|
if (reader["ETA"] != DBNull.Value)
|
|
|
data.ETA = Convert.ToDateTime(reader["ETA"]).ToString("yyyy-MM-dd");
|
|
|
data.ORDERNO = Convert.ToString(reader["ORDERNO"]);
|
|
|
data.CONTRACTNO = Convert.ToString(reader["CONTRACTNO"]);
|
|
|
data.CUSTATTN = Convert.ToString(reader["CUSTATTN"]);
|
|
|
data.MBLNO = Convert.ToString(reader["MBLNO"]);
|
|
|
data.CUSTTEL = Convert.ToString(reader["CUSTTEL"]);
|
|
|
data.CUSTNO = Convert.ToString(reader["CUSTNO"]);
|
|
|
data.CONSIGNEENAME = Convert.ToString(reader["CONSIGNEENAME"]);
|
|
|
data.CUSTOMERNAME = Convert.ToString(reader["CUSTOMERNAME"]);
|
|
|
data.CONSIGNEEATTN = Convert.ToString(reader["CONSIGNEEATTN"]);
|
|
|
data.CONSIGNEETEL = Convert.ToString(reader["CONSIGNEETEL"]);
|
|
|
data.PORTLOAD = Convert.ToString(reader["PORTLOAD"]);
|
|
|
data.PORTDISCHARGE = Convert.ToString(reader["PORTDISCHARGE"]);
|
|
|
data.CONSIGNEEADDR = Convert.ToString(reader["CONSIGNEEADDR"]);
|
|
|
data.OP = Convert.ToString(reader["OP"]);
|
|
|
data.CUSTSERVICE = Convert.ToString(reader["CUSTSERVICE"]);
|
|
|
data.SALE = Convert.ToString(reader["SALE"]);
|
|
|
data.GOODSNAME = Convert.ToString(reader["GOODSNAME"]);
|
|
|
data.TRUCKER = Convert.ToString(reader["TRUCKER"]);
|
|
|
data.TRUCKNO = Convert.ToString(reader["TRUCKNO"]);
|
|
|
data.PORTLOAD = Convert.ToString(reader["PORTLOAD"]);
|
|
|
data.PORTDISCHARGE = Convert.ToString(reader["PORTDISCHARGE"]);
|
|
|
data.KINDPKGS = Convert.ToString(reader["KINDPKGS"]);
|
|
|
if (reader["PKGS"] != DBNull.Value)
|
|
|
data.PKGS = Convert.ToInt32(reader["PKGS"]);
|
|
|
if (reader["KGS"] != DBNull.Value)
|
|
|
data.KGS = Convert.ToDecimal(reader["KGS"]);
|
|
|
if (reader["NETWEIGHT"] != DBNull.Value)
|
|
|
data.NETWEIGHT = Convert.ToDecimal(reader["NETWEIGHT"]);
|
|
|
if (reader["CBM"] != DBNull.Value)
|
|
|
data.CBM = Convert.ToDecimal(reader["CBM"]);
|
|
|
|
|
|
#endregion
|
|
|
headList.Add(data);
|
|
|
}
|
|
|
reader.Close();
|
|
|
}
|
|
|
return headList;
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
public static string getfeestatus(string feestatusint)
|
|
|
{
|
|
|
var result = "";
|
|
|
if (feestatusint == "0:")
|
|
|
{
|
|
|
return "审核通过";
|
|
|
}
|
|
|
else if (feestatusint == "1:")
|
|
|
{
|
|
|
return "录入状态";
|
|
|
}
|
|
|
else if (feestatusint == "2:")
|
|
|
{
|
|
|
return "提交审核";
|
|
|
}
|
|
|
else if (feestatusint == "8:")
|
|
|
{
|
|
|
return "部分结算";
|
|
|
}
|
|
|
else if (feestatusint == "9:")
|
|
|
{
|
|
|
return "结算完毕";
|
|
|
}
|
|
|
else if (feestatusint == "")
|
|
|
{
|
|
|
return "未录入";
|
|
|
}
|
|
|
else if (feestatusint == "3:")
|
|
|
{
|
|
|
return "申请修改";
|
|
|
}
|
|
|
else if (feestatusint == "4:")
|
|
|
{
|
|
|
return "申请删除";
|
|
|
}
|
|
|
|
|
|
else if (feestatusint.IndexOf("9:") > -1)
|
|
|
{
|
|
|
return "部分结算";
|
|
|
}
|
|
|
else if (feestatusint.IndexOf("0:") > -1)
|
|
|
{
|
|
|
return "部分审核";
|
|
|
}
|
|
|
else if (feestatusint.IndexOf("2:") > -1)
|
|
|
{
|
|
|
return "部分提交";
|
|
|
}
|
|
|
else if (feestatusint.IndexOf("6:")>-1)
|
|
|
{
|
|
|
return "驳回提交";
|
|
|
}
|
|
|
else if (feestatusint.IndexOf("7:") > -1)
|
|
|
{
|
|
|
return "驳回申请";
|
|
|
}
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#region fee_gain
|
|
|
|
|
|
static public List<MsChFeeGain> GetDataGainList(string strCondition)
|
|
|
{
|
|
|
var strSql = new StringBuilder();
|
|
|
strSql.Append("SELECT ");
|
|
|
strSql.Append("GId,BsNo,RMBDR,");
|
|
|
strSql.Append("RMBCR,USDDR,USDCR,");
|
|
|
strSql.Append("OTDR,OTCR,DRTTL,CRTTL,RMBPROFIT,USDPROFIT,OTPROFIT,TTLPROFIT");
|
|
|
strSql.Append(",CREATETIME,CREATEUSER");
|
|
|
strSql.Append(" from fee_gain ");
|
|
|
|
|
|
if (strCondition.Trim() != String.Empty)
|
|
|
{
|
|
|
strSql.Append(" where " + strCondition);
|
|
|
}
|
|
|
|
|
|
return SetGainData(strSql);
|
|
|
}
|
|
|
|
|
|
private static List<MsChFeeGain> SetGainData(StringBuilder strSql)
|
|
|
{
|
|
|
var bodyList = new List<MsChFeeGain>();
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
|
{
|
|
|
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
MsChFeeGain data = new MsChFeeGain();
|
|
|
#region Set DB data to Object
|
|
|
data.GId = Convert.ToString(reader["GId"]);
|
|
|
data.BsNo = Convert.ToString(reader["BsNo"]);
|
|
|
data.RMBDR = Convert.ToDecimal(reader["RMBDR"]);
|
|
|
data.RMBCR = Convert.ToDecimal(reader["RMBCR"]);
|
|
|
data.USDDR = Convert.ToDecimal(reader["USDDR"]);
|
|
|
data.USDCR = Convert.ToDecimal(reader["USDCR"]);
|
|
|
data.OTDR = Convert.ToDecimal(reader["OTDR"]);
|
|
|
data.OTCR = Convert.ToDecimal(reader["OTCR"]);
|
|
|
data.TTLDR = Convert.ToDecimal(reader["DRTTL"]);
|
|
|
data.TTLCR = Convert.ToDecimal(reader["CRTTL"]);
|
|
|
data.RMBPROFIT = Convert.ToString(reader["RMBPROFIT"]);
|
|
|
data.USDPROFIT = Convert.ToString(reader["USDPROFIT"]);
|
|
|
data.OTPROFIT = Convert.ToString(reader["OTPROFIT"]);
|
|
|
data.TTLPROFIT = Convert.ToString(reader["TTLPROFIT"]);
|
|
|
|
|
|
data.CREATEUSER = Convert.ToString(reader["CREATEUSER"]);
|
|
|
if (reader["CREATETIME"] != DBNull.Value)
|
|
|
data.CREATETIME = Convert.ToDateTime(reader["CREATETIME"]);
|
|
|
#endregion
|
|
|
|
|
|
bodyList.Add(data);
|
|
|
}
|
|
|
reader.Close();
|
|
|
}
|
|
|
|
|
|
return bodyList;
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
public static DBResult SubmitAudit(String optype, String USERID, String bill, string bsno, string WorkFlowstr,string companyid)
|
|
|
{
|
|
|
var result = new DBResult();
|
|
|
var mblno = "";
|
|
|
T_ALL_DA T_ALL_DA = new T_ALL_DA();
|
|
|
var WorkFlowName = "FeeOpOpOtherRecvPayAudit";
|
|
|
|
|
|
WorkFlowName = GetWorkFlowName(WorkFlowName, optype);
|
|
|
|
|
|
//if (optype == "op_Seae" || optype == "op_SeaeOrder")
|
|
|
//{
|
|
|
// WorkFlowName = "FeeRecvPayAudit";
|
|
|
|
|
|
//} if (optype == "op_Seai")
|
|
|
//{
|
|
|
// WorkFlowName = "FeeRecvPayAudit";
|
|
|
// //WorkFlowName = "FeeSeaiRecvPayAudit";
|
|
|
|
|
|
//} if (optype == "op_Aire")
|
|
|
//{
|
|
|
// WorkFlowName = "AireFeeAudit";
|
|
|
|
|
|
//} if (optype == "op_Airi")
|
|
|
//{
|
|
|
// WorkFlowName = "AiriFeeAudit";
|
|
|
|
|
|
//} if (optype == "op_Apply")
|
|
|
//{
|
|
|
// WorkFlowName = "ApplyFeeAudit";
|
|
|
|
|
|
//} if (optype == "op_Bulk")
|
|
|
//{
|
|
|
// WorkFlowName = "BulkFeeAudit";
|
|
|
//} if (optype == "op_other" || optype == "tMsWlPcHead" || optype == "OpCtnBsCard" || optype == "import_main")
|
|
|
//{
|
|
|
// WorkFlowName = "FeeOpOpOtherRecvPayAudit";
|
|
|
//} if (optype == "op_railway")
|
|
|
//{
|
|
|
// WorkFlowName = "RailwayFeeAudit";
|
|
|
//}
|
|
|
//if (optype.ToLower() == "wms" || optype.ToLower() == "wms_in" || optype.ToLower() == "wms_out")
|
|
|
//{
|
|
|
// var value = WMSNewDAL.WMSNewDAL.GetSysFeeConfig("");
|
|
|
// if (value == "1") WorkFlowName = "FeeSeaiRecvPayAudit";
|
|
|
//}
|
|
|
|
|
|
if (WorkFlowstr != "") WorkFlowName = WorkFlowstr;
|
|
|
|
|
|
var WorkFlowid = "";
|
|
|
var billList = bill.Split(',');
|
|
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (var conn = db.CreateConnection())
|
|
|
{
|
|
|
conn.Open();
|
|
|
var tran = conn.BeginTransaction();
|
|
|
|
|
|
var 审核通过FEEIDList = new List<string>();
|
|
|
|
|
|
|
|
|
try
|
|
|
{
|
|
|
//20240329 特放业务的费用审批通过 扣额度
|
|
|
|
|
|
|
|
|
foreach (var billno in billList)
|
|
|
{
|
|
|
//if (optype == "OpCtnBsCard")
|
|
|
//{
|
|
|
// var _Comm = "update ch_fee set FEESTATUS=2 where GID=@GID";
|
|
|
// var cmdupdate = db.GetSqlStringCommand(_Comm);
|
|
|
// cmdupdate.Parameters.Clear();
|
|
|
// db.AddInParameter(cmdupdate, "@GID", DbType.String, billno);
|
|
|
// db.ExecuteNonQuery(cmdupdate, tran);
|
|
|
//}
|
|
|
//else
|
|
|
//{
|
|
|
|
|
|
if ((mblno == "")&&(bsno != ""))
|
|
|
mblno = T_ALL_DA.GetStrSQL("MBLNO", "select top 1 MBLNO+' 客户名称:'+CUSTOMERNAME+' 业务来源:'+BSSOURCE from v_op_bs where BSNO='" + bsno + "'");
|
|
|
if (mblno == "") mblno = bsno;
|
|
|
var tmpWorkFlowName=WorkFlowName;
|
|
|
if (WorkFlowid == "")
|
|
|
{
|
|
|
string lsSQL = "select * FROM workflow WHERE COMPANYID='" + companyid + "' AND ISCONDITION=1 and [TYPE]=(SELECT TYPENO FROM workflow_type WHERE [NAME]='" + tmpWorkFlowName + "') "
|
|
|
+ " and GID in (select workflowID from workflow_Userpath where userid ='" + USERID + "') order by SORTNO ";
|
|
|
DataSet dsworkflow = T_ALL_DA.GetAllSQL(lsSQL);
|
|
|
if (dsworkflow != null)
|
|
|
{
|
|
|
if (dsworkflow.Tables[0].Rows.Count > 0)
|
|
|
{
|
|
|
foreach (DataRow row in dsworkflow.Tables[0].Rows)
|
|
|
{
|
|
|
var CONDITIONSQL = Convert.ToString(row["CONDITIONSQL"]);
|
|
|
CONDITIONSQL = CONDITIONSQL.Replace("[业务编号]", "'" + bsno + "'");
|
|
|
var strCOUNT = T_ALL_DA.GetStrSQL("BLCT", CONDITIONSQL);
|
|
|
if (strCOUNT != "0")
|
|
|
{
|
|
|
WorkFlowid = Convert.ToString(row["GID"]);
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
if (WorkFlowid == "") WorkFlowid = "no";
|
|
|
|
|
|
}
|
|
|
|
|
|
Resultmb WorkResult = WorkFlowDAL.WorkFlowStart(WorkFlowName, billno, USERID, mblno, bsno, "Account/Chfee_Audit", WorkFlowid);
|
|
|
|
|
|
if (WorkResult.Success == true)
|
|
|
{
|
|
|
var _Comm = "";
|
|
|
if (WorkResult.islast == true)
|
|
|
{
|
|
|
_Comm = "update ch_fee set FEESTATUS=0 where GID=@GID";
|
|
|
|
|
|
审核通过FEEIDList.Add(billno);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
_Comm = "update ch_fee set FEESTATUS=2 where GID=@GID";
|
|
|
}
|
|
|
var cmdupdate = db.GetSqlStringCommand(_Comm);
|
|
|
cmdupdate.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdate, "@GID", DbType.String, billno);
|
|
|
db.ExecuteNonQuery(cmdupdate, tran);
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
|
|
|
result.Success = false;
|
|
|
result.Message = "提交审核错误!";
|
|
|
}
|
|
|
//}
|
|
|
}
|
|
|
|
|
|
result = new DBResult();
|
|
|
result.Success = true;
|
|
|
result.Message = "提交审核成功";
|
|
|
tran.Commit();
|
|
|
|
|
|
InfoClientLimitHelper.特放业务应收费用审核通过(审核通过FEEIDList, USERID);
|
|
|
|
|
|
}
|
|
|
catch (Exception)
|
|
|
{
|
|
|
tran.Rollback();
|
|
|
|
|
|
result.Success = false;
|
|
|
result.Message = "提交审核错误,请重试或联系系统管理员";
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
public static DBResult SubmitAuditAmend(string GidStr, string optype, string userid, string companyid, string bsno = "")
|
|
|
{
|
|
|
var workflowstr = "";
|
|
|
var AMENDSELFWORK = MsSysParamSetDAL.GetData("PARAMNAME='AMENDSELFWORKFLOW'");
|
|
|
if (AMENDSELFWORK.PARAMVALUE == "1") workflowstr = "AmendFeefyAudit";
|
|
|
|
|
|
|
|
|
DBResult result = Chfee_AuditDAL.SubmitAudit(optype, userid, GidStr, bsno, workflowstr, companyid);
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
public static string GetServiceFeeMsg(string optype, string bsno, Database db, DbTransaction tran)
|
|
|
{
|
|
|
var result = "";
|
|
|
var servicesql = "";
|
|
|
|
|
|
if (optype == "op_Seae" || optype == "op_SeaeOrder")
|
|
|
{
|
|
|
var head = MsOpSeaeDAL.MsOpSeaeDAL.GetData("BSNO='"+bsno+"'");
|
|
|
if (head.ISAGENT == true)
|
|
|
if (servicesql=="")
|
|
|
servicesql = " OPField='ISAGENT' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='ISAGENT' ";
|
|
|
if (head.ISBOOKING == true)
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='ISBOOKING' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='ISBOOKING' ";
|
|
|
if (head.ISFUMIGATION == true)
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='ISFUMIGATION' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='ISFUMIGATION' ";
|
|
|
if (head.ISSTORAGE == true)
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='ISSTORAGE' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='ISSTORAGE' ";
|
|
|
if (head.ISLAND == true)
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='ISLAND' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='ISLAND' ";
|
|
|
if (head.ISCUSTOMS == true)
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='ISCUSTOMS' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='ISCUSTOMS' ";
|
|
|
if (head.ISINSPECTION == true)
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='ISINSPECTION' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='ISINSPECTION' ";
|
|
|
if (head.ISHBLNO == true)
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='ISHBLNO' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='ISHBLNO' ";
|
|
|
if (head.SERVICE9 == true)
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='SERVICE9' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='SERVICE9' ";
|
|
|
if (head.SERVICE10 == true)
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='SERVICE10' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='SERVICE10' ";
|
|
|
if (servicesql == "") result = "";
|
|
|
else {
|
|
|
result = GetServiceFeesqlMsg("(" + servicesql + ") and FEENAME NOT IN (SELECT FEENAME FROM ch_fee where feetype=1 and bsno='" + bsno + "')",db,tran);
|
|
|
}
|
|
|
|
|
|
} if (optype == "op_Seai")
|
|
|
{
|
|
|
var head = MsOpSeaiDAL.MsOpSeaiDAL.GetData("BSNO='" + bsno + "'");
|
|
|
if (head.ISAGENT == true)
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='ISAGENT' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='ISAGENT' ";
|
|
|
if (head.ISBOOKING == true)
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='ISBOOKING' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='ISBOOKING' ";
|
|
|
if (head.ISFUMIGATION == true)
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='ISFUMIGATION' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='ISFUMIGATION' ";
|
|
|
if (head.ISSTORAGE == true)
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='ISSTORAGE' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='ISSTORAGE' ";
|
|
|
if (head.ISLAND == true)
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='ISLAND' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='ISLAND' ";
|
|
|
if (head.ISCUSTOMS == true)
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='ISCUSTOMS' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='ISCUSTOMS' ";
|
|
|
if (head.ISINSPECTION == true)
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='ISINSPECTION' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='ISINSPECTION' ";
|
|
|
if (head.ISHBLNO == true)
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='ISHBLNO' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='ISHBLNO' ";
|
|
|
if (head.SERVICE9 == true)
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='SERVICE9' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='SERVICE9' ";
|
|
|
if (head.SERVICE10 == true)
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='SERVICE10' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='SERVICE10' ";
|
|
|
if (servicesql == "") result = "";
|
|
|
else
|
|
|
{
|
|
|
result = GetServiceFeesqlMsg("(" + servicesql + ") and FEENAME NOT IN (SELECT FEENAME FROM ch_fee where feetype=1 and bsno='" + bsno + "')", db, tran);
|
|
|
}
|
|
|
|
|
|
} if (optype == "op_Aire")
|
|
|
{
|
|
|
var head = MsOpAireDAL.MsOpAireDAL.GetData("BSNO='" + bsno + "'");
|
|
|
if (head.IsSERVICE1 =="1")
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='SERVICE1' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='SERVICE1' ";
|
|
|
if (head.IsSERVICE2 == "1")
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='SERVICE2' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='SERVICE2' ";
|
|
|
if (head.IsSERVICE3 == "1")
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='SERVICE3' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='SERVICE3' ";
|
|
|
if (head.IsSERVICE4 == "1")
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='SERVICE4' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='SERVICE4' ";
|
|
|
if (head.IsSERVICE5 == "1")
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='SERVICE5' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='SERVICE5' ";
|
|
|
if (head.IsSERVICE6 == "1")
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='SERVICE6' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='SERVICE6' ";
|
|
|
if (head.IsSERVICE7 == "1")
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='SERVICE7' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='SERVICE7' ";
|
|
|
if (head.IsSERVICE8 == "1")
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='SERVICE8' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='SERVICE8' ";
|
|
|
if (head.IsSERVICE9 == "1")
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='SERVICE9' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='SERVICE9' ";
|
|
|
if (head.IsSERVICE10 == "1")
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='SERVICE10' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='SERVICE10' ";
|
|
|
|
|
|
if (servicesql == "") result = "";
|
|
|
else
|
|
|
{
|
|
|
result = GetServiceFeesqlMsg("(" + servicesql + ") and FEENAME NOT IN (SELECT FEENAME FROM ch_fee where feetype=1 and bsno='" + bsno + "')", db, tran);
|
|
|
}
|
|
|
|
|
|
} if (optype == "op_Airi")
|
|
|
{
|
|
|
var head = MsOpAiriDAL.MsOpAiriDAL.GetData("BSNO='" + bsno + "'");
|
|
|
if (head.IsSERVICE1 == "1")
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='SERVICE1' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='SERVICE1' ";
|
|
|
if (head.IsSERVICE2 == "1")
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='SERVICE2' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='SERVICE2' ";
|
|
|
if (head.IsSERVICE3 == "1")
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='SERVICE3' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='SERVICE3' ";
|
|
|
if (head.IsSERVICE4 == "1")
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='SERVICE4' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='SERVICE4' ";
|
|
|
if (head.IsSERVICE5 == "1")
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='SERVICE5' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='SERVICE5' ";
|
|
|
if (head.IsSERVICE6 == "1")
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='SERVICE6' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='SERVICE6' ";
|
|
|
if (head.IsSERVICE7 == "1")
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='SERVICE7' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='SERVICE7' ";
|
|
|
if (head.IsSERVICE8 == "1")
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='SERVICE8' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='SERVICE8' ";
|
|
|
if (head.IsSERVICE9 == "1")
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='SERVICE9' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='SERVICE9' ";
|
|
|
if (head.IsSERVICE10 == "1")
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='SERVICE10' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='SERVICE10' ";
|
|
|
|
|
|
if (servicesql == "") result = "";
|
|
|
else
|
|
|
{
|
|
|
result = GetServiceFeesqlMsg("(" + servicesql + ") and FEENAME NOT IN (SELECT FEENAME FROM ch_fee where feetype=1 and bsno='" + bsno + "')", db, tran);
|
|
|
}
|
|
|
|
|
|
} if (optype == "op_Apply")
|
|
|
{
|
|
|
var head = MsOpApplyDAL.MsOpApplyDAL.GetData("BSNO='" + bsno + "'");
|
|
|
if (head.IsSERVICE1 == "1")
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='SERVICE1' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='SERVICE1' ";
|
|
|
if (head.IsSERVICE2 == "1")
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='SERVICE2' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='SERVICE2' ";
|
|
|
if (head.IsSERVICE3 == "1")
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='SERVICE3' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='SERVICE3' ";
|
|
|
if (head.IsSERVICE4 == "1")
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='SERVICE4' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='SERVICE4' ";
|
|
|
if (head.IsSERVICE5 == "1")
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='SERVICE5' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='SERVICE5' ";
|
|
|
if (head.IsSERVICE6 == "1")
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='SERVICE6' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='SERVICE6' ";
|
|
|
if (head.IsSERVICE7 == "1")
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='SERVICE7' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='SERVICE7' ";
|
|
|
if (head.IsSERVICE8 == "1")
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='SERVICE8' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='SERVICE8' ";
|
|
|
if (head.IsSERVICE9 == "1")
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='SERVICE9' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='SERVICE9' ";
|
|
|
if (head.IsSERVICE10 == "1")
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='SERVICE10' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='SERVICE10' ";
|
|
|
|
|
|
if (servicesql == "") result = "";
|
|
|
else
|
|
|
{
|
|
|
result = GetServiceFeesqlMsg("(" + servicesql + ") and FEENAME NOT IN (SELECT FEENAME FROM ch_fee where feetype=1 and bsno='" + bsno + "')", db, tran);
|
|
|
}
|
|
|
|
|
|
} if (optype == "op_other")
|
|
|
{
|
|
|
var head = MsOpOtherDAL.MsOpOtherDAL.GetData("BSNO='" + bsno + "'");
|
|
|
if (head.IsSERVICE1 == "1")
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='SERVICE1' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='SERVICE1' ";
|
|
|
if (head.IsSERVICE2 == "1")
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='SERVICE2' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='SERVICE2' ";
|
|
|
if (head.IsSERVICE3 == "1")
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='SERVICE3' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='SERVICE3' ";
|
|
|
if (head.IsSERVICE4 == "1")
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='SERVICE4' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='SERVICE4' ";
|
|
|
if (head.IsSERVICE5 == "1")
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='SERVICE5' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='SERVICE5' ";
|
|
|
if (head.IsSERVICE6 == "1")
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='SERVICE6' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='SERVICE6' ";
|
|
|
if (head.IsSERVICE7 == "1")
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='SERVICE7' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='SERVICE7' ";
|
|
|
if (head.IsSERVICE8 == "1")
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='SERVICE8' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='SERVICE8' ";
|
|
|
if (head.IsSERVICE9 == "1")
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='SERVICE9' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='SERVICE9' ";
|
|
|
if (head.IsSERVICE10 == "1")
|
|
|
if (servicesql == "")
|
|
|
servicesql = " OPField='SERVICE10' ";
|
|
|
else
|
|
|
servicesql = servicesql + " or OPField='SERVICE10' ";
|
|
|
|
|
|
if (servicesql == "") result = "";
|
|
|
else
|
|
|
{
|
|
|
result = GetServiceFeesqlMsg("(" + servicesql + ") and FEENAME NOT IN (SELECT FEENAME FROM ch_fee where feetype=1 and bsno='" + bsno + "')", db, tran);
|
|
|
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
return result;
|
|
|
|
|
|
}
|
|
|
static public string GetServiceFeesqlMsg(string consql, Database db, DbTransaction tran)
|
|
|
{
|
|
|
string result = "";
|
|
|
var strSql = new StringBuilder();
|
|
|
strSql.Append("select * from v_code_service_fee where " + consql);
|
|
|
|
|
|
using (IDataReader reader = db.ExecuteReader(tran, CommandType.Text, strSql.ToString()))
|
|
|
{
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
result =result+"服务项目:"+Convert.ToString(reader["SERVICENAME"])+"(费用名称:"+ Convert.ToString(reader["FEENAME"])+")";
|
|
|
}
|
|
|
reader.Close();
|
|
|
}
|
|
|
|
|
|
if (result != "") result = "注意:以下费用未录入 " + result;
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
public static string GetWorkFlowName(string WorkFlowName,string optype) {
|
|
|
if (optype == "op_seae" || optype == "op_seaeorder")
|
|
|
{
|
|
|
WorkFlowName = "FeeRecvPayAudit";
|
|
|
|
|
|
}
|
|
|
if (optype == "op_seai")
|
|
|
{
|
|
|
WorkFlowName = "FeeRecvPayAudit";
|
|
|
//WorkFlowName = "FeeSeaiRecvPayAudit";
|
|
|
|
|
|
}
|
|
|
if (optype == "op_aire")
|
|
|
{
|
|
|
WorkFlowName = "AireFeeAudit";
|
|
|
|
|
|
}
|
|
|
if (optype == "op_airi")
|
|
|
{
|
|
|
WorkFlowName = "AiriFeeAudit";
|
|
|
|
|
|
}
|
|
|
if (optype == "op_apply")
|
|
|
{
|
|
|
WorkFlowName = "ApplyFeeAudit";
|
|
|
|
|
|
}
|
|
|
if (optype == "op_bulk")
|
|
|
{
|
|
|
WorkFlowName = "BulkFeeAudit";
|
|
|
}
|
|
|
if (optype == "op_other" || optype == "tmswlpchead" || optype == "opctnbscard" || optype == "import_main")
|
|
|
{
|
|
|
WorkFlowName = "FeeOpOpOtherRecvPayAudit";
|
|
|
}
|
|
|
if (optype == "op_railway")
|
|
|
{
|
|
|
WorkFlowName = "RailwayFeeAudit";
|
|
|
}
|
|
|
if (optype.ToLower() == "wms" || optype.ToLower() == "wms_in" || optype.ToLower() == "wms_out")
|
|
|
{
|
|
|
var value = WMSNewDAL.WMSNewDAL.GetSysFeeConfig("");
|
|
|
if (value == "1") WorkFlowName = "FeeSeaiRecvPayAudit";
|
|
|
}
|
|
|
return WorkFlowName;
|
|
|
}
|
|
|
public static DBResult SubmitAuditNew(String optype, String USERID, List<MsChFee> billList, bool isbl = false, string WorkFlowstr="",string issalework="",string companyid="")
|
|
|
{
|
|
|
var result = new DBResult();
|
|
|
var bsno = "1";
|
|
|
var mblno = "";
|
|
|
var saleid = "";
|
|
|
var WorkFlowid = "";
|
|
|
result.Success = true;
|
|
|
var msg = "";
|
|
|
|
|
|
var WorkFlowName = "FeeOpOpOtherRecvPayAudit";
|
|
|
optype = optype.ToLower();
|
|
|
|
|
|
WorkFlowName = GetWorkFlowName(WorkFlowName, optype);
|
|
|
|
|
|
//if (optype == "op_seae"|| optype == "op_seaeorder")
|
|
|
//{
|
|
|
// WorkFlowName = "FeeRecvPayAudit";
|
|
|
|
|
|
//} if (optype == "op_seai")
|
|
|
//{
|
|
|
// WorkFlowName = "FeeRecvPayAudit";
|
|
|
// //WorkFlowName = "FeeSeaiRecvPayAudit";
|
|
|
|
|
|
//} if (optype == "op_aire")
|
|
|
//{
|
|
|
// WorkFlowName = "AireFeeAudit";
|
|
|
|
|
|
//} if (optype == "op_airi")
|
|
|
//{
|
|
|
// WorkFlowName = "AiriFeeAudit";
|
|
|
|
|
|
//} if (optype == "op_apply")
|
|
|
//{
|
|
|
// WorkFlowName = "ApplyFeeAudit";
|
|
|
|
|
|
//} if (optype == "op_bulk")
|
|
|
//{
|
|
|
// WorkFlowName = "BulkFeeAudit";
|
|
|
//} if (optype == "op_other" || optype == "tmswlpchead" || optype == "opctnbscard" || optype == "import_main")
|
|
|
//{
|
|
|
// WorkFlowName = "FeeOpOpOtherRecvPayAudit";
|
|
|
//} if (optype == "op_railway")
|
|
|
//{
|
|
|
// WorkFlowName = "RailwayFeeAudit";
|
|
|
//}
|
|
|
//if (optype.ToLower() == "wms" || optype.ToLower() == "wms_in" || optype.ToLower() == "wms_out")
|
|
|
//{
|
|
|
// var value = WMSNewDAL.WMSNewDAL.GetSysFeeConfig("");
|
|
|
// if (value == "1") WorkFlowName = "FeeSeaiRecvPayAudit";
|
|
|
//}
|
|
|
|
|
|
var 审核通过FEEIDList = new List<string>();
|
|
|
|
|
|
|
|
|
if (WorkFlowstr != "") WorkFlowName = WorkFlowstr;
|
|
|
|
|
|
var BLSTLAUTOAUDIT = MsSysParamSetDAL.GetData("PARAMNAME='BLSTLAUTOAUDIT'");
|
|
|
T_ALL_DA T_ALL_DA = new T_ALL_DA();
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (var conn = db.CreateConnection())
|
|
|
{
|
|
|
conn.Open();
|
|
|
var tran = conn.BeginTransaction();
|
|
|
|
|
|
try
|
|
|
{
|
|
|
|
|
|
foreach (var billno in billList)
|
|
|
{
|
|
|
var autoAudit=false;
|
|
|
|
|
|
bsno = billno.BsNo;
|
|
|
if (BLSTLAUTOAUDIT.PARAMVALUE == "1")
|
|
|
{
|
|
|
var client = MsInfoClientDAL.GetData("SHORTNAME='"+billno.CustomerName+"'");
|
|
|
if (client.STLNAME == "票结") autoAudit = true;
|
|
|
}
|
|
|
|
|
|
if (autoAudit)
|
|
|
{
|
|
|
|
|
|
var _Comm = "update ch_fee set FEESTATUS=0 where GID=@GID";
|
|
|
var cmdupdate = db.GetSqlStringCommand(_Comm);
|
|
|
cmdupdate.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdate, "@GID", DbType.String, billno.GId);
|
|
|
db.ExecuteNonQuery(cmdupdate, tran);
|
|
|
|
|
|
审核通过FEEIDList.Add(billno.GId);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
if (mblno == "" || (issalework=="1"&&saleid=="")) {
|
|
|
string lsSQLuser = "select top 1 MBLNO,(SELECT TOP 1 GID from [user] where SHOWNAME=v_op_bs.SALE) SALEID,SALE,BSSOURCE,CUSTOMERNAME from v_op_bs where BSNO='" + bsno + "'";
|
|
|
DataSet dsUser = T_ALL_DA.GetAllSQL(lsSQLuser);
|
|
|
if (dsUser != null)
|
|
|
{
|
|
|
if (dsUser.Tables[0].Rows.Count > 0)
|
|
|
{
|
|
|
mblno = dsUser.Tables[0].Rows[0]["MBLNO"].ToString()+" 客户名称:"+ dsUser.Tables[0].Rows[0]["CUSTOMERNAME"].ToString()+" 业务来源:"+ dsUser.Tables[0].Rows[0]["BSSOURCE"].ToString();
|
|
|
if (issalework=="1")
|
|
|
saleid = dsUser.Tables[0].Rows[0]["SALEID"].ToString();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (mblno == "") mblno = bsno;
|
|
|
if (saleid == "") saleid = USERID;
|
|
|
|
|
|
|
|
|
|
|
|
//if (optype == "OpCtnBsCard")
|
|
|
//{
|
|
|
// var _Comm = "update ch_fee set FEESTATUS=2 where GID=@GID";
|
|
|
// var cmdupdate = db.GetSqlStringCommand(_Comm);
|
|
|
// cmdupdate.Parameters.Clear();
|
|
|
// db.AddInParameter(cmdupdate, "@GID", DbType.String, billno.GId);
|
|
|
// db.ExecuteNonQuery(cmdupdate, tran);
|
|
|
//}
|
|
|
//else
|
|
|
//{
|
|
|
|
|
|
var tmpWorkFlowName=WorkFlowName;
|
|
|
if (billno.IsOpen != null)
|
|
|
{
|
|
|
if (billno.IsOpen == "1" || billno.IsOpen == "true" || billno.IsOpen == "True") tmpWorkFlowName = "YjFeefyAudit";
|
|
|
}
|
|
|
|
|
|
if (WorkFlowid == "") {
|
|
|
string lsSQL = "select * FROM workflow WHERE COMPANYID='"+companyid+"' AND ISCONDITION=1 and [TYPE]=(SELECT TYPENO FROM workflow_type WHERE [NAME]='" + tmpWorkFlowName + "') "
|
|
|
+ " and GID in (select workflowID from workflow_Userpath where userid ='" + USERID+"') order by SORTNO ";
|
|
|
DataSet dsworkflow= T_ALL_DA.GetAllSQL(lsSQL);
|
|
|
if (dsworkflow != null)
|
|
|
{
|
|
|
if (dsworkflow.Tables[0].Rows.Count > 0)
|
|
|
{
|
|
|
foreach (DataRow row in dsworkflow.Tables[0].Rows)
|
|
|
{
|
|
|
var CONDITIONSQL= Convert.ToString(row["CONDITIONSQL"]);
|
|
|
CONDITIONSQL = CONDITIONSQL.Replace("[业务编号]", "'"+billno.BsNo+"'").Replace("[费用对象]", "'" + billno.CustomerName+ "'").Replace("[FEEID]", "'" + billno.GId + "'");
|
|
|
var strCOUNT = T_ALL_DA.GetStrSQL("BLCT", CONDITIONSQL);
|
|
|
if (strCOUNT != "0")
|
|
|
{
|
|
|
WorkFlowid = Convert.ToString(row["GID"]);
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
if (WorkFlowid == "") WorkFlowid = "no";
|
|
|
|
|
|
}
|
|
|
|
|
|
Resultmb WorkResult = WorkFlowDAL.WorkFlowStart(tmpWorkFlowName, billno.GId, saleid, mblno, bsno, "Account/Chfee_Audit", WorkFlowid);
|
|
|
|
|
|
if (WorkResult.Success == true)
|
|
|
{
|
|
|
var _Comm = "";
|
|
|
if (WorkResult.islast == true)
|
|
|
{
|
|
|
_Comm = "update ch_fee set FEESTATUS=0 where GID=@GID";
|
|
|
|
|
|
审核通过FEEIDList.Add(billno.GId);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
_Comm = "update ch_fee set FEESTATUS=2 where GID=@GID";
|
|
|
}
|
|
|
var cmdupdate = db.GetSqlStringCommand(_Comm);
|
|
|
cmdupdate.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdate, "@GID", DbType.String, billno.GId);
|
|
|
db.ExecuteNonQuery(cmdupdate, tran);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
|
|
|
result.Success = false;
|
|
|
result.Message = "提交审核错误!";
|
|
|
}
|
|
|
//}
|
|
|
}
|
|
|
|
|
|
if (optype == "import_main")
|
|
|
{
|
|
|
if (billno.Currency != "RMB" && (billno.FeeName == "预付款" || billno.FeeName == "尾款" || billno.FeeName == "购货款"))
|
|
|
{
|
|
|
InsertImportPayRecord(billno, USERID, db,tran);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if (isbl&&result.Success != false) {
|
|
|
//var cmdDelete = db.GetSqlStringCommand("insert into op_status(ST_ID,BSNO,STATUS,ISCOMP,COMPTIME,INPUTTIME,STTYPE) values(NEWID(),'" + bsno + "','费用提交',1,'" + DateTime.Now.ToString() + "','" + DateTime.Now.ToString() + "','2')");
|
|
|
//db.ExecuteNonQuery(cmdDelete, tran);
|
|
|
}
|
|
|
|
|
|
if (result.Success == true)
|
|
|
{
|
|
|
// msg = GetServiceFeeMsg(optype, bsno, db, tran);
|
|
|
}
|
|
|
|
|
|
|
|
|
result = new DBResult();
|
|
|
result.Success = true;
|
|
|
result.Message = "提交审核成功";
|
|
|
result.Data = msg;
|
|
|
tran.Commit();
|
|
|
|
|
|
InfoClientLimitHelper.特放业务应收费用审核通过(审核通过FEEIDList, USERID);
|
|
|
}
|
|
|
catch (Exception)
|
|
|
{
|
|
|
tran.Rollback();
|
|
|
|
|
|
result.Success = false;
|
|
|
result.Message = "提交审核错误,请重试或联系系统管理员";
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
public static DBResult piliangSubmitAudit(string optype, string bsnos, int feetype, string userid, string username, string companyid, string issalework="")
|
|
|
{
|
|
|
var result = new DBResult();
|
|
|
|
|
|
var WorkFlowName = "FeeOpOpOtherRecvPayAudit";
|
|
|
|
|
|
|
|
|
WorkFlowName = GetWorkFlowName(WorkFlowName, optype);
|
|
|
//if (optype == "op_seae" || optype == "op_seaeorder")
|
|
|
//{
|
|
|
// WorkFlowName = "FeeRecvPayAudit";
|
|
|
|
|
|
//} if (optype == "op_seai")
|
|
|
//{
|
|
|
// WorkFlowName = "FeeSeaiRecvPayAudit";
|
|
|
|
|
|
//} if (optype == "op_aire")
|
|
|
//{
|
|
|
// WorkFlowName = "AireFeeAudit";
|
|
|
|
|
|
//} if (optype == "op_airi")
|
|
|
//{
|
|
|
// WorkFlowName = "AiriFeeAudit";
|
|
|
|
|
|
//} if (optype == "op_apply")
|
|
|
//{
|
|
|
// WorkFlowName = "ApplyFeeAudit";
|
|
|
|
|
|
//} if (optype == "op_bulk")
|
|
|
//{
|
|
|
// WorkFlowName = "BulkFeeAudit";
|
|
|
//} if (optype == "op_other" || optype == "tMsWlPcHead" || optype == "OpCtnBsCard" || optype == "import_main")
|
|
|
//{
|
|
|
// WorkFlowName = "FeeOpOpOtherRecvPayAudit";
|
|
|
//} if (optype == "op_railway")
|
|
|
//{
|
|
|
// WorkFlowName = "RailwayFeeAudit";
|
|
|
//}
|
|
|
|
|
|
var 审核通过FEEIDList = new List<string>();
|
|
|
|
|
|
T_ALL_DA T_ALL_DA = new T_ALL_DA();
|
|
|
var BLSTLAUTOAUDIT = MsSysParamSetDAL.GetData("PARAMNAME='BLSTLAUTOAUDIT'");
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (var conn = db.CreateConnection())
|
|
|
{
|
|
|
conn.Open();
|
|
|
var tran = conn.BeginTransaction();
|
|
|
|
|
|
try
|
|
|
{
|
|
|
var strSql = new StringBuilder();
|
|
|
strSql.Append("SELECT GId,BsNo,CustomerName,FeeName,Currency,ExChangerate,IsOpen from ch_fee where FEESTATUS=1 and " + bsnos);
|
|
|
if (feetype==1){
|
|
|
strSql.Append(" and FEETYPE=1 ");
|
|
|
var drrangstr = GetRangDAStr(feetype, optype,userid, username, companyid);
|
|
|
if (!string.IsNullOrEmpty(drrangstr))
|
|
|
{
|
|
|
strSql.Append(" and " + drrangstr);
|
|
|
|
|
|
}
|
|
|
}
|
|
|
else if (feetype == 2){
|
|
|
strSql.Append(" and FEETYPE=2 ");
|
|
|
var drrangstr = GetRangDAStr(feetype, optype, userid, username, companyid);
|
|
|
if (!string.IsNullOrEmpty(drrangstr))
|
|
|
{
|
|
|
strSql.Append(" and " + drrangstr);
|
|
|
|
|
|
}
|
|
|
}
|
|
|
else {
|
|
|
|
|
|
var drrangstr = GetRangDAStr(1, optype, userid, username, companyid);
|
|
|
var crrangstr = GetRangDAStr(2, optype, userid, username, companyid);
|
|
|
strSql.Append(" and ((FEETYPE=1 ");
|
|
|
if (!string.IsNullOrEmpty(drrangstr))
|
|
|
{
|
|
|
strSql.Append(" and " + drrangstr);
|
|
|
|
|
|
}
|
|
|
strSql.Append(" ) or (FEETYPE=2 ");
|
|
|
if (!string.IsNullOrEmpty(crrangstr))
|
|
|
{
|
|
|
strSql.Append(" and " + crrangstr);
|
|
|
|
|
|
}
|
|
|
|
|
|
strSql.Append(" )) ");
|
|
|
|
|
|
}
|
|
|
|
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
|
{
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
var billno = Convert.ToString(reader["GId"]);
|
|
|
var bsno = Convert.ToString(reader["BsNo"]);
|
|
|
var CustomerName = Convert.ToString(reader["CustomerName"]);
|
|
|
var FeeName = Convert.ToString(reader["FeeName"]);
|
|
|
var Currency = Convert.ToString(reader["Currency"]);
|
|
|
decimal ExChangerate=0;
|
|
|
if (reader["ExChangerate"] != DBNull.Value)
|
|
|
ExChangerate = Convert.ToDecimal(reader["ExChangerate"]);
|
|
|
else
|
|
|
ExChangerate =0;
|
|
|
var tmpWorkFlowName = WorkFlowName;
|
|
|
if (reader["IsOpen"] != DBNull.Value && Convert.ToBoolean(reader["IsOpen"]) == true)
|
|
|
tmpWorkFlowName = "YjFeefyAudit";
|
|
|
|
|
|
if (CustomerName == "" || FeeName == "" || Currency == "" || ExChangerate == 0)
|
|
|
{
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
var autoAudit=false;
|
|
|
|
|
|
if (BLSTLAUTOAUDIT.PARAMVALUE == "1")
|
|
|
{
|
|
|
var client = MsInfoClientDAL.GetData("SHORTNAME='" + CustomerName + "'");
|
|
|
if (client.STLNAME == "票结") autoAudit = true;
|
|
|
}
|
|
|
|
|
|
if (autoAudit)
|
|
|
{
|
|
|
|
|
|
var _Comm = "update ch_fee set FEESTATUS=0 where GID=@GID";
|
|
|
var cmdupdate = db.GetSqlStringCommand(_Comm);
|
|
|
cmdupdate.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdate, "@GID", DbType.String, billno);
|
|
|
db.ExecuteNonQuery(cmdupdate, tran);
|
|
|
|
|
|
审核通过FEEIDList.Add(billno);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
var mblno = "";
|
|
|
var saleid = "";
|
|
|
if (mblno == "" || (issalework == "1" && saleid == ""))
|
|
|
{
|
|
|
string lsSQLuser = "select top 1 MBLNO,(SELECT GID from [user] where SHOWNAME=v_op_bs.SALE) SALEID,SALE,BSSOURCE,CUSTOMERNAME from v_op_bs where BSNO='" + bsno + "'";
|
|
|
DataSet dsUser = T_ALL_DA.GetAllSQL(lsSQLuser);
|
|
|
if (dsUser != null)
|
|
|
{
|
|
|
if (dsUser.Tables[0].Rows.Count > 0)
|
|
|
{
|
|
|
mblno = dsUser.Tables[0].Rows[0]["MBLNO"].ToString() + " 客户名称:" + dsUser.Tables[0].Rows[0]["CUSTOMERNAME"].ToString() + " 业务来源:" + dsUser.Tables[0].Rows[0]["BSSOURCE"].ToString();
|
|
|
if (issalework == "1")
|
|
|
saleid = dsUser.Tables[0].Rows[0]["SALEID"].ToString();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (mblno == "") mblno = bsno;
|
|
|
if (saleid == "") saleid = userid;
|
|
|
|
|
|
Resultmb WorkResult = WorkFlowDAL.WorkFlowStart(tmpWorkFlowName, billno, saleid, mblno, bsno, "Account/Chfee_Audit");
|
|
|
if (WorkResult.Success == true)
|
|
|
{
|
|
|
var _Comm = "";
|
|
|
if (WorkResult.islast == true)
|
|
|
{
|
|
|
_Comm = "update ch_fee set FEESTATUS=0,AUDITOPERATOR='" + userid + "',AUDITDATE='" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "' where GID=@GID";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
_Comm = "update ch_fee set FEESTATUS=2 where GID=@GID";
|
|
|
|
|
|
审核通过FEEIDList.Add(billno);
|
|
|
}
|
|
|
var cmdupdate = db.GetSqlStringCommand(_Comm);
|
|
|
cmdupdate.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdate, "@GID", DbType.String, billno);
|
|
|
db.ExecuteNonQuery(cmdupdate, tran);
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
result.Success = false;
|
|
|
result.Message = "提交审核错误!";
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (feetype == 0) {
|
|
|
|
|
|
//var cmdDelete = db.GetSqlStringCommand("insert into op_status(ST_ID,BSNO,STATUS,ISCOMP,COMPTIME,INPUTTIME,STTYPE) select NEWID(),bsno,'费用提交',1,getdate(),getdate(),'2' from v_op_bill where "+bsnos);
|
|
|
//db.ExecuteNonQuery(cmdDelete, tran);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
result = new DBResult();
|
|
|
result.Success = true;
|
|
|
result.Message = "提交审核成功";
|
|
|
tran.Commit();
|
|
|
|
|
|
InfoClientLimitHelper.特放业务应收费用审核通过(审核通过FEEIDList, userid);
|
|
|
}
|
|
|
catch (Exception)
|
|
|
{
|
|
|
tran.Rollback();
|
|
|
|
|
|
result.Success = false;
|
|
|
result.Message = "提交审核错误,请重试或联系系统管理员";
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static DBResult GetErrorFeeMbl(string optype, string bsnos, int feetype, string userid, string username, string companyid)
|
|
|
{
|
|
|
var result = new DBResult();
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
var mblnos = "";
|
|
|
|
|
|
using (var conn = db.CreateConnection())
|
|
|
{
|
|
|
conn.Open();
|
|
|
var tran = conn.BeginTransaction();
|
|
|
|
|
|
try
|
|
|
{
|
|
|
var strSql = new StringBuilder();
|
|
|
strSql.Append("SELECT MBLNO FROM V_OP_BILL WHERE BSNO IN (SELECT distinct BSNO from ch_fee where FEESTATUS=1 and (CustomerName='' or FeeName='' or ExChangerate=0 or Currency='')" + bsnos);
|
|
|
if (feetype == 1)
|
|
|
{
|
|
|
strSql.Append(" and FEETYPE=1 ");
|
|
|
var drrangstr = GetRangDAStr(feetype, optype, userid, username, companyid);
|
|
|
if (!string.IsNullOrEmpty(drrangstr))
|
|
|
{
|
|
|
strSql.Append(" and " + drrangstr);
|
|
|
|
|
|
}
|
|
|
}
|
|
|
else if (feetype == 2)
|
|
|
{
|
|
|
strSql.Append(" and FEETYPE=2 ");
|
|
|
var drrangstr = GetRangDAStr(feetype, optype, userid, username, companyid);
|
|
|
if (!string.IsNullOrEmpty(drrangstr))
|
|
|
{
|
|
|
strSql.Append(" and " + drrangstr);
|
|
|
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
|
|
|
var drrangstr = GetRangDAStr(1, optype, userid, username, companyid);
|
|
|
var crrangstr = GetRangDAStr(2, optype, userid, username, companyid);
|
|
|
strSql.Append(" and ((FEETYPE=1 ");
|
|
|
if (!string.IsNullOrEmpty(drrangstr))
|
|
|
{
|
|
|
strSql.Append(" and " + drrangstr);
|
|
|
|
|
|
}
|
|
|
strSql.Append(" ) or (FEETYPE=2 ");
|
|
|
if (!string.IsNullOrEmpty(crrangstr))
|
|
|
{
|
|
|
strSql.Append(" and " + crrangstr);
|
|
|
|
|
|
}
|
|
|
|
|
|
strSql.Append(" ))) ");
|
|
|
|
|
|
}
|
|
|
|
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
|
{
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
var billno = Convert.ToString(reader["MBLNO"]);
|
|
|
mblnos = mblnos + billno + ",";
|
|
|
}
|
|
|
}
|
|
|
if (mblnos != "")
|
|
|
{
|
|
|
result = new DBResult();
|
|
|
result.Success = false;
|
|
|
result.Message = "提单号:"+mblnos+" 费用录入不完整,请先检查费用录入情况,在批量提交!";
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
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 CancelAudit(String optype, String USERID, String bill, string WorkFlowstr, string issalework="")
|
|
|
{
|
|
|
var result = new DBResult();
|
|
|
|
|
|
var WorkFlowName = "FeeOpOpOtherRecvPayAudit";
|
|
|
WorkFlowName = GetWorkFlowName(WorkFlowName, optype);
|
|
|
//if (optype == "op_Seae" || optype == "op_SeaeOrder")
|
|
|
//{
|
|
|
// WorkFlowName = "FeeRecvPayAudit";
|
|
|
|
|
|
//} if (optype == "op_Seai")
|
|
|
//{
|
|
|
// WorkFlowName = "FeeSeaiRecvPayAudit";
|
|
|
|
|
|
//} if (optype == "op_Aire")
|
|
|
//{
|
|
|
// WorkFlowName = "AireFeeAudit";
|
|
|
|
|
|
//} if (optype == "op_Airi")
|
|
|
//{
|
|
|
// WorkFlowName = "AiriFeeAudit";
|
|
|
|
|
|
//} if (optype == "op_Apply")
|
|
|
//{
|
|
|
// WorkFlowName = "ApplyFeeAudit";
|
|
|
|
|
|
//} if (optype == "op_Bulk")
|
|
|
//{
|
|
|
// WorkFlowName = "BulkFeeAudit";
|
|
|
//} if (optype == "op_other" || optype == "tMsWlPcHead" || optype == "OpCtnBsCard" || optype == "import_main")
|
|
|
//{
|
|
|
// WorkFlowName = "FeeOpOpOtherRecvPayAudit";
|
|
|
//} if (optype == "op_railway")
|
|
|
//{
|
|
|
// WorkFlowName = "RailwayFeeAudit";
|
|
|
//}
|
|
|
//if (optype.ToLower() == "wms" || optype.ToLower() == "wms_in" || optype.ToLower() == "wms_out") {
|
|
|
// var value = WMSNewDAL.WMSNewDAL.GetSysFeeConfig("");
|
|
|
// if (value=="1") WorkFlowName = "FeeSeaiRecvPayAudit";
|
|
|
//}
|
|
|
|
|
|
|
|
|
if (WorkFlowstr != "") WorkFlowName = WorkFlowstr;
|
|
|
|
|
|
var billList = bill.Split(',');
|
|
|
|
|
|
T_ALL_DA T_ALL_DA = new T_ALL_DA();
|
|
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (var conn = db.CreateConnection())
|
|
|
{
|
|
|
conn.Open();
|
|
|
var tran = conn.BeginTransaction();
|
|
|
|
|
|
try
|
|
|
{
|
|
|
var saleid = "";
|
|
|
foreach (var billno in billList)
|
|
|
{
|
|
|
|
|
|
var FEESTATUS = T_ALL_DA.GetStrSQL("FEESTATUS", "select FEESTATUS from ch_fee WHERE GID='" + billno + "'");
|
|
|
if (FEESTATUS == "2")
|
|
|
{
|
|
|
|
|
|
if (optype == "OpCtnBsCard")
|
|
|
{
|
|
|
var cmdupdate = db.GetSqlStringCommand("update ch_fee set FEESTATUS=1,AUDITOPERATOR='',AUDITDATE=null where GID=@GID");
|
|
|
cmdupdate.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdate, "@GID", DbType.String, billno);
|
|
|
db.ExecuteNonQuery(cmdupdate, tran);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
if (saleid == "" && issalework == "1")
|
|
|
{
|
|
|
string lsSQLuser = "select top 1 MBLNO,(SELECT GID from [user] where SHOWNAME=v_op_bs.SALE) SALEID from v_op_bs where BSNO in (select bsno from ch_fee where GID='" + billno + "')";
|
|
|
DataSet dsUser = T_ALL_DA.GetAllSQL(lsSQLuser);
|
|
|
if (dsUser != null)
|
|
|
{
|
|
|
if (dsUser.Tables[0].Rows.Count > 0)
|
|
|
{
|
|
|
saleid = dsUser.Tables[0].Rows[0]["SALEID"].ToString();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (saleid == "") saleid = USERID;
|
|
|
|
|
|
Resultmb WorkResult = WorkFlowDAL.WorkFlowReset(WorkFlowName, billno, saleid);
|
|
|
if (WorkResult.Success == true)
|
|
|
{
|
|
|
var cmdupdate = db.GetSqlStringCommand("update ch_fee set FEESTATUS=1,AUDITOPERATOR='',AUDITDATE=null where GID=@GID");
|
|
|
|
|
|
|
|
|
cmdupdate.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdate, "@GID", DbType.String, billno);
|
|
|
db.ExecuteNonQuery(cmdupdate, tran);
|
|
|
if (optype == "import_main")
|
|
|
{
|
|
|
DeleteImportPayRecord(billno, db, tran);
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
|
|
|
WorkResult = WorkFlowDAL.WorkFlowReset("BLFeeAudit", billno, USERID);
|
|
|
if (WorkResult.Success == true)
|
|
|
{
|
|
|
var cmdupdate = db.GetSqlStringCommand("update ch_fee set FEESTATUS=1,AUDITOPERATOR='',AUDITDATE=null where GID=@GID");
|
|
|
|
|
|
|
|
|
cmdupdate.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdate, "@GID", DbType.String, billno);
|
|
|
db.ExecuteNonQuery(cmdupdate, tran);
|
|
|
if (optype == "import_main")
|
|
|
{
|
|
|
DeleteImportPayRecord(billno, db, tran);
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|
|
|
WorkResult = WorkFlowDAL.WorkFlowReset("BLFeeAudit", billno, USERID);
|
|
|
if (WorkResult.Success == true)
|
|
|
{
|
|
|
var cmdupdate = db.GetSqlStringCommand("update ch_fee set FEESTATUS=1,AUDITOPERATOR='',AUDITDATE=null where GID=@GID");
|
|
|
|
|
|
cmdupdate.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdate, "@GID", DbType.String, billno);
|
|
|
db.ExecuteNonQuery(cmdupdate, tran);
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
|
|
|
|
|
|
WorkResult = WorkFlowDAL.WorkFlowReset("OpFeeAudit", billno, USERID);
|
|
|
if (WorkResult.Success == true)
|
|
|
{
|
|
|
var cmdupdate = db.GetSqlStringCommand("update ch_fee set FEESTATUS=1,AUDITOPERATOR='',AUDITDATE=null where GID=@GID");
|
|
|
|
|
|
|
|
|
cmdupdate.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdate, "@GID", DbType.String, billno);
|
|
|
db.ExecuteNonQuery(cmdupdate, tran);
|
|
|
if (optype == "import_main")
|
|
|
{
|
|
|
DeleteImportPayRecord(billno, db, tran);
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
WorkResult = WorkFlowDAL.WorkFlowReset("YjFeefyAudit", billno, USERID);
|
|
|
if (WorkResult.Success == true)
|
|
|
{
|
|
|
var cmdupdate = db.GetSqlStringCommand("update ch_fee set FEESTATUS=1,AUDITOPERATOR='',AUDITDATE=null where GID=@GID");
|
|
|
|
|
|
|
|
|
cmdupdate.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdate, "@GID", DbType.String, billno);
|
|
|
db.ExecuteNonQuery(cmdupdate, tran);
|
|
|
if (optype == "import_main")
|
|
|
{
|
|
|
DeleteImportPayRecord(billno, db, tran);
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
result.Success = false;
|
|
|
result.Message = "撤销提交错误!";
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
}
|
|
|
else {
|
|
|
result.Success = false;
|
|
|
result.Message = "撤销提交错误!";
|
|
|
|
|
|
}
|
|
|
}
|
|
|
|
|
|
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 Audit(String optype, String USERID, String bill, string mblno, string bsno, string WorkFlowstr,string worktype="")
|
|
|
{
|
|
|
var result = new DBResult();
|
|
|
|
|
|
if (worktype == "BLAUDIT") WorkFlowstr = "BLFeeAudit";
|
|
|
|
|
|
var WorkFlowName = "FeeOpOpOtherRecvPayAudit";
|
|
|
WorkFlowName = GetWorkFlowName(WorkFlowName, optype);
|
|
|
//if (optype == "op_seae" || optype == "op_seaeorder")
|
|
|
//{
|
|
|
// WorkFlowName = "FeeRecvPayAudit";
|
|
|
|
|
|
//} if (optype == "op_seai")
|
|
|
//{
|
|
|
// WorkFlowName = "FeeSeaiRecvPayAudit";
|
|
|
|
|
|
//} if (optype == "op_aire")
|
|
|
//{
|
|
|
// WorkFlowName = "AireFeeAudit";
|
|
|
|
|
|
//} if (optype == "op_airi")
|
|
|
//{
|
|
|
// WorkFlowName = "AiriFeeAudit";
|
|
|
|
|
|
//} if (optype == "op_apply")
|
|
|
//{
|
|
|
// WorkFlowName = "ApplyFeeAudit";
|
|
|
|
|
|
//} if (optype == "op_bulk")
|
|
|
//{
|
|
|
// WorkFlowName = "BulkFeeAudit";
|
|
|
//} if (optype == "op_other" || optype == "tMsWlPcHead" || optype == "OpCtnBsCard" || optype == "import_main")
|
|
|
//{
|
|
|
// WorkFlowName = "FeeOpOpOtherRecvPayAudit";
|
|
|
//} if (optype == "op_railway")
|
|
|
//{
|
|
|
// WorkFlowName = "RailwayFeeAudit";
|
|
|
//}
|
|
|
//if (optype.ToLower() == "wms" || optype.ToLower() == "wms_in" || optype.ToLower() == "wms_out")
|
|
|
//{
|
|
|
// var value = WMSNewDAL.WMSNewDAL.GetSysFeeConfig("");
|
|
|
// if (value == "1") WorkFlowName = "FeeSeaiRecvPayAudit";
|
|
|
//}
|
|
|
var 审核通过FEEIDList = new List<string>();
|
|
|
|
|
|
var defcustname = "";
|
|
|
var ORDERCREATEOPFEE = MsSysParamSetDAL.GetData("PARAMNAME='ORDERCREATEOPFEE'");
|
|
|
if (ORDERCREATEOPFEE.PARAMVALUE == "1")
|
|
|
{
|
|
|
|
|
|
var CREATEOPFEECUST = MsSysParamSetDAL.GetData("PARAMNAME='CREATEOPFEECUST'");
|
|
|
defcustname = CREATEOPFEECUST.PARAMVALUE;
|
|
|
}
|
|
|
|
|
|
|
|
|
var billList = bill.Split(',');
|
|
|
if (WorkFlowstr != "") WorkFlowName = WorkFlowstr;
|
|
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (var conn = db.CreateConnection())
|
|
|
{
|
|
|
conn.Open();
|
|
|
var tran = conn.BeginTransaction();
|
|
|
|
|
|
try
|
|
|
{
|
|
|
|
|
|
foreach (var billno in billList)
|
|
|
{
|
|
|
|
|
|
//if (optype == "OpCtnBsCard" || optype == "罐箱业务卡")
|
|
|
//{
|
|
|
// var cmdupdate = db.GetSqlStringCommand("update ch_fee set FEESTATUS=0,AUDITOPERATOR='" + USERID + "',AUDITDATE=@AUDITDATE where GID=@GID");
|
|
|
|
|
|
// cmdupdate.Parameters.Clear();
|
|
|
// db.AddInParameter(cmdupdate, "@AUDITDATE", DbType.String, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
|
// db.AddInParameter(cmdupdate, "@GID", DbType.String, billno);
|
|
|
// db.ExecuteNonQuery(cmdupdate, tran);
|
|
|
|
|
|
//}
|
|
|
//else
|
|
|
//{
|
|
|
|
|
|
// Resultmb WorkResult = WorkFlowDAL.InsertWorkFlowDo(WorkFlowName, billno, USERID, mblno, bsno, "../MvcShipping/MsOpSeae/PiLiangFeeEdit");
|
|
|
|
|
|
if (mblno == "") mblno = bsno;
|
|
|
Resultmb WorkResult = WorkFlowDAL.InsertWorkFlowDo(WorkFlowName, billno, USERID, tran, mblno, bsno, "");
|
|
|
if (WorkResult.Success != true) WorkResult = WorkFlowDAL.InsertWorkFlowDo("OpFeeAudit", billno, USERID, tran, mblno, bsno, "");
|
|
|
if (WorkResult.Success != true) WorkResult = WorkFlowDAL.InsertWorkFlowDo("BLFeeAudit", billno, USERID, tran, mblno, bsno, "");
|
|
|
if (WorkResult.Success != true)
|
|
|
{
|
|
|
//出库业务产生的费用还可能是海运进口业务的
|
|
|
if (optype == "wms_out")
|
|
|
WorkResult = WorkFlowDAL.InsertWorkFlowDo("FeeSeaiRecvPayAudit", billno, USERID, tran, mblno, bsno, "");
|
|
|
}
|
|
|
|
|
|
if (WorkResult.Success == true )
|
|
|
{
|
|
|
if (WorkResult.islast == true)
|
|
|
{
|
|
|
var cmdupdate = db.GetSqlStringCommand("update ch_fee set FEESTATUS=0,AUDITOPERATOR='" + USERID + "',AUDITDATE=@AUDITDATE where GID=@GID");
|
|
|
审核通过FEEIDList.Add(billno);
|
|
|
cmdupdate.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdate, "@AUDITDATE", DbType.String, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
|
db.AddInParameter(cmdupdate, "@GID", DbType.String, billno);
|
|
|
db.ExecuteNonQuery(cmdupdate, tran);
|
|
|
if (ORDERCREATEOPFEE.PARAMVALUE == "1")
|
|
|
{
|
|
|
var cmdinsert = db.GetSqlStringCommand("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,WMSOUTBSNO,PREAMOUNT,ISINVOICE,INPUTMODE,LOCALCURR,MANAGER,ISACC,AUDITOPERATOR,AUDITDATE,SALECORP,JKGID) "
|
|
|
+ " SELECT NEWID(), BSNO, 2, FEENAME, FEEDESCRIPTION, CUSTOMERTYPE,'"+defcustname+"' CUSTOMERNAME, UNIT, UNITPRICE, QUANTITY, AMOUNT, CURRENCY, "
|
|
|
+ " EXCHANGERATE, REASON, REMARK, COMMISSIONRATE,(SELECT TOP 1 GID FROM [user] WHERE SHOWNAME=(SELECT OP FROM V_OP_BS WHERE BSNO=CH_FEE.BSNO)) ENTEROPERATOR, ENTERDATE,ISOPEN, ISADVANCEDPAY, SORT, FEESTATUS, FEEFRT, "
|
|
|
+ " TAXRATE,NOTAXAMOUNT,ACCTAXRATE,LINENUM,TAXUNITPRICE,MODIFIEDUSER,MODIFIEDTIME,WMSOUTBSNO,PREAMOUNT,ISINVOICE,INPUTMODE,LOCALCURR,MANAGER,ISACC,AUDITOPERATOR,AUDITDATE,SALECORP,GID FROM CH_FEE WHERE GID='" + billno+ "' AND FEETYPE=1 AND ISCRMORDERFEE=1 and ISNULL(ISOPEN,0)<>1");
|
|
|
db.ExecuteNonQuery(cmdinsert, tran);
|
|
|
|
|
|
}
|
|
|
}
|
|
|
|
|
|
else {
|
|
|
|
|
|
var cmdupdate = db.GetSqlStringCommand("update ch_fee set AUDITOPERATOR='" + USERID + "',AUDITDATE=@AUDITDATE where GID=@GID");
|
|
|
|
|
|
|
|
|
cmdupdate.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdate, "@AUDITDATE", DbType.String, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
|
db.AddInParameter(cmdupdate, "@GID", DbType.String, billno);
|
|
|
db.ExecuteNonQuery(cmdupdate, tran);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
result.Success = false;
|
|
|
result.Message = "审核错误!";
|
|
|
//tran.Rollback();
|
|
|
//return result;
|
|
|
}
|
|
|
//}
|
|
|
}
|
|
|
|
|
|
result = new DBResult();
|
|
|
result.Success = true;
|
|
|
result.Message = "审核成功";
|
|
|
tran.Commit();
|
|
|
|
|
|
InfoClientLimitHelper.特放业务应收费用审核通过(审核通过FEEIDList, USERID);
|
|
|
}
|
|
|
catch (Exception)
|
|
|
{
|
|
|
tran.Rollback();
|
|
|
|
|
|
result.Success = false;
|
|
|
result.Message = "审核错误,请重试或联系系统管理员";
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
var AuditAutoLock = MsSysParamSetDAL.GetData("PARAMNAME='AuditAutoLock'");
|
|
|
if (AuditAutoLock.PARAMVALUE == "1"&& bsno!="")
|
|
|
{
|
|
|
foreach (var billno in billList)
|
|
|
{
|
|
|
Chfee_AuditDAL.UpLock(bsno, optype);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
public static DBResult AuditList(String optype, String USERID, List<MsChFee> billList, string mblno, string bsno, string WorkFlowstr, string worktype = "")
|
|
|
{
|
|
|
var result = new DBResult();
|
|
|
|
|
|
if (worktype == "BLAUDIT") WorkFlowstr = "BLFeeAudit";
|
|
|
|
|
|
var WorkFlowName = "FeeOpOpOtherRecvPayAudit";
|
|
|
WorkFlowName = GetWorkFlowName(WorkFlowName, optype);
|
|
|
//if (optype == "op_seae" || optype == "op_seaeorder")
|
|
|
//{
|
|
|
// WorkFlowName = "FeeRecvPayAudit";
|
|
|
|
|
|
//} if (optype == "op_seai")
|
|
|
//{
|
|
|
// //FeeRecvPayAudit
|
|
|
// //FeeSeaiRecvPayAudit
|
|
|
// WorkFlowName = "FeeRecvPayAudit";
|
|
|
|
|
|
//} if (optype == "op_aire")
|
|
|
//{
|
|
|
// WorkFlowName = "AireFeeAudit";
|
|
|
|
|
|
//} if (optype == "op_airi")
|
|
|
//{
|
|
|
// WorkFlowName = "AiriFeeAudit";
|
|
|
|
|
|
//} if (optype == "op_apply")
|
|
|
//{
|
|
|
// WorkFlowName = "ApplyFeeAudit";
|
|
|
|
|
|
//} if (optype == "op_bulk")
|
|
|
//{
|
|
|
// WorkFlowName = "BulkFeeAudit";
|
|
|
//} if (optype == "op_other" || optype == "tMsWlPcHead" || optype == "OpCtnBsCard" || optype == "import_main")
|
|
|
//{
|
|
|
// WorkFlowName = "FeeOpOpOtherRecvPayAudit";
|
|
|
//} if (optype == "op_railway")
|
|
|
//{
|
|
|
// WorkFlowName = "RailwayFeeAudit";
|
|
|
//}
|
|
|
//if (optype.ToLower() == "wms" || optype.ToLower() == "wms_in" || optype.ToLower() == "wms_out")
|
|
|
//{
|
|
|
// var value = WMSNewDAL.WMSNewDAL.GetSysFeeConfig("");
|
|
|
// if (value == "1") WorkFlowName = "FeeSeaiRecvPayAudit";
|
|
|
//}
|
|
|
|
|
|
var 审核通过FEEIDList = new List<string>();
|
|
|
|
|
|
var defcustname = "";
|
|
|
var ORDERCREATEOPFEE = MsSysParamSetDAL.GetData("PARAMNAME='ORDERCREATEOPFEE'");
|
|
|
if (ORDERCREATEOPFEE.PARAMVALUE == "1")
|
|
|
{
|
|
|
|
|
|
var CREATEOPFEECUST = MsSysParamSetDAL.GetData("PARAMNAME='CREATEOPFEECUST'");
|
|
|
defcustname = CREATEOPFEECUST.PARAMVALUE;
|
|
|
}
|
|
|
|
|
|
if (WorkFlowstr != "") WorkFlowName = WorkFlowstr;
|
|
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (var conn = db.CreateConnection())
|
|
|
{
|
|
|
conn.Open();
|
|
|
|
|
|
try
|
|
|
{
|
|
|
|
|
|
foreach (var bill in billList)
|
|
|
{
|
|
|
|
|
|
var tran = conn.BeginTransaction();
|
|
|
|
|
|
if (mblno == "") mblno = bsno;
|
|
|
|
|
|
var WorkFlow = "";
|
|
|
if (bill.IsOpen == "True" || bill.IsOpen == "1") WorkFlow = "YjFeefyAudit"; else WorkFlow = WorkFlowName;
|
|
|
Resultmb WorkResult = WorkFlowDAL.InsertWorkFlowDo(WorkFlow, bill.GId, USERID, tran, mblno, bsno, "");
|
|
|
if (WorkResult.Success != true) WorkResult = WorkFlowDAL.InsertWorkFlowDo("OpFeeAudit", bill.GId, USERID, tran, mblno, bsno, "");
|
|
|
if (WorkResult.Success != true) WorkResult = WorkFlowDAL.InsertWorkFlowDo("BLFeeAudit", bill.GId, USERID, tran, mblno, bsno, "");
|
|
|
if (WorkResult.Success != true)
|
|
|
{
|
|
|
//入库或出库业务产生的费用还可能是海运进口业务的
|
|
|
if(optype=="wms_out"|| optype == "wms")
|
|
|
WorkResult = WorkFlowDAL.InsertWorkFlowDo("FeeSeaiRecvPayAudit", bill.GId, USERID, tran, mblno, bsno, "");
|
|
|
}
|
|
|
if (WorkResult.Success != true)
|
|
|
{
|
|
|
//出入库内的费用 进了 综合应收应付费用工作流 但是存在这样的可能:这个费用的父节点是海运进口,从海运进口业务下提交费用导致optype=opseai
|
|
|
if (optype == "op_seai")
|
|
|
WorkResult = WorkFlowDAL.InsertWorkFlowDo("FeeOpOpOtherRecvPayAudit", bill.GId, USERID, tran, mblno, bsno, "");
|
|
|
}
|
|
|
if (WorkResult.Success == true)
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
|
|
|
if (WorkResult.islast == true)
|
|
|
{
|
|
|
var cmdupdate = db.GetSqlStringCommand("update ch_fee set FEESTATUS=0,AUDITOPERATOR='" + USERID + "',AUDITDATE=@AUDITDATE where GID=@GID");
|
|
|
|
|
|
审核通过FEEIDList.Add(bill.GId);
|
|
|
|
|
|
cmdupdate.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdate, "@AUDITDATE", DbType.String, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
|
db.AddInParameter(cmdupdate, "@GID", DbType.String, bill.GId);
|
|
|
db.ExecuteNonQuery(cmdupdate, tran);
|
|
|
|
|
|
if (ORDERCREATEOPFEE.PARAMVALUE == "1")
|
|
|
{
|
|
|
var cmdinsert = db.GetSqlStringCommand("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,WMSOUTBSNO,PREAMOUNT,ISINVOICE,INPUTMODE,LOCALCURR,MANAGER,ISACC,AUDITOPERATOR,AUDITDATE,SALECORP,JKGID) "
|
|
|
+ " SELECT NEWID(), BSNO, 2, FEENAME, FEEDESCRIPTION, CUSTOMERTYPE,'" + defcustname + "', UNIT, UNITPRICE, QUANTITY, AMOUNT, CURRENCY, "
|
|
|
+ " EXCHANGERATE, REASON, REMARK, COMMISSIONRATE,(SELECT TOP 1 GID FROM [user] WHERE SHOWNAME=(SELECT OP FROM V_OP_BS WHERE BSNO=CH_FEE.BSNO)) ENTEROPERATOR, ENTERDATE,ISOPEN, ISADVANCEDPAY, SORT, FEESTATUS, FEEFRT, "
|
|
|
+ " TAXRATE,NOTAXAMOUNT,ACCTAXRATE,LINENUM,TAXUNITPRICE,MODIFIEDUSER,MODIFIEDTIME,WMSOUTBSNO,PREAMOUNT,ISINVOICE,INPUTMODE,LOCALCURR,MANAGER,ISACC,AUDITOPERATOR,AUDITDATE,SALECORP,GID FROM CH_FEE WHERE GID='" + bill.GId + "' AND FEETYPE=1 AND ISCRMORDERFEE=1 and ISNULL(ISOPEN,0)<>1 ");
|
|
|
db.ExecuteNonQuery(cmdinsert, tran);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
|
|
|
var cmdupdate = db.GetSqlStringCommand("update ch_fee set AUDITOPERATOR='" + USERID + "',AUDITDATE=@AUDITDATE where GID=@GID");
|
|
|
|
|
|
|
|
|
cmdupdate.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdate, "@AUDITDATE", DbType.String, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
|
db.AddInParameter(cmdupdate, "@GID", DbType.String, bill.GId);
|
|
|
db.ExecuteNonQuery(cmdupdate, tran);
|
|
|
}
|
|
|
}
|
|
|
catch (Exception e) {
|
|
|
result.Success = false;
|
|
|
result.Message = "审核错误!<" + WorkResult.Message + ">";
|
|
|
tran.Rollback();
|
|
|
}
|
|
|
|
|
|
result = new DBResult();
|
|
|
result.Success = true;
|
|
|
result.Message = "审核成功";
|
|
|
tran.Commit();
|
|
|
|
|
|
InfoClientLimitHelper.特放业务应收费用审核通过(审核通过FEEIDList, USERID);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
result.Success = false;
|
|
|
result.Message = "审核错误!<"+WorkResult.Message+">";
|
|
|
tran.Rollback();
|
|
|
//return result;
|
|
|
}
|
|
|
//}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
catch (Exception e)
|
|
|
{
|
|
|
//tran.Rollback();
|
|
|
|
|
|
result.Success = false;
|
|
|
result.Message = "审核错误<"+e.Message+">,请重试或联系系统管理员";
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
var AuditAutoLock = MsSysParamSetDAL.GetData("PARAMNAME='AuditAutoLock'");
|
|
|
if (AuditAutoLock.PARAMVALUE == "1" && bsno != "")
|
|
|
{
|
|
|
foreach (var billno in billList)
|
|
|
{
|
|
|
Chfee_AuditDAL.UpLock(bsno, optype);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
public static DBResult AuditBack(String optype, String USERID, List<MsChFee> billList, string reasean, string WorkFlowstr,string companyid,string worktype="")
|
|
|
{
|
|
|
var result = new DBResult();
|
|
|
|
|
|
if (worktype == "BLAUDIT") WorkFlowstr = "BLFeeAudit";
|
|
|
var WorkFlowid = "";
|
|
|
|
|
|
var WorkFlowName = "FeeOpOpOtherRecvPayAudit";
|
|
|
WorkFlowName = GetWorkFlowName(WorkFlowName, optype);
|
|
|
//if (optype == "op_seae" || optype == "op_seaeorder")
|
|
|
//{
|
|
|
// WorkFlowName = "FeeRecvPayAudit";
|
|
|
|
|
|
//} if (optype == "op_seai")
|
|
|
//{
|
|
|
// WorkFlowName = "FeeSeaiRecvPayAudit";
|
|
|
|
|
|
//} if (optype == "op_aire")
|
|
|
//{
|
|
|
// WorkFlowName = "AireFeeAudit";
|
|
|
|
|
|
//} if (optype == "op_airi")
|
|
|
//{
|
|
|
// WorkFlowName = "AiriFeeAudit";
|
|
|
|
|
|
//} if (optype == "op_apply")
|
|
|
//{
|
|
|
// WorkFlowName = "ApplyFeeAudit";
|
|
|
|
|
|
//} if (optype == "op_bulk")
|
|
|
//{
|
|
|
// WorkFlowName = "BulkFeeAudit";
|
|
|
//} if (optype == "op_other" || optype == "tMsWlPcHead" || optype == "OpCtnBsCard" || optype == "import_main")
|
|
|
//{
|
|
|
// WorkFlowName = "FeeOpOpOtherRecvPayAudit";
|
|
|
//} if (optype == "op_railway")
|
|
|
//{
|
|
|
// WorkFlowName = "RailwayFeeAudit";
|
|
|
//}
|
|
|
//if (optype.ToLower() == "wms" || optype.ToLower() == "wms_in" || optype.ToLower() == "wms_out")
|
|
|
//{
|
|
|
// var value = WMSNewDAL.WMSNewDAL.GetSysFeeConfig("");
|
|
|
// if (value == "1") WorkFlowName = "FeeSeaiRecvPayAudit";
|
|
|
//}
|
|
|
|
|
|
var 审核驳回FEEIDList=new List<string>();
|
|
|
|
|
|
|
|
|
if (WorkFlowstr != "") WorkFlowName = WorkFlowstr;
|
|
|
|
|
|
var i = 0;
|
|
|
T_ALL_DA T_ALL_DA = new T_ALL_DA();
|
|
|
var mblno = "";
|
|
|
result.Success = true;
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (var conn = db.CreateConnection())
|
|
|
{
|
|
|
conn.Open();
|
|
|
var tran = conn.BeginTransaction();
|
|
|
|
|
|
try
|
|
|
{
|
|
|
var cmdInsert =
|
|
|
db.GetSqlStringCommand(
|
|
|
@"insert into ch_fee_modify (GID,TYPE,APPLYTYPE,REASON,FEEID,BSNO,FEENAME,CUSTOMERNAME,UNIT,UNITPRICE,QUANTITY,
|
|
|
AMOUNT,CURRENCY,FRT,COMMISSIONRATE,EXCHANGERATE,ISADVANCEDPAY,APPLYUSER,APPLYTIME,
|
|
|
APPLYSTATUS,REMARK,GROUPID,TAXRATE,NOTAXAMOUNT,ACCTAXRATE,TAXUNITPRICE)
|
|
|
values (@GID,@TYPE,@APPLYTYPE,@REASON,@FEEID,@BSNO,@FEENAME,@CUSTOMERNAME,@UNIT,@UNITPRICE,@QUANTITY,
|
|
|
@AMOUNT,@CURRENCY,@FRT,@COMMISSIONRATE,@EXCHANGERATE,@ISADVANCEDPAY,@APPLYUSER,@APPLYTIME,
|
|
|
@APPLYSTATUS,@REMARK,@GROUPID,@TAXRATE,@NOTAXAMOUNT,@ACCTAXRATE,@TAXUNITPRICE) ");
|
|
|
|
|
|
|
|
|
foreach (var bill in billList)
|
|
|
{
|
|
|
|
|
|
if (mblno == "")
|
|
|
mblno = T_ALL_DA.GetStrSQL("MBLNO", "select top 1 MBLNO from v_op_bs where BSNO='" +bill.BsNo+ "'");
|
|
|
if (mblno == "") mblno = bill.BsNo;
|
|
|
|
|
|
var WorkFlow="";
|
|
|
if (bill.IsOpen == "True" || bill.IsOpen == "1") WorkFlow = "YjFeefyAudit"; else WorkFlow = WorkFlowName;
|
|
|
|
|
|
//if (WorkFlowid == "")
|
|
|
//{
|
|
|
// string lsSQL = "select * FROM workflow WHERE COMPANYID='" + companyid + "' AND ISCONDITION=1 and [TYPE]=(SELECT TYPENO FROM workflow_type WHERE [NAME]='" + WorkFlow + "') "
|
|
|
// + " and GID in (select workflowID from workflow_Userpath where userid ='" + USERID + "') order by SORTNO ";
|
|
|
|
|
|
|
|
|
// DataSet dsworkflow = T_ALL_DA.GetAllSQL(lsSQL);
|
|
|
// if (dsworkflow != null)
|
|
|
// {
|
|
|
// if (dsworkflow.Tables[0].Rows.Count > 0)
|
|
|
// {
|
|
|
// foreach (DataRow row in dsworkflow.Tables[0].Rows)
|
|
|
// {
|
|
|
// var CONDITIONSQL = Convert.ToString(row["CONDITIONSQL"]);
|
|
|
// CONDITIONSQL = CONDITIONSQL.Replace("[业务编号]", "'" + bill.BsNo + "'").Replace("[费用对象]", "'" + bill.CustomerName + "'");
|
|
|
// var strCOUNT = T_ALL_DA.GetStrSQL("BLCT", CONDITIONSQL);
|
|
|
// if (strCOUNT != "0")
|
|
|
// {
|
|
|
// WorkFlowid = Convert.ToString(row["GID"]);
|
|
|
// continue;
|
|
|
// }
|
|
|
|
|
|
// }
|
|
|
// }
|
|
|
// }
|
|
|
// if (WorkFlowid == "") WorkFlowid = "no";
|
|
|
|
|
|
//}
|
|
|
|
|
|
Resultmb WorkResult = null;
|
|
|
|
|
|
var BLCOUNT = T_ALL_DA.GetStrSQL("BLCOUNT", "select count(*) BLCOUNT from workflow_using WHERE BSNO='" + bill.GId + "'");
|
|
|
|
|
|
if (BLCOUNT != "0")
|
|
|
{
|
|
|
WorkResult = WorkFlowDAL.DeleteWorkFlowDo(WorkFlow, bill.GId, USERID, reasean, mblno, bill.BsNo, "", WorkFlowid);
|
|
|
if (WorkResult.Success != true)
|
|
|
WorkResult = WorkFlowDAL.DeleteWorkFlowDo("BLFeeAudit", bill.GId, USERID, reasean, mblno, bill.BsNo, "", WorkFlowid);
|
|
|
if (WorkResult.Success != true)
|
|
|
WorkResult = WorkFlowDAL.DeleteWorkFlowDo("OpFeeAudit", bill.GId, USERID, reasean, mblno, bill.BsNo, "", WorkFlowid);
|
|
|
|
|
|
if (WorkResult.Success != true)
|
|
|
{
|
|
|
//出入库业务产生的费用还可能是海运进口业务的
|
|
|
if (optype == "wms_out"|| optype == "wms")
|
|
|
WorkResult = WorkFlowDAL.DeleteWorkFlowDo("FeeSeaiRecvPayAudit", bill.GId, USERID, reasean, mblno, bill.BsNo, "");
|
|
|
}
|
|
|
if (WorkResult.Success != true)
|
|
|
{
|
|
|
//出入库内的费用 进了 综合应收应付费用工作流 但是存在这样的可能:这个费用的父节点是海运进口,从海运进口业务下提交费用导致optype=opseai
|
|
|
if (optype == "op_seai")
|
|
|
WorkResult = WorkFlowDAL.DeleteWorkFlowDo("FeeOpOpOtherRecvPayAudit", bill.GId, USERID, reasean, mblno, bill.BsNo, "");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (BLCOUNT == "0"||WorkResult.Success == true)
|
|
|
{
|
|
|
|
|
|
var cmdupdate = db.GetSqlStringCommand("update ch_fee set FEESTATUS=6,REASON='" + reasean + "' where GID=@GID");
|
|
|
|
|
|
//判断 如果费用状态不是126 代表是审过的费用驳回 需要加额度
|
|
|
//20240618 改为从状态0审核通过开始驳回 则需要加额度
|
|
|
|
|
|
var cdc = new DSWeb.Common.DB.CommonDataContext();
|
|
|
|
|
|
var fee = cdc.ch_fee.FirstOrDefault(x => x.GID == bill.GId);
|
|
|
if (fee.FEETYPE == 1 && fee.FEESTATUS==0) //fee.FEESTATUS != 1 && fee.FEESTATUS != 2 && fee.FEESTATUS != 6
|
|
|
{
|
|
|
审核驳回FEEIDList.Add(bill.GId);
|
|
|
}
|
|
|
|
|
|
cmdupdate.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdate, "@GID", DbType.String, bill.GId);
|
|
|
db.ExecuteNonQuery(cmdupdate, tran);
|
|
|
|
|
|
var GROUPID = Guid.NewGuid().ToString();
|
|
|
|
|
|
cmdInsert.Parameters.Clear();
|
|
|
db.AddInParameter(cmdInsert, "@GID", DbType.String, GROUPID);
|
|
|
db.AddInParameter(cmdInsert, "@TYPE", DbType.Int16, bill.FeeType);
|
|
|
db.AddInParameter(cmdInsert, "@APPLYTYPE", DbType.Int16, 6);
|
|
|
db.AddInParameter(cmdInsert, "@REASON", DbType.String, "");
|
|
|
db.AddInParameter(cmdInsert, "@FEEID", DbType.String, bill.GId);
|
|
|
db.AddInParameter(cmdInsert, "@BSNO", DbType.String, bill.BsNo);
|
|
|
db.AddInParameter(cmdInsert, "@FEENAME", DbType.String, bill.FeeName);
|
|
|
db.AddInParameter(cmdInsert, "@CUSTOMERNAME", DbType.String, bill.CustomerName);
|
|
|
db.AddInParameter(cmdInsert, "@UNIT", DbType.String, bill.Unit);
|
|
|
db.AddInParameter(cmdInsert, "@UNITPRICE", DbType.Decimal, bill.UnitPrice);
|
|
|
db.AddInParameter(cmdInsert, "@QUANTITY", DbType.Decimal, bill.Quantity);
|
|
|
db.AddInParameter(cmdInsert, "@AMOUNT", DbType.Decimal, bill.Amount);
|
|
|
db.AddInParameter(cmdInsert, "@CURRENCY", DbType.String, bill.Currency);
|
|
|
db.AddInParameter(cmdInsert, "@FRT", DbType.String, bill.FeeFrt);
|
|
|
db.AddInParameter(cmdInsert, "@COMMISSIONRATE", DbType.Decimal, bill.Commissionrate);
|
|
|
db.AddInParameter(cmdInsert, "@EXCHANGERATE", DbType.Decimal, bill.ExChangerate);
|
|
|
db.AddInParameter(cmdInsert, "@ISADVANCEDPAY", DbType.String, bill.IsAdvancedpay);
|
|
|
db.AddInParameter(cmdInsert, "@APPLYUSER", DbType.String, USERID);
|
|
|
db.AddInParameter(cmdInsert, "@APPLYTIME", DbType.String, DateTime.Now.ToString());
|
|
|
db.AddInParameter(cmdInsert, "@APPLYSTATUS", DbType.Int16, 1);
|
|
|
db.AddInParameter(cmdInsert, "@REMARK", DbType.String, "");
|
|
|
db.AddInParameter(cmdInsert, "@GROUPID", DbType.String, GROUPID);
|
|
|
db.AddInParameter(cmdInsert, "@TAXRATE", DbType.Decimal, bill.TaxRate);
|
|
|
db.AddInParameter(cmdInsert, "@NOTAXAMOUNT", DbType.Decimal, bill.NoTaxAmount);
|
|
|
db.AddInParameter(cmdInsert, "@ACCTAXRATE", DbType.Decimal, bill.AccTaxRate);
|
|
|
db.AddInParameter(cmdInsert, "@TAXUNITPRICE", DbType.Decimal, bill.TaxUnitPrice);
|
|
|
|
|
|
db.ExecuteNonQuery(cmdInsert, tran);
|
|
|
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
i = i + 1;
|
|
|
result.Success = WorkResult.Success;
|
|
|
result.Message = WorkResult.Message;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
if (result.Success == true)
|
|
|
{
|
|
|
result = new DBResult();
|
|
|
result.Success = true;
|
|
|
result.Message = "驳回提交成功";
|
|
|
tran.Commit();
|
|
|
}
|
|
|
else {
|
|
|
result.Success =true;
|
|
|
result.Message ="驳回完成,其中"+i.ToString()+"票驳回错误,错误信息"+ result.Message;
|
|
|
|
|
|
tran.Commit();
|
|
|
|
|
|
}
|
|
|
|
|
|
InfoClientLimitHelper.特放业务应收费用审核驳回(审核驳回FEEIDList, USERID);
|
|
|
}
|
|
|
catch (Exception e)
|
|
|
{
|
|
|
tran.Rollback();
|
|
|
|
|
|
result.Success = false;
|
|
|
result.Message = "驳回提交错误,请重试或联系系统管理员"+e.Message;
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
internal static DBResult ShenModify(MsChFee NewFee, MsChFee OldFee, string userid, string optype, string companyid, string WorkFlowstr="",string issalework="",string WorkFlowid="")
|
|
|
{
|
|
|
var result = new DBResult();
|
|
|
|
|
|
var WorkFlowName = "FeeOpOtherModifyAudit";
|
|
|
WorkFlowName = GetWorkFlowName(WorkFlowName, optype);
|
|
|
//if (optype == "op_Seae" || optype == "op_SeaeOrder")
|
|
|
//{
|
|
|
// WorkFlowName = "FeeModifyAudit";
|
|
|
|
|
|
//} if (optype == "op_Seai")
|
|
|
//{
|
|
|
// WorkFlowName = "FeeSeaiModifyAudit";
|
|
|
|
|
|
//} if (optype == "op_Aire")
|
|
|
//{
|
|
|
// WorkFlowName = "AireFeeModify";
|
|
|
|
|
|
//} if (optype == "op_Airi")
|
|
|
//{
|
|
|
// WorkFlowName = "AiriFeeModify";
|
|
|
|
|
|
//} if (optype == "op_Apply")
|
|
|
//{
|
|
|
// WorkFlowName = "ApplyFeeModify";
|
|
|
|
|
|
//} if (optype == "op_Bulk")
|
|
|
//{
|
|
|
// WorkFlowName = "BulkFeeModify";
|
|
|
//} if (optype == "op_other" || optype == "tMsWlPcHead" || optype == "OpCtnBsCard")
|
|
|
//{
|
|
|
// WorkFlowName = "FeeOpOtherModifyAudit";
|
|
|
//} if (optype == "op_railway")
|
|
|
//{
|
|
|
// WorkFlowName = "RailwayFeeModify";
|
|
|
//}
|
|
|
//if (optype.ToLower() == "wms" || optype.ToLower() == "wms_in" || optype.ToLower() == "wms_out")
|
|
|
//{
|
|
|
// var value = WMSNewDAL.WMSNewDAL.GetSysFeeConfig("");
|
|
|
// if (value == "1") WorkFlowName = "FeeSeaiModifyAudit";
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
|
|
if (WorkFlowstr != "") WorkFlowName = WorkFlowstr;
|
|
|
var tmpWorkFlowName = WorkFlowName;
|
|
|
if (OldFee.IsOpen == "True" || OldFee.IsOpen == "1") WorkFlowName = "YjFeefyAudit";
|
|
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (var conn = db.CreateConnection())
|
|
|
{
|
|
|
conn.Open();
|
|
|
var tran = conn.BeginTransaction();
|
|
|
|
|
|
try
|
|
|
{
|
|
|
|
|
|
var cmdUpdateOld =
|
|
|
db.GetSqlStringCommand(
|
|
|
@"update ch_fee_modify set APPLYSTATUS=0 WHERE FEEID=@FEEID ");
|
|
|
var cmdInsert =
|
|
|
db.GetSqlStringCommand(
|
|
|
@"insert into ch_fee_modify (GID,TYPE,APPLYTYPE,REASON,FEEID,BSNO,FEENAME,CUSTOMERNAME,UNIT,UNITPRICE,QUANTITY,
|
|
|
AMOUNT,CURRENCY,FRT,COMMISSIONRATE,EXCHANGERATE,ISADVANCEDPAY,ISINVOICE,APPLYUSER,APPLYTIME,
|
|
|
APPLYSTATUS,REMARK,GROUPID,TAXRATE,NOTAXAMOUNT,ACCTAXRATE,TAXUNITPRICE,MANAGER,SALECORP,CUSTOMERTYPE)
|
|
|
values (@GID,@TYPE,@APPLYTYPE,@REASON,@FEEID,@BSNO,@FEENAME,@CUSTOMERNAME,@UNIT,@UNITPRICE,@QUANTITY,
|
|
|
@AMOUNT,@CURRENCY,@FRT,@COMMISSIONRATE,@EXCHANGERATE,@ISADVANCEDPAY,@ISINVOICE,@APPLYUSER,@APPLYTIME,
|
|
|
@APPLYSTATUS,@REMARK,@GROUPID,@TAXRATE,@NOTAXAMOUNT,@ACCTAXRATE,@TAXUNITPRICE,@MANAGER,@SALECORP,@CUSTOMERTYPE) ");
|
|
|
|
|
|
var cmdUpdate =
|
|
|
db.GetSqlStringCommand(
|
|
|
@"UPDATE CH_FEE SET FEESTATUS=3,REASON=@REASON WHERE GID=@GID ");
|
|
|
|
|
|
|
|
|
var GROUPID = Guid.NewGuid().ToString();
|
|
|
|
|
|
|
|
|
|
|
|
cmdUpdateOld.Parameters.Clear();
|
|
|
db.AddInParameter(cmdUpdateOld, "@FEEID", DbType.String, OldFee.GId);
|
|
|
db.ExecuteNonQuery(cmdUpdateOld, tran);
|
|
|
|
|
|
cmdInsert.Parameters.Clear();
|
|
|
db.AddInParameter(cmdInsert, "@GID", DbType.String, GROUPID);
|
|
|
db.AddInParameter(cmdInsert, "@TYPE", DbType.Int16, OldFee.FeeType);
|
|
|
db.AddInParameter(cmdInsert, "@APPLYTYPE", DbType.Int16, 1);
|
|
|
db.AddInParameter(cmdInsert, "@REASON", DbType.String, "");
|
|
|
db.AddInParameter(cmdInsert, "@FEEID", DbType.String, OldFee.GId);
|
|
|
db.AddInParameter(cmdInsert, "@BSNO", DbType.String, OldFee.BsNo);
|
|
|
db.AddInParameter(cmdInsert, "@FEENAME", DbType.String, OldFee.FeeName);
|
|
|
db.AddInParameter(cmdInsert, "@CUSTOMERNAME", DbType.String, OldFee.CustomerName);
|
|
|
db.AddInParameter(cmdInsert, "@UNIT", DbType.String, OldFee.Unit);
|
|
|
db.AddInParameter(cmdInsert, "@UNITPRICE", DbType.Decimal, OldFee.UnitPrice);
|
|
|
db.AddInParameter(cmdInsert, "@QUANTITY", DbType.Decimal, OldFee.Quantity);
|
|
|
db.AddInParameter(cmdInsert, "@AMOUNT", DbType.Decimal, OldFee.Amount);
|
|
|
db.AddInParameter(cmdInsert, "@CURRENCY", DbType.String, OldFee.Currency);
|
|
|
db.AddInParameter(cmdInsert, "@FRT", DbType.String, OldFee.FeeFrt);
|
|
|
db.AddInParameter(cmdInsert, "@COMMISSIONRATE", DbType.Decimal, OldFee.Commissionrate);
|
|
|
db.AddInParameter(cmdInsert, "@EXCHANGERATE", DbType.Decimal, OldFee.ExChangerate);
|
|
|
db.AddInParameter(cmdInsert, "@ISADVANCEDPAY", DbType.String, OldFee.IsAdvancedpay);
|
|
|
db.AddInParameter(cmdInsert, "@ISINVOICE", DbType.String, OldFee.IsInvoice);
|
|
|
db.AddInParameter(cmdInsert, "@APPLYUSER", DbType.String, userid);
|
|
|
db.AddInParameter(cmdInsert, "@APPLYTIME", DbType.String, DateTime.Now.ToString());
|
|
|
db.AddInParameter(cmdInsert, "@APPLYSTATUS", DbType.Int16, 1);
|
|
|
db.AddInParameter(cmdInsert, "@REMARK", DbType.String, OldFee.Remark);
|
|
|
db.AddInParameter(cmdInsert, "@GROUPID", DbType.String, GROUPID);
|
|
|
db.AddInParameter(cmdInsert, "@TAXRATE", DbType.Decimal, OldFee.TaxRate);
|
|
|
db.AddInParameter(cmdInsert, "@NOTAXAMOUNT", DbType.Decimal, OldFee.NoTaxAmount);
|
|
|
db.AddInParameter(cmdInsert, "@ACCTAXRATE", DbType.Decimal, OldFee.AccTaxRate);
|
|
|
db.AddInParameter(cmdInsert, "@TAXUNITPRICE", DbType.Decimal, OldFee.TaxUnitPrice);
|
|
|
db.AddInParameter(cmdInsert, "@MANAGER", DbType.String, OldFee.MANAGER);
|
|
|
db.AddInParameter(cmdInsert, "@SALECORP", DbType.String, OldFee.SALECORP);
|
|
|
db.AddInParameter(cmdInsert, "@CUSTOMERTYPE", DbType.String, OldFee.CustomerType);
|
|
|
db.ExecuteNonQuery(cmdInsert, tran);
|
|
|
|
|
|
cmdInsert.Parameters.Clear();
|
|
|
db.AddInParameter(cmdInsert, "@GID", DbType.String, Guid.NewGuid().ToString());
|
|
|
db.AddInParameter(cmdInsert, "@TYPE", DbType.Int16, NewFee.FeeType);
|
|
|
db.AddInParameter(cmdInsert, "@APPLYTYPE", DbType.Int16, 2);
|
|
|
db.AddInParameter(cmdInsert, "@REASON", DbType.String, NewFee.Reason);
|
|
|
db.AddInParameter(cmdInsert, "@FEEID", DbType.String, NewFee.GId);
|
|
|
db.AddInParameter(cmdInsert, "@BSNO", DbType.String, NewFee.BsNo);
|
|
|
db.AddInParameter(cmdInsert, "@FEENAME", DbType.String, NewFee.FeeName);
|
|
|
db.AddInParameter(cmdInsert, "@CUSTOMERNAME", DbType.String, NewFee.CustomerName);
|
|
|
db.AddInParameter(cmdInsert, "@UNIT", DbType.String, NewFee.Unit);
|
|
|
db.AddInParameter(cmdInsert, "@UNITPRICE", DbType.Decimal, NewFee.UnitPrice);
|
|
|
db.AddInParameter(cmdInsert, "@QUANTITY", DbType.Decimal, NewFee.Quantity);
|
|
|
db.AddInParameter(cmdInsert, "@AMOUNT", DbType.Decimal, NewFee.Amount);
|
|
|
db.AddInParameter(cmdInsert, "@CURRENCY", DbType.String, NewFee.Currency);
|
|
|
db.AddInParameter(cmdInsert, "@FRT", DbType.String, NewFee.FeeFrt);
|
|
|
db.AddInParameter(cmdInsert, "@COMMISSIONRATE", DbType.Decimal, NewFee.Commissionrate);
|
|
|
db.AddInParameter(cmdInsert, "@EXCHANGERATE", DbType.Decimal, NewFee.ExChangerate);
|
|
|
db.AddInParameter(cmdInsert, "@ISADVANCEDPAY", DbType.String, NewFee.IsAdvancedpay);
|
|
|
db.AddInParameter(cmdInsert, "@ISINVOICE", DbType.String, NewFee.IsInvoice);
|
|
|
|
|
|
db.AddInParameter(cmdInsert, "@APPLYUSER", DbType.String, userid);
|
|
|
db.AddInParameter(cmdInsert, "@APPLYTIME", DbType.String, DateTime.Now.ToString());
|
|
|
db.AddInParameter(cmdInsert, "@APPLYSTATUS", DbType.Int16, 1);
|
|
|
db.AddInParameter(cmdInsert, "@REMARK", DbType.String, NewFee.Remark);
|
|
|
db.AddInParameter(cmdInsert, "@GROUPID", DbType.String, GROUPID);
|
|
|
db.AddInParameter(cmdInsert, "@TAXRATE", DbType.Decimal, NewFee.TaxRate);
|
|
|
db.AddInParameter(cmdInsert, "@NOTAXAMOUNT", DbType.Decimal, NewFee.NoTaxAmount);
|
|
|
db.AddInParameter(cmdInsert, "@ACCTAXRATE", DbType.Decimal, NewFee.AccTaxRate);
|
|
|
db.AddInParameter(cmdInsert, "@TAXUNITPRICE", DbType.Decimal, NewFee.TaxUnitPrice);
|
|
|
db.AddInParameter(cmdInsert, "@MANAGER", DbType.String, NewFee.MANAGER);
|
|
|
db.AddInParameter(cmdInsert, "@SALECORP", DbType.String, NewFee.SALECORP);
|
|
|
db.AddInParameter(cmdInsert, "@CUSTOMERTYPE", DbType.String, NewFee.CustomerType);
|
|
|
|
|
|
db.ExecuteNonQuery(cmdInsert, tran);
|
|
|
//if (optype == "OpCtnBsCard")
|
|
|
//{
|
|
|
//}
|
|
|
//else
|
|
|
//{
|
|
|
T_ALL_DA T_ALL_DA = new T_ALL_DA();
|
|
|
var mblno = "";
|
|
|
var saleid="";
|
|
|
if (mblno == "" || (issalework == "1" && saleid == ""))
|
|
|
{
|
|
|
string lsSQLuser = "select top 1 MBLNO,(SELECT GID from [user] where SHOWNAME=v_op_bs.SALE) SALEID,CUSTOMERNAME,BSSOURCE from v_op_bs where BSNO='" + OldFee.BsNo+ "'";
|
|
|
DataSet dsUser = T_ALL_DA.GetAllSQL(lsSQLuser);
|
|
|
if (dsUser != null)
|
|
|
{
|
|
|
if (dsUser.Tables[0].Rows.Count > 0)
|
|
|
{
|
|
|
mblno = dsUser.Tables[0].Rows[0]["MBLNO"].ToString();
|
|
|
if (issalework == "1")
|
|
|
saleid = dsUser.Tables[0].Rows[0]["SALEID"].ToString();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (mblno == "") mblno =OldFee.BsNo;
|
|
|
if (saleid == "") saleid = userid;
|
|
|
|
|
|
if (WorkFlowid == "")
|
|
|
{
|
|
|
string lsSQL = "select * FROM workflow WHERE COMPANYID='" + companyid + "' AND ISCONDITION=1 and [TYPE]=(SELECT TYPENO FROM workflow_type WHERE [NAME]='" + tmpWorkFlowName + "') "
|
|
|
+ " and GID in (select workflowID from workflow_Userpath where userid ='" + userid + "') order by SORTNO ";
|
|
|
DataSet dsworkflow = T_ALL_DA.GetAllSQL(lsSQL);
|
|
|
if (dsworkflow != null)
|
|
|
{
|
|
|
if (dsworkflow.Tables[0].Rows.Count > 0)
|
|
|
{
|
|
|
foreach (DataRow row in dsworkflow.Tables[0].Rows)
|
|
|
{
|
|
|
var CONDITIONSQL = Convert.ToString(row["CONDITIONSQL"]);
|
|
|
CONDITIONSQL = CONDITIONSQL.Replace("[业务编号]", "'" + OldFee.BsNo + "'").Replace("[费用对象]", "'" + OldFee.CustomerName + "'").Replace("[FEEID]", "'" + OldFee.GId + "'");
|
|
|
var strCOUNT = T_ALL_DA.GetStrSQL("BLCT", CONDITIONSQL);
|
|
|
if (strCOUNT != "0")
|
|
|
{
|
|
|
WorkFlowid = Convert.ToString(row["GID"]);
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
if (WorkFlowid == "") WorkFlowid = "no";
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
Resultmb WorkResult = WorkFlowDAL.WorkFlowStart(WorkFlowName, NewFee.GId, saleid, mblno, OldFee.BsNo, "Account/Chfee_AuditBL", WorkFlowid);
|
|
|
if (WorkResult.Success != true) {
|
|
|
if (optype.ToLower() == "wms" || optype.ToLower() == "wms_in" || optype.ToLower() == "wms_out")
|
|
|
{
|
|
|
WorkResult = WorkFlowDAL.WorkFlowStart("FeeSeaiModifyAudit", NewFee.GId, saleid, mblno, OldFee.BsNo, "Account/Chfee_AuditBL", WorkFlowid);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
// Resultmb WorkResult = WorkFlowDAL.WorkFlowStart(WorkFlowName, bill.BSNO, USERID, bill.MBLNO, bill.BSNO, "Account/Chfee_AuditBL", WorkFlowid);
|
|
|
|
|
|
|
|
|
if (WorkResult.Success == true)
|
|
|
{
|
|
|
|
|
|
cmdUpdate.Parameters.Clear();
|
|
|
db.AddInParameter(cmdUpdate, "@GID", DbType.String, NewFee.GId);
|
|
|
db.AddInParameter(cmdUpdate, "@REASON", DbType.String, NewFee.Reason);
|
|
|
db.ExecuteNonQuery(cmdUpdate, tran);
|
|
|
|
|
|
if (WorkResult.islast == true) {
|
|
|
var cmdupdate = db.GetSqlStringCommand(@"update ch_fee set FEENAME=a.FEENAME,CUSTOMERNAME=a.CUSTOMERNAME,UNIT=a.UNIT,UNITPRICE=a.UNITPRICE,
|
|
|
QUANTITY=a.QUANTITY,AMOUNT=a.AMOUNT,CURRENCY=a.CURRENCY,EXCHANGERATE=a.EXCHANGERATE,REASON=a.REASON,REMARK=a.REMARK,ISINVOICE=a.ISINVOICE,ISADVANCEDPAY=a.ISADVANCEDPAY,
|
|
|
TAXRATE=a.TAXRATE,NOTAXAMOUNT=a.NOTAXAMOUNT,ACCTAXRATE=a.ACCTAXRATE,TAXUNITPRICE=a.TAXUNITPRICE,MANAGER=a.MANAGER,CUSTOMERTYPE=a.CUSTOMERTYPE,FEESTATUS=0
|
|
|
from ch_fee left join ch_fee_modify a on (a.FEEID=ch_fee.GID and a.APPLYSTATUS=1 AND a.APPLYTYPE=2 ) where ch_fee.GID=@GID");
|
|
|
|
|
|
|
|
|
db.AddInParameter(cmdupdate, "@GID", DbType.String, NewFee.GId);
|
|
|
db.ExecuteNonQuery(cmdupdate, tran);
|
|
|
|
|
|
if (optype == "import_main")
|
|
|
{
|
|
|
if (NewFee.Currency != "RMB" && (NewFee.FeeName == "预付款" || NewFee.FeeName == "尾款" || NewFee.FeeName == "购货款"))
|
|
|
{
|
|
|
InsertImportPayRecord(NewFee, userid, db, tran);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
var cmdupdateModify = db.GetSqlStringCommand("update ch_fee_modify set applystatus=2,audituser=@audituser,audittime=@audittime where FEEID=@GID and applystatus=1");
|
|
|
|
|
|
|
|
|
cmdupdateModify.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdateModify, "@GID", DbType.String, NewFee.GId);
|
|
|
db.AddInParameter(cmdupdateModify, "@audituser", DbType.String, userid);
|
|
|
db.AddInParameter(cmdupdateModify, "@audittime", DbType.Date, DateTime.Now);
|
|
|
db.ExecuteNonQuery(cmdupdateModify, tran);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
tran.Rollback();
|
|
|
result.Success = false;
|
|
|
result.Message = "申请修改出现错误,请重试或联系系统管理员";
|
|
|
return result;
|
|
|
}
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
|
|
result = new DBResult();
|
|
|
result.Success = true;
|
|
|
result.Message = "申请修改成功";
|
|
|
|
|
|
tran.Commit();
|
|
|
}
|
|
|
catch (Exception e)
|
|
|
{
|
|
|
tran.Rollback();
|
|
|
|
|
|
result.Success = false;
|
|
|
result.Message = "申请修改出现错误,请重试或联系系统管理员"+e.Message;
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
result.Success = true;
|
|
|
result.Message = "申请修改成功";
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
internal static DBResult ShenDelete(MsChFee OldFee, string userid, string optype, string companyid, string WorkFlowstr = "", string issalework="",string WorkFlowid="")
|
|
|
{
|
|
|
var result = new DBResult();
|
|
|
|
|
|
|
|
|
var WorkFlowName = "FeeOpOtherModifyAudit";
|
|
|
WorkFlowName = GetWorkFlowName(WorkFlowName, optype);
|
|
|
//if (optype == "op_Seae" || optype == "op_SeaeOrder")
|
|
|
//{
|
|
|
// WorkFlowName = "FeeModifyAudit";
|
|
|
|
|
|
//} if (optype == "op_Seai")
|
|
|
//{
|
|
|
// WorkFlowName = "FeeSeaiModifyAudit";
|
|
|
|
|
|
//} if (optype == "op_Aire")
|
|
|
//{
|
|
|
// WorkFlowName = "AireFeeModify";
|
|
|
|
|
|
//} if (optype == "op_Airi")
|
|
|
//{
|
|
|
// WorkFlowName = "AiriFeeModify";
|
|
|
|
|
|
//} if (optype == "op_Apply")
|
|
|
//{
|
|
|
// WorkFlowName = "ApplyFeeModify";
|
|
|
|
|
|
//} if (optype == "op_Bulk")
|
|
|
//{
|
|
|
// WorkFlowName = "BulkFeeModify";
|
|
|
//} if (optype == "op_other" || optype == "tMsWlPcHead" || optype == "OpCtnBsCard")
|
|
|
//{
|
|
|
// WorkFlowName = "FeeOpOtherModifyAudit";
|
|
|
//} if (optype == "op_railway")
|
|
|
//{
|
|
|
// WorkFlowName = "RailwayFeeModify";
|
|
|
//}
|
|
|
//if (optype.ToLower() == "wms" || optype.ToLower() == "wms_in" || optype.ToLower() == "wms_out")
|
|
|
//{
|
|
|
// var value = WMSNewDAL.WMSNewDAL.GetSysFeeConfig("");
|
|
|
// if (value == "1") WorkFlowName = "FeeSeaiModifyAudit";
|
|
|
//}
|
|
|
|
|
|
|
|
|
if (WorkFlowstr != "") WorkFlowName = WorkFlowstr;
|
|
|
if (OldFee.IsOpen == "True" || OldFee.IsOpen == "1") WorkFlowName = "YjFeefyAudit";
|
|
|
|
|
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (var conn = db.CreateConnection())
|
|
|
{
|
|
|
conn.Open();
|
|
|
var tran = conn.BeginTransaction();
|
|
|
|
|
|
try
|
|
|
{
|
|
|
|
|
|
|
|
|
var cmdInsert =
|
|
|
db.GetSqlStringCommand(
|
|
|
@"insert into ch_fee_modify (GID,TYPE,APPLYTYPE,REASON,FEEID,BSNO,FEENAME,CUSTOMERNAME,UNIT,UNITPRICE,QUANTITY,
|
|
|
AMOUNT,CURRENCY,FRT,COMMISSIONRATE,EXCHANGERATE,ISADVANCEDPAY,APPLYUSER,APPLYTIME,
|
|
|
APPLYSTATUS,REMARK,GROUPID,TAXRATE,NOTAXAMOUNT,ACCTAXRATE,TAXUNITPRICE,MANAGER)
|
|
|
values (@GID,@TYPE,@APPLYTYPE,@REASON,@FEEID,@BSNO,@FEENAME,@CUSTOMERNAME,@UNIT,@UNITPRICE,@QUANTITY,
|
|
|
@AMOUNT,@CURRENCY,@FRT,@COMMISSIONRATE,@EXCHANGERATE,@ISADVANCEDPAY,@APPLYUSER,@APPLYTIME,
|
|
|
@APPLYSTATUS,@REMARK,@GROUPID,@TAXRATE,@NOTAXAMOUNT,@ACCTAXRATE,@TAXUNITPRICE,@MANAGER) ");
|
|
|
|
|
|
var cmdUpdate =
|
|
|
db.GetSqlStringCommand(
|
|
|
@"UPDATE CH_FEE SET FEESTATUS=4,REASON=@REASON WHERE GID=@GID ");
|
|
|
|
|
|
|
|
|
var GROUPID = Guid.NewGuid().ToString();
|
|
|
|
|
|
cmdInsert.Parameters.Clear();
|
|
|
db.AddInParameter(cmdInsert, "@GID", DbType.String, GROUPID);
|
|
|
db.AddInParameter(cmdInsert, "@TYPE", DbType.Int16, OldFee.FeeType);
|
|
|
db.AddInParameter(cmdInsert, "@APPLYTYPE", DbType.Int16, 3);
|
|
|
db.AddInParameter(cmdInsert, "@REASON", DbType.String, OldFee.Reason);
|
|
|
db.AddInParameter(cmdInsert, "@FEEID", DbType.String, OldFee.GId);
|
|
|
db.AddInParameter(cmdInsert, "@BSNO", DbType.String, OldFee.BsNo);
|
|
|
db.AddInParameter(cmdInsert, "@FEENAME", DbType.String, OldFee.FeeName);
|
|
|
db.AddInParameter(cmdInsert, "@CUSTOMERNAME", DbType.String, OldFee.CustomerName);
|
|
|
db.AddInParameter(cmdInsert, "@UNIT", DbType.String, OldFee.Unit);
|
|
|
db.AddInParameter(cmdInsert, "@UNITPRICE", DbType.Decimal, OldFee.UnitPrice);
|
|
|
db.AddInParameter(cmdInsert, "@QUANTITY", DbType.Decimal, OldFee.Quantity);
|
|
|
db.AddInParameter(cmdInsert, "@AMOUNT", DbType.Decimal, OldFee.Amount);
|
|
|
db.AddInParameter(cmdInsert, "@CURRENCY", DbType.String, OldFee.Currency);
|
|
|
db.AddInParameter(cmdInsert, "@FRT", DbType.String, OldFee.FeeFrt);
|
|
|
db.AddInParameter(cmdInsert, "@COMMISSIONRATE", DbType.Decimal, OldFee.Commissionrate);
|
|
|
db.AddInParameter(cmdInsert, "@EXCHANGERATE", DbType.Decimal, OldFee.ExChangerate);
|
|
|
db.AddInParameter(cmdInsert, "@ISADVANCEDPAY", DbType.String, OldFee.IsAdvancedpay);
|
|
|
db.AddInParameter(cmdInsert, "@APPLYUSER", DbType.String, userid);
|
|
|
db.AddInParameter(cmdInsert, "@APPLYTIME", DbType.String, DateTime.Now.ToString());
|
|
|
db.AddInParameter(cmdInsert, "@APPLYSTATUS", DbType.Int16, 1);
|
|
|
db.AddInParameter(cmdInsert, "@REMARK", DbType.String, OldFee.Remark);
|
|
|
db.AddInParameter(cmdInsert, "@GROUPID", DbType.String, GROUPID);
|
|
|
db.AddInParameter(cmdInsert, "@TAXRATE", DbType.Decimal, OldFee.TaxRate);
|
|
|
db.AddInParameter(cmdInsert, "@NOTAXAMOUNT", DbType.Decimal, OldFee.NoTaxAmount);
|
|
|
db.AddInParameter(cmdInsert, "@ACCTAXRATE", DbType.Decimal, OldFee.AccTaxRate);
|
|
|
db.AddInParameter(cmdInsert, "@TAXUNITPRICE", DbType.Decimal, OldFee.TaxUnitPrice);
|
|
|
db.AddInParameter(cmdInsert, "@MANAGER", DbType.String, OldFee.MANAGER);
|
|
|
|
|
|
db.ExecuteNonQuery(cmdInsert, tran);
|
|
|
|
|
|
//if (optype == "OpCtnBsCard")
|
|
|
//{
|
|
|
//}
|
|
|
//else
|
|
|
//{
|
|
|
//{
|
|
|
T_ALL_DA T_ALL_DA = new T_ALL_DA();
|
|
|
var mblno = "";
|
|
|
var saleid = "";
|
|
|
if (mblno == "" || (issalework == "1" && saleid == ""))
|
|
|
{
|
|
|
string lsSQLuser = "select top 1 MBLNO,(SELECT GID from [user] where SHOWNAME=v_op_bs.SALE) SALEID from v_op_bs where BSNO='" + OldFee.BsNo + "'";
|
|
|
DataSet dsUser = T_ALL_DA.GetAllSQL(lsSQLuser);
|
|
|
if (dsUser != null)
|
|
|
{
|
|
|
if (dsUser.Tables[0].Rows.Count > 0)
|
|
|
{
|
|
|
mblno = dsUser.Tables[0].Rows[0]["MBLNO"].ToString();
|
|
|
if (issalework == "1")
|
|
|
saleid = dsUser.Tables[0].Rows[0]["SALEID"].ToString();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
if (mblno == "") mblno = OldFee.BsNo;
|
|
|
if (saleid == "") saleid = userid;
|
|
|
|
|
|
var WorkFlow = "";
|
|
|
if (OldFee.IsOpen == "True" || OldFee.IsOpen == "1") WorkFlow = "YjFeefyAudit"; else WorkFlow = WorkFlowName;
|
|
|
|
|
|
|
|
|
if (WorkFlowid == "")
|
|
|
{
|
|
|
string lsSQL = "select * FROM workflow WHERE COMPANYID='" + companyid + "' AND ISCONDITION=1 and [TYPE]=(SELECT TYPENO FROM workflow_type WHERE [NAME]='" + WorkFlow + "') "
|
|
|
+ " and GID in (select workflowID from workflow_Userpath where userid ='" + userid + "') order by SORTNO ";
|
|
|
DataSet dsworkflow = T_ALL_DA.GetAllSQL(lsSQL);
|
|
|
if (dsworkflow != null)
|
|
|
{
|
|
|
if (dsworkflow.Tables[0].Rows.Count > 0)
|
|
|
{
|
|
|
foreach (DataRow row in dsworkflow.Tables[0].Rows)
|
|
|
{
|
|
|
var CONDITIONSQL = Convert.ToString(row["CONDITIONSQL"]);
|
|
|
CONDITIONSQL = CONDITIONSQL.Replace("[业务编号]", "'" + OldFee.BsNo + "'").Replace("[费用对象]", "'" + OldFee.CustomerName + "'").Replace("[FEEID]", "'" + OldFee.GId + "'");
|
|
|
var strCOUNT = T_ALL_DA.GetStrSQL("BLCT", CONDITIONSQL);
|
|
|
if (strCOUNT != "0")
|
|
|
{
|
|
|
WorkFlowid = Convert.ToString(row["GID"]);
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
if (WorkFlowid == "") WorkFlowid = "no";
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Resultmb WorkResult = WorkFlowDAL.WorkFlowStart(WorkFlowName, OldFee.GId, saleid, mblno, OldFee.BsNo, "", WorkFlowid);
|
|
|
if (WorkResult.Success != true)
|
|
|
{
|
|
|
if (optype.ToLower() == "wms" || optype.ToLower() == "wms_in" || optype.ToLower() == "wms_out")
|
|
|
{
|
|
|
WorkResult = WorkFlowDAL.WorkFlowStart("FeeSeaiModifyAudit", OldFee.GId, saleid, mblno, OldFee.BsNo, "", WorkFlowid);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (WorkResult.Success == true)
|
|
|
{
|
|
|
|
|
|
cmdUpdate.Parameters.Clear();
|
|
|
db.AddInParameter(cmdUpdate, "@GID", DbType.String, OldFee.GId);
|
|
|
db.AddInParameter(cmdUpdate, "@REASON", DbType.String, OldFee.Reason);
|
|
|
db.ExecuteNonQuery(cmdUpdate, tran);
|
|
|
if (WorkResult.islast==true){
|
|
|
var cmdupdate = db.GetSqlStringCommand("delete from ch_fee where GID=@GID");
|
|
|
cmdupdate.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdate, "@GID", DbType.String, OldFee.GId);
|
|
|
db.ExecuteNonQuery(cmdupdate, tran);
|
|
|
if (optype == "import_main")
|
|
|
{
|
|
|
DeleteImportPayRecord(OldFee.GId, db, tran);
|
|
|
}
|
|
|
|
|
|
var cmdupdateModify = db.GetSqlStringCommand("update ch_fee_modify set applystatus=2,audituser=@audituser,audittime=@audittime where FEEID=@GID and applystatus=1");
|
|
|
|
|
|
|
|
|
cmdupdateModify.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdateModify, "@GID", DbType.String, OldFee.GId);
|
|
|
db.AddInParameter(cmdupdateModify, "@audituser", DbType.String, userid);
|
|
|
db.AddInParameter(cmdupdateModify, "@audittime", DbType.Date, DateTime.Now);
|
|
|
db.ExecuteNonQuery(cmdupdateModify, tran);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
|
|
|
tran.Rollback();
|
|
|
|
|
|
result.Success = false;
|
|
|
result.Message = "申请删除出现错误," + WorkResult.Message;
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
|
|
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;
|
|
|
}
|
|
|
|
|
|
internal static DBResult ShenDeleteList(MsChFee OldFee,List<MsChFee> FeeList, string userid, string optype, string companyid, string WorkFlowstr = "", string issalework = "", string WorkFlowid = "")
|
|
|
{
|
|
|
var result = new DBResult();
|
|
|
|
|
|
|
|
|
var WorkFlowName = "FeeOpOtherModifyAudit";
|
|
|
WorkFlowName = GetWorkFlowName(WorkFlowName, optype);
|
|
|
//if (optype == "op_Seae" || optype == "op_SeaeOrder")
|
|
|
//{
|
|
|
// WorkFlowName = "FeeModifyAudit";
|
|
|
|
|
|
//}
|
|
|
//if (optype == "op_Seai")
|
|
|
//{
|
|
|
// WorkFlowName = "FeeSeaiModifyAudit";
|
|
|
|
|
|
//}
|
|
|
//if (optype == "op_Aire")
|
|
|
//{
|
|
|
// WorkFlowName = "AireFeeModify";
|
|
|
|
|
|
//}
|
|
|
//if (optype == "op_Airi")
|
|
|
//{
|
|
|
// WorkFlowName = "AiriFeeModify";
|
|
|
|
|
|
//}
|
|
|
//if (optype == "op_Apply")
|
|
|
//{
|
|
|
// WorkFlowName = "ApplyFeeModify";
|
|
|
|
|
|
//}
|
|
|
//if (optype == "op_Bulk")
|
|
|
//{
|
|
|
// WorkFlowName = "BulkFeeModify";
|
|
|
//}
|
|
|
//if (optype == "op_other" || optype == "tMsWlPcHead" || optype == "OpCtnBsCard")
|
|
|
//{
|
|
|
// WorkFlowName = "FeeOpOtherModifyAudit";
|
|
|
//}
|
|
|
//if (optype == "op_railway")
|
|
|
//{
|
|
|
// WorkFlowName = "RailwayFeeModify";
|
|
|
//}
|
|
|
//if (optype.ToLower() == "wms" || optype.ToLower() == "wms_in" || optype.ToLower() == "wms_out")
|
|
|
//{
|
|
|
// var value = WMSNewDAL.WMSNewDAL.GetSysFeeConfig("");
|
|
|
// if (value == "1") WorkFlowName = "FeeSeaiModifyAudit";
|
|
|
//}
|
|
|
|
|
|
|
|
|
if (WorkFlowstr != "") WorkFlowName = WorkFlowstr;
|
|
|
if (OldFee.IsOpen == "True" || OldFee.IsOpen == "1") WorkFlowName = "YjFeefyAudit";
|
|
|
|
|
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (var conn = db.CreateConnection())
|
|
|
{
|
|
|
conn.Open();
|
|
|
var tran = conn.BeginTransaction();
|
|
|
|
|
|
try
|
|
|
{
|
|
|
|
|
|
|
|
|
var cmdInsert =
|
|
|
db.GetSqlStringCommand(
|
|
|
@"insert into ch_fee_modify (GID,TYPE,APPLYTYPE,REASON,FEEID,BSNO,FEENAME,CUSTOMERNAME,UNIT,UNITPRICE,QUANTITY,
|
|
|
AMOUNT,CURRENCY,FRT,COMMISSIONRATE,EXCHANGERATE,ISADVANCEDPAY,APPLYUSER,APPLYTIME,
|
|
|
APPLYSTATUS,REMARK,GROUPID,TAXRATE,NOTAXAMOUNT,ACCTAXRATE,TAXUNITPRICE,MANAGER)
|
|
|
values (@GID,@TYPE,@APPLYTYPE,@REASON,@FEEID,@BSNO,@FEENAME,@CUSTOMERNAME,@UNIT,@UNITPRICE,@QUANTITY,
|
|
|
@AMOUNT,@CURRENCY,@FRT,@COMMISSIONRATE,@EXCHANGERATE,@ISADVANCEDPAY,@APPLYUSER,@APPLYTIME,
|
|
|
@APPLYSTATUS,@REMARK,@GROUPID,@TAXRATE,@NOTAXAMOUNT,@ACCTAXRATE,@TAXUNITPRICE,@MANAGER) ");
|
|
|
|
|
|
var cmdUpdate =
|
|
|
db.GetSqlStringCommand(
|
|
|
@"UPDATE CH_FEE SET FEESTATUS=4,REASON=@REASON WHERE GID=@GID ");
|
|
|
|
|
|
foreach (var FeeItem in FeeList)
|
|
|
{
|
|
|
|
|
|
var GROUPID = Guid.NewGuid().ToString();
|
|
|
|
|
|
cmdInsert.Parameters.Clear();
|
|
|
db.AddInParameter(cmdInsert, "@GID", DbType.String, GROUPID);
|
|
|
db.AddInParameter(cmdInsert, "@TYPE", DbType.Int16, FeeItem.FeeType);
|
|
|
db.AddInParameter(cmdInsert, "@APPLYTYPE", DbType.Int16, 3);
|
|
|
db.AddInParameter(cmdInsert, "@REASON", DbType.String, OldFee.Reason);
|
|
|
db.AddInParameter(cmdInsert, "@FEEID", DbType.String, FeeItem.GId);
|
|
|
db.AddInParameter(cmdInsert, "@BSNO", DbType.String, FeeItem.BsNo);
|
|
|
db.AddInParameter(cmdInsert, "@FEENAME", DbType.String, FeeItem.FeeName);
|
|
|
db.AddInParameter(cmdInsert, "@CUSTOMERNAME", DbType.String, FeeItem.CustomerName);
|
|
|
db.AddInParameter(cmdInsert, "@UNIT", DbType.String, FeeItem.Unit);
|
|
|
db.AddInParameter(cmdInsert, "@UNITPRICE", DbType.Decimal, FeeItem.UnitPrice);
|
|
|
db.AddInParameter(cmdInsert, "@QUANTITY", DbType.Decimal, FeeItem.Quantity);
|
|
|
db.AddInParameter(cmdInsert, "@AMOUNT", DbType.Decimal, FeeItem.Amount);
|
|
|
db.AddInParameter(cmdInsert, "@CURRENCY", DbType.String, FeeItem.Currency);
|
|
|
db.AddInParameter(cmdInsert, "@FRT", DbType.String, FeeItem.FeeFrt);
|
|
|
db.AddInParameter(cmdInsert, "@COMMISSIONRATE", DbType.Decimal, FeeItem.Commissionrate);
|
|
|
db.AddInParameter(cmdInsert, "@EXCHANGERATE", DbType.Decimal, FeeItem.ExChangerate);
|
|
|
db.AddInParameter(cmdInsert, "@ISADVANCEDPAY", DbType.String, FeeItem.IsAdvancedpay);
|
|
|
db.AddInParameter(cmdInsert, "@APPLYUSER", DbType.String, userid);
|
|
|
db.AddInParameter(cmdInsert, "@APPLYTIME", DbType.String, DateTime.Now.ToString());
|
|
|
db.AddInParameter(cmdInsert, "@APPLYSTATUS", DbType.Int16, 1);
|
|
|
db.AddInParameter(cmdInsert, "@REMARK", DbType.String, FeeItem.Remark);
|
|
|
db.AddInParameter(cmdInsert, "@GROUPID", DbType.String, GROUPID);
|
|
|
db.AddInParameter(cmdInsert, "@TAXRATE", DbType.Decimal, FeeItem.TaxRate);
|
|
|
db.AddInParameter(cmdInsert, "@NOTAXAMOUNT", DbType.Decimal, FeeItem.NoTaxAmount);
|
|
|
db.AddInParameter(cmdInsert, "@ACCTAXRATE", DbType.Decimal, FeeItem.AccTaxRate);
|
|
|
db.AddInParameter(cmdInsert, "@TAXUNITPRICE", DbType.Decimal, FeeItem.TaxUnitPrice);
|
|
|
db.AddInParameter(cmdInsert, "@MANAGER", DbType.String, FeeItem.MANAGER);
|
|
|
|
|
|
db.ExecuteNonQuery(cmdInsert, tran);
|
|
|
|
|
|
//if (optype == "OpCtnBsCard")
|
|
|
//{
|
|
|
//}
|
|
|
//else
|
|
|
//{
|
|
|
//{
|
|
|
T_ALL_DA T_ALL_DA = new T_ALL_DA();
|
|
|
var mblno = "";
|
|
|
var saleid = "";
|
|
|
if (mblno == "" || (issalework == "1" && saleid == ""))
|
|
|
{
|
|
|
string lsSQLuser = "select top 1 MBLNO,(SELECT GID from [user] where SHOWNAME=v_op_bs.SALE) SALEID from v_op_bs where BSNO='" + OldFee.BsNo + "'";
|
|
|
DataSet dsUser = T_ALL_DA.GetAllSQL(lsSQLuser);
|
|
|
if (dsUser != null)
|
|
|
{
|
|
|
if (dsUser.Tables[0].Rows.Count > 0)
|
|
|
{
|
|
|
mblno = dsUser.Tables[0].Rows[0]["MBLNO"].ToString();
|
|
|
if (issalework == "1")
|
|
|
saleid = dsUser.Tables[0].Rows[0]["SALEID"].ToString();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
if (mblno == "") mblno = FeeItem.BsNo;
|
|
|
if (saleid == "") saleid = userid;
|
|
|
|
|
|
var WorkFlow = "";
|
|
|
if (FeeItem.IsOpen == "True" || FeeItem.IsOpen == "1") WorkFlow = "YjFeefyAudit"; else WorkFlow = WorkFlowName;
|
|
|
|
|
|
|
|
|
if (WorkFlowid == "")
|
|
|
{
|
|
|
string lsSQL = "select * FROM workflow WHERE COMPANYID='" + companyid + "' AND ISCONDITION=1 and [TYPE]=(SELECT TYPENO FROM workflow_type WHERE [NAME]='" + WorkFlow + "') "
|
|
|
+ " and GID in (select workflowID from workflow_Userpath where userid ='" + userid + "') order by SORTNO ";
|
|
|
DataSet dsworkflow = T_ALL_DA.GetAllSQL(lsSQL);
|
|
|
if (dsworkflow != null)
|
|
|
{
|
|
|
if (dsworkflow.Tables[0].Rows.Count > 0)
|
|
|
{
|
|
|
foreach (DataRow row in dsworkflow.Tables[0].Rows)
|
|
|
{
|
|
|
var CONDITIONSQL = Convert.ToString(row["CONDITIONSQL"]);
|
|
|
CONDITIONSQL = CONDITIONSQL.Replace("[业务编号]", "'" + FeeItem.BsNo + "'").Replace("[费用对象]", "'" + FeeItem.CustomerName + "'").Replace("[FEEID]", "'" + FeeItem.GId + "'");
|
|
|
var strCOUNT = T_ALL_DA.GetStrSQL("BLCT", CONDITIONSQL);
|
|
|
if (strCOUNT != "0")
|
|
|
{
|
|
|
WorkFlowid = Convert.ToString(row["GID"]);
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
if (WorkFlowid == "") WorkFlowid = "no";
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Resultmb WorkResult = WorkFlowDAL.WorkFlowStart(WorkFlowName, FeeItem.GId, saleid, mblno, FeeItem.BsNo, "", WorkFlowid);
|
|
|
if (WorkResult.Success != true)
|
|
|
{
|
|
|
if (optype.ToLower() == "wms" || optype.ToLower() == "wms_in" || optype.ToLower() == "wms_out")
|
|
|
{
|
|
|
WorkResult = WorkFlowDAL.WorkFlowStart("FeeSeaiModifyAudit", FeeItem.GId, saleid, mblno, FeeItem.BsNo, "", WorkFlowid);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (WorkResult.Success == true)
|
|
|
{
|
|
|
|
|
|
cmdUpdate.Parameters.Clear();
|
|
|
db.AddInParameter(cmdUpdate, "@GID", DbType.String, FeeItem.GId);
|
|
|
db.AddInParameter(cmdUpdate, "@REASON", DbType.String, OldFee.Reason);
|
|
|
db.ExecuteNonQuery(cmdUpdate, tran);
|
|
|
if (WorkResult.islast == true)
|
|
|
{
|
|
|
var cmdupdate = db.GetSqlStringCommand("delete from ch_fee where GID=@GID");
|
|
|
cmdupdate.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdate, "@GID", DbType.String, FeeItem.GId);
|
|
|
db.ExecuteNonQuery(cmdupdate, tran);
|
|
|
if (optype == "import_main")
|
|
|
{
|
|
|
DeleteImportPayRecord(FeeItem.GId, db, tran);
|
|
|
}
|
|
|
|
|
|
var cmdupdateModify = db.GetSqlStringCommand("update ch_fee_modify set applystatus=2,audituser=@audituser,audittime=@audittime where FEEID=@GID and applystatus=1");
|
|
|
|
|
|
|
|
|
cmdupdateModify.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdateModify, "@GID", DbType.String, FeeItem.GId);
|
|
|
db.AddInParameter(cmdupdateModify, "@audituser", DbType.String, userid);
|
|
|
db.AddInParameter(cmdupdateModify, "@audittime", DbType.Date, DateTime.Now);
|
|
|
db.ExecuteNonQuery(cmdupdateModify, tran);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
|
|
|
tran.Rollback();
|
|
|
|
|
|
result.Success = false;
|
|
|
result.Message = "申请删除出现错误," + WorkResult.Message;
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
|
|
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;
|
|
|
}
|
|
|
|
|
|
internal static DBResult CancelShen(string Feeid, string optype, string userid, string WorkFlowstr = "", string issalework="", string isopen = "")
|
|
|
{
|
|
|
var result = new DBResult();
|
|
|
|
|
|
|
|
|
var WorkFlowName = "FeeOpOtherModifyAudit";
|
|
|
WorkFlowName = GetWorkFlowName(WorkFlowName, optype);
|
|
|
//if (optype == "op_Seae" || optype == "op_SeaeOrder")
|
|
|
//{
|
|
|
// WorkFlowName = "FeeModifyAudit";
|
|
|
|
|
|
//} if (optype == "op_Seai")
|
|
|
//{
|
|
|
// WorkFlowName = "FeeSeaiModifyAudit";
|
|
|
|
|
|
//} if (optype == "op_Aire")
|
|
|
//{
|
|
|
// WorkFlowName = "AireFeeModify";
|
|
|
|
|
|
//} if (optype == "op_Airi")
|
|
|
//{
|
|
|
// WorkFlowName = "AiriFeeModify";
|
|
|
|
|
|
//} if (optype == "op_Apply")
|
|
|
//{
|
|
|
// WorkFlowName = "ApplyFeeModify";
|
|
|
|
|
|
//} if (optype == "op_Bulk")
|
|
|
//{
|
|
|
// WorkFlowName = "BulkFeeModify";
|
|
|
//} if (optype == "op_other" || optype == "tMsWlPcHead" || optype == "OpCtnBsCard")
|
|
|
//{
|
|
|
// WorkFlowName = "FeeOpOtherModifyAudit";
|
|
|
//} if (optype == "op_railway")
|
|
|
//{
|
|
|
// WorkFlowName = "RailwayFeeModify";
|
|
|
//}
|
|
|
//if (optype.ToLower() == "wms" || optype.ToLower() == "wms_in" || optype.ToLower() == "wms_out")
|
|
|
//{
|
|
|
// var value = WMSNewDAL.WMSNewDAL.GetSysFeeConfig("");
|
|
|
// if (value == "1") WorkFlowName = "FeeSeaiModifyAudit";
|
|
|
//}
|
|
|
|
|
|
var 审核通过FEEIDList = new List<string>();
|
|
|
|
|
|
if (WorkFlowstr != "") WorkFlowName = WorkFlowstr;
|
|
|
|
|
|
if (isopen == "True" || isopen == "1") WorkFlowName = "YjFeefyAudit";
|
|
|
|
|
|
|
|
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (var conn = db.CreateConnection())
|
|
|
{
|
|
|
conn.Open();
|
|
|
var tran = conn.BeginTransaction();
|
|
|
|
|
|
try
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
var cmddelete =
|
|
|
db.GetSqlStringCommand(
|
|
|
@"update ch_fee_modify set applystatus=7 WHERE FeeID=@Feeid and applystatus=1 ");
|
|
|
|
|
|
var cmdUpdate =
|
|
|
db.GetSqlStringCommand(
|
|
|
@"UPDATE CH_FEE SET FEESTATUS=0 WHERE GID=@GID ");
|
|
|
|
|
|
//if (optype == "OpCtnBsCard")
|
|
|
//{
|
|
|
// cmddelete.Parameters.Clear();
|
|
|
// db.AddInParameter(cmddelete, "@Feeid", DbType.String, Feeid);
|
|
|
// db.ExecuteNonQuery(cmddelete, tran);
|
|
|
|
|
|
// cmdUpdate.Parameters.Clear();
|
|
|
// db.AddInParameter(cmdUpdate, "@GID", DbType.String, Feeid);
|
|
|
// db.ExecuteNonQuery(cmdUpdate, tran);
|
|
|
//}
|
|
|
//else
|
|
|
//{
|
|
|
|
|
|
var saleid = "";
|
|
|
if (saleid == "" && issalework == "1")
|
|
|
{
|
|
|
T_ALL_DA T_ALL_DA = new T_ALL_DA();
|
|
|
string lsSQLuser = "select top 1 MBLNO,(SELECT GID from [user] where SHOWNAME=v_op_bs.SALE) SALEID from v_op_bs where BSNO in (select bsno from ch_fee where GID='" + Feeid + "')";
|
|
|
DataSet dsUser = T_ALL_DA.GetAllSQL(lsSQLuser);
|
|
|
if (dsUser != null)
|
|
|
{
|
|
|
if (dsUser.Tables[0].Rows.Count > 0)
|
|
|
{
|
|
|
saleid = dsUser.Tables[0].Rows[0]["SALEID"].ToString();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (saleid == "") saleid = userid;
|
|
|
|
|
|
Resultmb WorkResult = WorkFlowDAL.WorkFlowReset(WorkFlowName, Feeid, saleid);
|
|
|
|
|
|
if (WorkResult.Success == true)
|
|
|
{
|
|
|
|
|
|
cmddelete.Parameters.Clear();
|
|
|
db.AddInParameter(cmddelete, "@Feeid", DbType.String, Feeid);
|
|
|
db.ExecuteNonQuery(cmddelete, tran);
|
|
|
|
|
|
cmdUpdate.Parameters.Clear();
|
|
|
db.AddInParameter(cmdUpdate, "@GID", DbType.String, Feeid);
|
|
|
db.ExecuteNonQuery(cmdUpdate, tran);
|
|
|
|
|
|
审核通过FEEIDList.Add(Feeid);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
|
|
|
tran.Rollback();
|
|
|
|
|
|
result.Success = false;
|
|
|
result.Message = "申请取消出现错误," + WorkResult.Message;
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
|
|
result = new DBResult();
|
|
|
result.Success = true;
|
|
|
result.Message = "申请取消成功";
|
|
|
|
|
|
tran.Commit();
|
|
|
|
|
|
InfoClientLimitHelper.特放业务应收费用审核通过(审核通过FEEIDList, userid);
|
|
|
}
|
|
|
catch (Exception)
|
|
|
{
|
|
|
tran.Rollback();
|
|
|
|
|
|
result.Success = false;
|
|
|
result.Message = "申请取消出现错误,请重试或联系系统管理员";
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
result.Success = true;
|
|
|
result.Message = "申请取消成功";
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
|
|
|
public static DBResult AuditShen(string optype, string USERID, string bill, int Feestatus, string bsno, string WorkFlowstr)
|
|
|
{
|
|
|
var result = new DBResult();
|
|
|
|
|
|
|
|
|
var WorkFlowName = "FeeOpOtherModifyAudit";
|
|
|
WorkFlowName = GetWorkFlowName(WorkFlowName, optype);
|
|
|
//if (optype == "op_seae" || optype == "op_seaeorder")
|
|
|
//{
|
|
|
// WorkFlowName = "FeeModifyAudit";
|
|
|
|
|
|
//} if (optype == "op_seai")
|
|
|
//{
|
|
|
// WorkFlowName = "FeeSeaiModifyAudit";
|
|
|
|
|
|
//} if (optype == "op_aire")
|
|
|
//{
|
|
|
// WorkFlowName = "AireFeeModify";
|
|
|
|
|
|
//} if (optype == "op_airi")
|
|
|
//{
|
|
|
// WorkFlowName = "AiriFeeModify";
|
|
|
|
|
|
//} if (optype == "op_apply")
|
|
|
//{
|
|
|
// WorkFlowName = "ApplyFeeModify";
|
|
|
|
|
|
//} if (optype == "op_bulk")
|
|
|
//{
|
|
|
// WorkFlowName = "BulkFeeModify";
|
|
|
//} if (optype == "op_other" || optype == "tMsWlPcHead" || optype == "OpCtnBsCard")
|
|
|
//{
|
|
|
// WorkFlowName = "FeeOpOtherModifyAudit";
|
|
|
//} if (optype == "op_railway")
|
|
|
//{
|
|
|
// WorkFlowName = "RailwayFeeModify";
|
|
|
//}
|
|
|
//if (optype.ToLower() == "wms" || optype.ToLower() == "wms_in" || optype.ToLower() == "wms_out")
|
|
|
//{
|
|
|
// var value = WMSNewDAL.WMSNewDAL.GetSysFeeConfig("");
|
|
|
// if (value == "1") WorkFlowName = "FeeSeaiModifyAudit";
|
|
|
//}
|
|
|
|
|
|
if (WorkFlowstr != "") WorkFlowName = WorkFlowstr;
|
|
|
|
|
|
var billList = bill.Split(',');
|
|
|
|
|
|
//var dataList = GetModifyData(billno);
|
|
|
|
|
|
if (WorkFlowstr != "") WorkFlowName = WorkFlowstr;
|
|
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (var conn = db.CreateConnection())
|
|
|
{
|
|
|
conn.Open();
|
|
|
var tran = conn.BeginTransaction();
|
|
|
|
|
|
try
|
|
|
{
|
|
|
|
|
|
foreach (var billno in billList)
|
|
|
{
|
|
|
|
|
|
|
|
|
T_ALL_DA T_ALL_DA = new T_ALL_DA();
|
|
|
var mblno = "";
|
|
|
if (mblno == "")
|
|
|
mblno = T_ALL_DA.GetStrSQL("MBLNO", "select top 1 MBLNO from v_op_bs where BSNO='" + bsno + "'");
|
|
|
if (mblno == "") mblno = bsno;
|
|
|
|
|
|
Resultmb WorkResult = WorkFlowDAL.InsertWorkFlowDo(WorkFlowName, billno, USERID, mblno,bsno, "");
|
|
|
if (WorkResult.Success != true)
|
|
|
{
|
|
|
//入库或出库业务产生的费用还可能是海运进口业务的
|
|
|
if (optype == "wms_out" || optype == "wms")
|
|
|
WorkResult = WorkFlowDAL.InsertWorkFlowDo("FeeSeaiRecvPayAudit", billno, USERID,mblno, bsno, "");
|
|
|
}
|
|
|
if (WorkResult.Success != true)
|
|
|
{
|
|
|
//出入库内的费用 进了 综合应收应付费用工作流 但是存在这样的可能:这个费用的父节点是海运进口,从海运进口业务下提交费用导致optype=opseai
|
|
|
if (optype == "op_seai")
|
|
|
WorkResult = WorkFlowDAL.InsertWorkFlowDo("FeeOpOpOtherRecvPayAudit", billno, USERID, mblno, bsno, "");
|
|
|
}
|
|
|
|
|
|
if (WorkResult.Success == true && WorkResult.islast == true)
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
if (Feestatus == 3)
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
var cmdupdate = db.GetSqlStringCommand(@"update ch_fee set FEENAME=a.FEENAME,CUSTOMERNAME=a.CUSTOMERNAME,UNIT=a.UNIT,UNITPRICE=a.UNITPRICE,
|
|
|
QUANTITY=a.QUANTITY,AMOUNT=a.AMOUNT,CURRENCY=a.CURRENCY,EXCHANGERATE=a.EXCHANGERATE,REASON=a.REASON,REMARK=a.REMARK,ISINVOICE=a.ISINVOICE,ISADVANCEDPAY=a.ISADVANCEDPAY,
|
|
|
TAXRATE=a.TAXRATE,NOTAXAMOUNT=a.NOTAXAMOUNT,ACCTAXRATE=a.ACCTAXRATE,TAXUNITPRICE=a.TAXUNITPRICE,MANAGER=a.MANAGER,SALECORP=a.SALECORP,CUSTOMERTYPE=a.CUSTOMERTYPE,FEESTATUS=0,MODIFIEDUSER=a.AUDITUSER,MODIFIEDTIME=GETDATE()
|
|
|
from ch_fee left join ch_fee_modify a on (a.FEEID=ch_fee.GID and a.APPLYSTATUS=1 AND a.APPLYTYPE=2 ) where ch_fee.FeeStatus=3 and ch_fee.GID=@GID");
|
|
|
|
|
|
|
|
|
db.AddInParameter(cmdupdate, "@GID", DbType.String, billno);
|
|
|
db.ExecuteNonQuery(cmdupdate, tran);
|
|
|
|
|
|
|
|
|
}
|
|
|
else if (Feestatus == 4)
|
|
|
{
|
|
|
|
|
|
var cmdupdate2 = db.GetSqlStringCommand("update ch_fee set WmsOutBsNo='' where GID IN (SELECT WmsOutBsNo FROM CH_FEE WHERE GID=@GID)");
|
|
|
|
|
|
|
|
|
cmdupdate2.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdate2, "@GID", DbType.String, billno);
|
|
|
db.ExecuteNonQuery(cmdupdate2, tran);
|
|
|
|
|
|
var cmdupdate = db.GetSqlStringCommand("delete from ch_fee where GID=@GID");
|
|
|
|
|
|
|
|
|
cmdupdate.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdate, "@GID", DbType.String, billno);
|
|
|
db.ExecuteNonQuery(cmdupdate, tran);
|
|
|
|
|
|
if (optype == "import_main")
|
|
|
{
|
|
|
DeleteImportPayRecord(billno, db, tran);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
var cmdupdateModify = db.GetSqlStringCommand("update ch_fee_modify set applystatus=2,audituser=@audituser,audittime=@audittime where FEEID=@GID and applystatus=1");
|
|
|
|
|
|
|
|
|
cmdupdateModify.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdateModify, "@GID", DbType.String, billno);
|
|
|
db.AddInParameter(cmdupdateModify, "@audituser", DbType.String, USERID);
|
|
|
db.AddInParameter(cmdupdateModify, "@audittime", DbType.Date, DateTime.Now);
|
|
|
db.ExecuteNonQuery(cmdupdateModify, tran);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
|
|
|
result.Success = false;
|
|
|
result.Message = "批准申请错误!";
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
result = new DBResult();
|
|
|
result.Success = true;
|
|
|
result.Message = "批准申请成功";
|
|
|
tran.Commit();
|
|
|
p_op_gain(bsno, USERID);
|
|
|
|
|
|
|
|
|
}
|
|
|
catch (Exception)
|
|
|
{
|
|
|
tran.Rollback();
|
|
|
|
|
|
result.Success = false;
|
|
|
result.Message = "批准申请错误,请重试或联系系统管理员";
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
|
|
|
public static DBResult AuditShenNew(string optype, string USERID, List<MsChFee> billList, string WorkFlowstr)
|
|
|
{
|
|
|
var result = new DBResult();
|
|
|
|
|
|
|
|
|
var WorkFlowName = "FeeOpOtherModifyAudit";
|
|
|
WorkFlowName = GetWorkFlowName(WorkFlowName, optype);
|
|
|
//if (optype == "op_seae" || optype == "op_seaeorder")
|
|
|
//{
|
|
|
// WorkFlowName = "FeeModifyAudit";
|
|
|
|
|
|
//} if (optype == "op_seai")
|
|
|
//{
|
|
|
// WorkFlowName = "FeeSeaiModifyAudit";
|
|
|
|
|
|
//} if (optype == "op_aire")
|
|
|
//{
|
|
|
// WorkFlowName = "AireFeeModify";
|
|
|
|
|
|
//} if (optype == "op_airi")
|
|
|
//{
|
|
|
// WorkFlowName = "AiriFeeModify";
|
|
|
|
|
|
//} if (optype == "op_apply")
|
|
|
//{
|
|
|
// WorkFlowName = "ApplyFeeModify";
|
|
|
|
|
|
//} if (optype == "op_bulk")
|
|
|
//{
|
|
|
// WorkFlowName = "BulkFeeModify";
|
|
|
//} if (optype == "op_other" || optype == "tMsWlPcHead" || optype == "OpCtnBsCard")
|
|
|
//{
|
|
|
// WorkFlowName = "FeeOpOtherModifyAudit";
|
|
|
//} if (optype == "op_railway")
|
|
|
//{
|
|
|
// WorkFlowName = "RailwayFeeModify";
|
|
|
//}
|
|
|
//if (optype.ToLower() == "wms" || optype.ToLower() == "wms_in" || optype.ToLower() == "wms_out")
|
|
|
//{
|
|
|
// var value = WMSNewDAL.WMSNewDAL.GetSysFeeConfig("");
|
|
|
// if (value == "1") WorkFlowName = "FeeSeaiModifyAudit";
|
|
|
//}
|
|
|
if (WorkFlowstr != "") WorkFlowName = WorkFlowstr;
|
|
|
//var dataList = GetModifyData(billno);
|
|
|
|
|
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (var conn = db.CreateConnection())
|
|
|
{
|
|
|
conn.Open();
|
|
|
var tran = conn.BeginTransaction();
|
|
|
|
|
|
try
|
|
|
{
|
|
|
|
|
|
foreach (var bill in billList)
|
|
|
{
|
|
|
|
|
|
|
|
|
T_ALL_DA T_ALL_DA = new T_ALL_DA();
|
|
|
var mblno = "";
|
|
|
if (mblno == "")
|
|
|
mblno = T_ALL_DA.GetStrSQL("MBLNO", "select top 1 MBLNO from v_op_bs where BSNO='" + bill.BsNo+ "'");
|
|
|
if (mblno == "") mblno = bill.BsNo;
|
|
|
var WorkFlow = "";
|
|
|
if (bill.IsOpen == "True" || bill.IsOpen == "1") WorkFlow = "YjFeefyAudit"; else WorkFlow = WorkFlowName;
|
|
|
|
|
|
Resultmb WorkResult = WorkFlowDAL.InsertWorkFlowDo(WorkFlow, bill.GId, USERID, mblno, bill.BsNo, "");
|
|
|
if (WorkResult.Success == false) {
|
|
|
if (WorkFlowName == "FeeSeaiModifyAudit")
|
|
|
{//可能是从仓储模块生成到海运出口下面的费用 在仓储模块下提交修改 则工作流应为/109 FeeOpOtherModifyAudit 综合业务信息费用修改审核/
|
|
|
WorkResult = WorkFlowDAL.InsertWorkFlowDo("FeeOpOtherModifyAudit", bill.GId, USERID, mblno, bill.BsNo, "");
|
|
|
}
|
|
|
}
|
|
|
if (WorkResult.Success != true)
|
|
|
{
|
|
|
//入库或出库业务产生的费用还可能是海运进口业务的
|
|
|
if (optype == "wms_out" || optype == "wms")
|
|
|
WorkResult = WorkFlowDAL.InsertWorkFlowDo("FeeSeaiRecvPayAudit", bill.GId, USERID, mblno, bill.BsNo, "");
|
|
|
}
|
|
|
|
|
|
if (WorkResult.Success == true && WorkResult.islast == true)
|
|
|
{
|
|
|
|
|
|
if (bill.FeeStatus == 3)
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
var cmdupdate = db.GetSqlStringCommand(@"update ch_fee set FEENAME=a.FEENAME,CUSTOMERNAME=a.CUSTOMERNAME,UNIT=a.UNIT,UNITPRICE=a.UNITPRICE,
|
|
|
QUANTITY=a.QUANTITY,AMOUNT=a.AMOUNT,CURRENCY=a.CURRENCY,EXCHANGERATE=a.EXCHANGERATE,REASON=a.REASON,REMARK=a.REMARK,ISINVOICE=a.ISINVOICE,ISADVANCEDPAY=a.ISADVANCEDPAY,
|
|
|
TAXRATE=a.TAXRATE,NOTAXAMOUNT=a.NOTAXAMOUNT,ACCTAXRATE=a.ACCTAXRATE,TAXUNITPRICE=a.TAXUNITPRICE,MANAGER=a.MANAGER,SALECORP=a.SALECORP,CUSTOMERTYPE=a.CUSTOMERTYPE,FEESTATUS=0,MODIFIEDUSER=a.AUDITUSER,MODIFIEDTIME=GETDATE()
|
|
|
from ch_fee left join ch_fee_modify a on (a.FEEID=ch_fee.GID and a.APPLYSTATUS=1 AND a.APPLYTYPE=2 ) where ch_fee.FeeStatus=3 and ch_fee.GID=@GID");
|
|
|
|
|
|
|
|
|
db.AddInParameter(cmdupdate, "@GID", DbType.String, bill.GId);
|
|
|
db.ExecuteNonQuery(cmdupdate, tran);
|
|
|
if (optype == "import_main")
|
|
|
{
|
|
|
if (bill.Currency != "RMB" && (bill.FeeName == "预付款" || bill.FeeName == "尾款" || bill.FeeName == "购货款"))
|
|
|
{
|
|
|
InsertImportPayRecord(bill, USERID, db, tran);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
else if (bill.FeeStatus == 4)
|
|
|
{
|
|
|
|
|
|
var cmdupdate2 = db.GetSqlStringCommand("update ch_fee set WmsOutBsNo='' where GID IN (SELECT WmsOutBsNo FROM CH_FEE WHERE GID=@GID)");
|
|
|
|
|
|
|
|
|
cmdupdate2.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdate2, "@GID", DbType.String, bill.GId);
|
|
|
db.ExecuteNonQuery(cmdupdate2, tran);
|
|
|
|
|
|
var cmdupdate = db.GetSqlStringCommand("delete from ch_fee where GID=@GID");
|
|
|
|
|
|
|
|
|
cmdupdate.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdate, "@GID", DbType.String, bill.GId);
|
|
|
db.ExecuteNonQuery(cmdupdate, tran);
|
|
|
|
|
|
|
|
|
if (optype == "import_main")
|
|
|
{
|
|
|
DeleteImportPayRecord(bill.GId, db, tran);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
var cmdupdateModify = db.GetSqlStringCommand("update ch_fee_modify set applystatus=2,audituser=@audituser,audittime=@audittime where FEEID=@GID and applystatus=1");
|
|
|
|
|
|
|
|
|
cmdupdateModify.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdateModify, "@GID", DbType.String, bill.GId);
|
|
|
db.AddInParameter(cmdupdateModify, "@audituser", DbType.String, USERID);
|
|
|
db.AddInParameter(cmdupdateModify, "@audittime", DbType.Date, DateTime.Now);
|
|
|
db.ExecuteNonQuery(cmdupdateModify, tran);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
{
|
|
|
|
|
|
result.Success = false;
|
|
|
result.Message = "批准申请错误!";
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
result = new DBResult();
|
|
|
result.Success = true;
|
|
|
result.Message = "批准申请成功";
|
|
|
tran.Commit();
|
|
|
|
|
|
|
|
|
}
|
|
|
catch (Exception e)
|
|
|
{
|
|
|
tran.Rollback();
|
|
|
|
|
|
result.Success = false;
|
|
|
result.Message = "批准申请错误,请重试或联系系统管理员";
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
|
|
|
public static DBResult AuditBackShen(String optype, String USERID, List<MsChFee> billList, string reasean, string WorkFlowstr)
|
|
|
{
|
|
|
var result = new DBResult();
|
|
|
|
|
|
var WorkFlowName = "FeeOpOtherModifyAudit";
|
|
|
WorkFlowName = GetWorkFlowName(WorkFlowName, optype);
|
|
|
//if (optype == "op_seae" || optype == "op_seaeorder")
|
|
|
//{
|
|
|
// WorkFlowName = "FeeModifyAudit";
|
|
|
|
|
|
//} if (optype == "op_seai")
|
|
|
//{
|
|
|
// WorkFlowName = "FeeSeaiModifyAudit";
|
|
|
|
|
|
//} if (optype == "op_aire")
|
|
|
//{
|
|
|
// WorkFlowName = "AireFeeModify";
|
|
|
|
|
|
//} if (optype == "op_airi")
|
|
|
//{
|
|
|
// WorkFlowName = "AiriFeeModify";
|
|
|
|
|
|
//} if (optype == "op_apply")
|
|
|
//{
|
|
|
// WorkFlowName = "ApplyFeeModify";
|
|
|
|
|
|
//} if (optype == "op_bulk")
|
|
|
//{
|
|
|
// WorkFlowName = "BulkFeeModify";
|
|
|
//} if (optype == "op_other" || optype == "tMsWlPcHead" || optype == "OpCtnBsCard")
|
|
|
//{
|
|
|
// WorkFlowName = "FeeOpOtherModifyAudit";
|
|
|
//} if (optype == "op_railway")
|
|
|
//{
|
|
|
// WorkFlowName = "RailwayFeeModify";
|
|
|
//}
|
|
|
//if (optype.ToLower() == "wms" || optype.ToLower() == "wms_in" || optype.ToLower() == "wms_out")
|
|
|
//{
|
|
|
// var value = WMSNewDAL.WMSNewDAL.GetSysFeeConfig("");
|
|
|
// if (value == "1") WorkFlowName = "FeeSeaiModifyAudit";
|
|
|
//}
|
|
|
|
|
|
var 审核通过FEEIDList = new List<string>();
|
|
|
|
|
|
if (WorkFlowstr != "") WorkFlowName = WorkFlowstr;
|
|
|
|
|
|
|
|
|
|
|
|
T_ALL_DA T_ALL_DA = new T_ALL_DA();
|
|
|
var mblno = "";
|
|
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (var conn = db.CreateConnection())
|
|
|
{
|
|
|
conn.Open();
|
|
|
var tran = conn.BeginTransaction();
|
|
|
|
|
|
try
|
|
|
{
|
|
|
|
|
|
foreach (var bill in billList)
|
|
|
{
|
|
|
//if (optype == "OpCtnBsCard")
|
|
|
//{
|
|
|
// var cmdupdateModify = db.GetSqlStringCommand("update ch_fee_modify set applystatus=3,audituser=@audituser,audittime=@audittime where FEEID=@GID and applystatus=1");
|
|
|
|
|
|
|
|
|
// cmdupdateModify.Parameters.Clear();
|
|
|
// db.AddInParameter(cmdupdateModify, "@GID", DbType.String, billno);
|
|
|
// db.AddInParameter(cmdupdateModify, "@audituser", DbType.String, USERID);
|
|
|
// db.AddInParameter(cmdupdateModify, "@audittime", DbType.Date, DateTime.Now);
|
|
|
// db.ExecuteNonQuery(cmdupdateModify, tran);
|
|
|
|
|
|
|
|
|
// var cmdupdate = db.GetSqlStringCommand("update ch_fee set FEESTATUS=0,REASON='" + reasean + "' where GID=@GID");
|
|
|
|
|
|
|
|
|
// cmdupdate.Parameters.Clear();
|
|
|
// db.AddInParameter(cmdupdate, "@GID", DbType.String, billno);
|
|
|
// db.ExecuteNonQuery(cmdupdate, tran);
|
|
|
//}
|
|
|
//else
|
|
|
//{
|
|
|
if (mblno == "")
|
|
|
mblno = T_ALL_DA.GetStrSQL("MBLNO", "select top 1 MBLNO from v_op_bs where BSNO in (select bsno from ch_fee where gid='" +bill.BsNo+ "')");
|
|
|
|
|
|
if (mblno == "") mblno = bill.BsNo;
|
|
|
var WorkFlow = "";
|
|
|
if (bill.IsOpen == "True" || bill.IsOpen == "1") WorkFlow = "YjFeefyAudit"; else WorkFlow = WorkFlowName;
|
|
|
|
|
|
Resultmb WorkResult = WorkFlowDAL.DeleteWorkFlowDo(WorkFlow, bill.GId, USERID, reasean, mblno, mblno, "");
|
|
|
|
|
|
if (WorkResult.Success == false)
|
|
|
{
|
|
|
if (WorkFlowName == "FeeSeaiModifyAudit")
|
|
|
{//可能是从仓储模块生成到海运出口下面的费用 在仓储模块下提交修改 则工作流应为/109 FeeOpOtherModifyAudit 综合业务信息费用修改审核/
|
|
|
WorkResult = WorkFlowDAL.DeleteWorkFlowDo("FeeOpOtherModifyAudit", bill.GId, USERID, reasean, mblno, mblno, "");
|
|
|
}
|
|
|
}
|
|
|
if (WorkResult.Success == true)
|
|
|
{
|
|
|
|
|
|
var cmdupdateModify = db.GetSqlStringCommand("update ch_fee_modify set applystatus=3,audituser=@audituser,audittime=@audittime where FEEID=@GID and applystatus=1");
|
|
|
|
|
|
|
|
|
cmdupdateModify.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdateModify, "@GID", DbType.String,bill.GId);
|
|
|
db.AddInParameter(cmdupdateModify, "@audituser", DbType.String, USERID);
|
|
|
db.AddInParameter(cmdupdateModify, "@audittime", DbType.Date, DateTime.Now);
|
|
|
db.ExecuteNonQuery(cmdupdateModify, tran);
|
|
|
|
|
|
|
|
|
var cmdupdate = db.GetSqlStringCommand("update ch_fee set FEESTATUS=0,REASON='" + reasean + "' where GID=@GID");
|
|
|
|
|
|
|
|
|
cmdupdate.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdate, "@GID", DbType.String,bill.GId);
|
|
|
db.ExecuteNonQuery(cmdupdate, tran);
|
|
|
|
|
|
审核通过FEEIDList.Add(bill.GId);
|
|
|
}
|
|
|
//}
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
result = new DBResult();
|
|
|
result.Success = true;
|
|
|
result.Message = "驳回提交成功";
|
|
|
tran.Commit();
|
|
|
|
|
|
InfoClientLimitHelper.特放业务应收费用审核通过(审核通过FEEIDList, USERID);
|
|
|
}
|
|
|
catch (Exception)
|
|
|
{
|
|
|
tran.Rollback();
|
|
|
|
|
|
result.Success = false;
|
|
|
result.Message = "驳回提交错误,请重试或联系系统管理员";
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
|
|
|
public static DBResult NoIvoice(String bill)
|
|
|
{
|
|
|
var result = new DBResult();
|
|
|
|
|
|
|
|
|
var billList = bill.Split(',');
|
|
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (var conn = db.CreateConnection())
|
|
|
{
|
|
|
conn.Open();
|
|
|
var tran = conn.BeginTransaction();
|
|
|
|
|
|
try
|
|
|
{
|
|
|
|
|
|
foreach (var billno in billList)
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
var cmdupdate = db.GetSqlStringCommand("update ch_fee set ISINVOICE=1 where GID=@GID");
|
|
|
|
|
|
|
|
|
cmdupdate.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdate, "@GID", DbType.String, billno);
|
|
|
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 SetIsOpen(string bill,bool isopen)
|
|
|
{
|
|
|
var result = new DBResult();
|
|
|
|
|
|
|
|
|
var billList = bill.Split(',');
|
|
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (var conn = db.CreateConnection())
|
|
|
{
|
|
|
conn.Open();
|
|
|
var tran = conn.BeginTransaction();
|
|
|
|
|
|
try
|
|
|
{
|
|
|
|
|
|
foreach (var billno in billList)
|
|
|
{
|
|
|
|
|
|
|
|
|
if (isopen)
|
|
|
{
|
|
|
var cmdupdate = db.GetSqlStringCommand("update ch_fee set ISOPEN=1 where GID=@GID");
|
|
|
|
|
|
|
|
|
cmdupdate.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdate, "@GID", DbType.String, billno);
|
|
|
db.ExecuteNonQuery(cmdupdate, tran);
|
|
|
}
|
|
|
else {
|
|
|
var cmdupdate = db.GetSqlStringCommand("update ch_fee set ISOPEN=o where GID=@GID");
|
|
|
|
|
|
|
|
|
cmdupdate.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdate, "@GID", DbType.String, billno);
|
|
|
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 CancelNoIvoice(String bill)
|
|
|
{
|
|
|
var result = new DBResult();
|
|
|
|
|
|
|
|
|
var billList = bill.Split(',');
|
|
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (var conn = db.CreateConnection())
|
|
|
{
|
|
|
conn.Open();
|
|
|
var tran = conn.BeginTransaction();
|
|
|
|
|
|
try
|
|
|
{
|
|
|
|
|
|
foreach (var billno in billList)
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
var cmdupdate = db.GetSqlStringCommand("update ch_fee set ISINVOICE=0 where GID=@GID");
|
|
|
|
|
|
|
|
|
cmdupdate.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdate, "@GID", DbType.String, billno);
|
|
|
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;
|
|
|
}
|
|
|
|
|
|
|
|
|
#region 整票工作流
|
|
|
public static DBResult SubmitAuditBL(String USERID,string username, List<MsOpBill> billList, bool isbl = false, string WorkFlowstr = "", string issalework = "", string companyid = "",string SUBMITFEEBLFEELOCK="0")
|
|
|
{
|
|
|
var result = new DBResult();
|
|
|
var bsno = "1";
|
|
|
var mblno = "";
|
|
|
var saleid = "";
|
|
|
var WorkFlowid = "";
|
|
|
result.Success = true;
|
|
|
var msg = "";
|
|
|
|
|
|
var WorkFlowName = "BLFeeAudit";
|
|
|
|
|
|
var 审核通过FEEIDList = new List<string>();
|
|
|
|
|
|
T_ALL_DA T_ALL_DA = new T_ALL_DA();
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (var conn = db.CreateConnection())
|
|
|
{
|
|
|
conn.Open();
|
|
|
var tran = conn.BeginTransaction();
|
|
|
|
|
|
try
|
|
|
{
|
|
|
|
|
|
foreach (var bill in billList)
|
|
|
{
|
|
|
if (bill.BillFeeStatus == "2" || bill.BillFeeStatus == "1")
|
|
|
{
|
|
|
|
|
|
result.Success = false;
|
|
|
result.Message = "当前整票状态(已提交或审核通过)无法提交整票审核!";
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
|
|
|
if (WorkFlowid == "")
|
|
|
{
|
|
|
string lsSQL = "select * FROM workflow WHERE COMPANYID='" + companyid + "' AND ISCONDITION=1 and [TYPE]=(SELECT TYPENO FROM workflow_type WHERE [NAME]='" + WorkFlowName + "') "
|
|
|
+ " and GID in (select workflowID from workflow_Userpath where userid ='" + USERID + "') order by SORTNO ";
|
|
|
DataSet dsworkflow = T_ALL_DA.GetAllSQL(lsSQL);
|
|
|
if (dsworkflow != null)
|
|
|
{
|
|
|
if (dsworkflow.Tables[0].Rows.Count > 0)
|
|
|
{
|
|
|
foreach (DataRow row in dsworkflow.Tables[0].Rows)
|
|
|
{
|
|
|
var CONDITIONSQL = Convert.ToString(row["CONDITIONSQL"]);
|
|
|
CONDITIONSQL = CONDITIONSQL.Replace("[业务编号]", "'" + bill.BSNO + "'");
|
|
|
var strCOUNT = T_ALL_DA.GetStrSQL("BLCT", CONDITIONSQL);
|
|
|
if (strCOUNT != "0")
|
|
|
{
|
|
|
WorkFlowid = Convert.ToString(row["GID"]);
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
if (WorkFlowid == "") WorkFlowid = "no";
|
|
|
|
|
|
}
|
|
|
|
|
|
Resultmb WorkResult = WorkFlowDAL.WorkFlowStart(WorkFlowName, bill.BSNO, USERID, bill.MBLNO, bill.BSNO, "Account/Chfee_AuditBL", WorkFlowid);
|
|
|
|
|
|
if (WorkResult.Success == true)
|
|
|
{
|
|
|
var _Comm = "";
|
|
|
var _feeComm = "";
|
|
|
if (WorkResult.islast == true)
|
|
|
{
|
|
|
if (bill.OPTYPE == "更改单")
|
|
|
{
|
|
|
_Comm = "UPDATE OP_AMEND SET BillFeeStatus=2 WHERE BSNO=@BSNO";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
if (bill.OPLB == "WMS")
|
|
|
{
|
|
|
_Comm = "UPDATE " + bill.OPLB + " SET BillFeeStatus=2 WHERE ASSOCIATEDNO=@BSNO";
|
|
|
}
|
|
|
else if (bill.OPLB == "WMS_IN" || bill.OPLB == "WMS_OUT")
|
|
|
{
|
|
|
_Comm = "UPDATE " + bill.OPLB + " SET BillFeeStatus=2 WHERE GID=@BSNO";
|
|
|
}
|
|
|
else if (bill.OPLB == "crm_seaeorder")
|
|
|
{
|
|
|
_Comm = "UPDATE " + bill.OPLB + " SET BillFeeStatus=2,BSSTATUS=1 WHERE ORDNO=@BSNO";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
_Comm = "UPDATE " + bill.OPLB + " SET BillFeeStatus=2,BSSTATUS=1 WHERE BSNO=@BSNO";
|
|
|
}
|
|
|
}
|
|
|
_feeComm = "update ch_fee set FEESTATUS=0 where FEESTATUS=2 AND BSNO=@BSNO";
|
|
|
|
|
|
var cdc = new DSWeb.Common.DB.CommonDataContext();
|
|
|
var 审过应收费用 = cdc.ch_fee.Where(x => x.BSNO == bill.BSNO && x.FEETYPE == 1 && x.FEESTATUS == 2).ToList();
|
|
|
|
|
|
if (审过应收费用!=null && 审过应收费用.Count>0)
|
|
|
{
|
|
|
审核通过FEEIDList.AddRange(审过应收费用.Select(s => s.GID).ToList());
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
if (bill.OPTYPE == "更改单")
|
|
|
{
|
|
|
if (SUBMITFEEBLFEELOCK == "1")
|
|
|
_Comm = "UPDATE OP_AMEND SET BillFeeStatus=1,BILLFEESTATUSTIME=GETDATE(),FEESTATUS=1 WHERE BSNO=@BSNO";
|
|
|
else _Comm = "UPDATE OP_AMEND SET BillFeeStatus=1,BILLFEESTATUSTIME=GETDATE() WHERE BSNO=@BSNO";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
if (bill.OPLB == "WMS")
|
|
|
{
|
|
|
if (SUBMITFEEBLFEELOCK == "1")
|
|
|
_Comm = "UPDATE " + bill.OPLB + " SET BillFeeStatus=1,BILLFEESTATUSTIME=GETDATE(),FEESTATUS=1 WHERE ASSOCIATEDNO=@BSNO";
|
|
|
else _Comm = "UPDATE " + bill.OPLB + " SET BillFeeStatus=1,BILLFEESTATUSTIME=GETDATE() WHERE ASSOCIATEDNO=@BSNO";
|
|
|
}
|
|
|
else if (bill.OPLB == "WMS_IN" || bill.OPLB == "WMS_OUT")
|
|
|
{
|
|
|
if (SUBMITFEEBLFEELOCK == "1")
|
|
|
_Comm = "UPDATE " + bill.OPLB + " SET BillFeeStatus=1,BILLFEESTATUSTIME=GETDATE(),FEESTATUS=1 WHERE GID=@BSNO";
|
|
|
else _Comm = "UPDATE " + bill.OPLB + " SET BillFeeStatus=1,BILLFEESTATUSTIME=GETDATE() WHERE GID=@BSNO";
|
|
|
}
|
|
|
else if (bill.OPLB == "crm_seaeorder")
|
|
|
{
|
|
|
if (SUBMITFEEBLFEELOCK == "1")
|
|
|
_Comm = "UPDATE " + bill.OPLB + " SET BillFeeStatus=1,BILLFEESTATUSTIME=GETDATE(),FEESTATUS=1 WHERE ORDNO=@BSNO";
|
|
|
else _Comm = "UPDATE " + bill.OPLB + " SET BillFeeStatus=1,BILLFEESTATUSTIME=GETDATE() WHERE ORDNO=@BSNO";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
if (SUBMITFEEBLFEELOCK == "1")
|
|
|
_Comm = "UPDATE " + bill.OPLB + " SET BillFeeStatus=1,BILLFEESTATUSTIME=GETDATE(),FEESTATUS=1 WHERE BSNO=@BSNO";
|
|
|
else _Comm = "UPDATE " + bill.OPLB + " SET BillFeeStatus=1,BILLFEESTATUSTIME=GETDATE() WHERE BSNO=@BSNO";
|
|
|
}
|
|
|
}
|
|
|
_feeComm = "update ch_fee set FEESTATUS=2 where (FEESTATUS=1 or FEESTATUS=6 or FEESTATUS=7) AND BSNO=@BSNO";
|
|
|
|
|
|
}
|
|
|
var cmdupdate = db.GetSqlStringCommand(_Comm);
|
|
|
cmdupdate.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdate, "@BSNO", DbType.String, bill.BSNO);
|
|
|
db.ExecuteNonQuery(cmdupdate, tran);
|
|
|
|
|
|
var cmdupdatefee = db.GetSqlStringCommand(_feeComm);
|
|
|
cmdupdatefee.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdatefee, "@BSNO", DbType.String, bill.BSNO);
|
|
|
db.ExecuteNonQuery(cmdupdatefee, tran);
|
|
|
|
|
|
result.Success = true;
|
|
|
result.Message = "提交审核成功";
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
|
|
|
//tran.Rollback();
|
|
|
|
|
|
result.Success = false;
|
|
|
result.Message = "提交审核错误<" + WorkResult.Message + ">.";
|
|
|
|
|
|
//return result;
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if (isbl && result.Success != false)
|
|
|
{
|
|
|
var cmdDelete = db.GetSqlStringCommand("insert into op_status(ST_ID,BSNO,STATUS,ISCOMP,COMPTIME,COMPOP,INPUTTIME,STTYPE) values(NEWID(),'" + bsno + "','整票提交',1,'" + DateTime.Now.ToString() + "','"+username+"','" + DateTime.Now.ToString() + "','2')");
|
|
|
db.ExecuteNonQuery(cmdDelete, tran);
|
|
|
}
|
|
|
|
|
|
if (result.Success == true)
|
|
|
{
|
|
|
// msg = GetServiceFeeMsg(optype, bsno, db, tran);
|
|
|
}
|
|
|
|
|
|
|
|
|
//result = new DBResult();
|
|
|
//result.Success = true;
|
|
|
//result.Message = "提交审核成功";
|
|
|
//result.Data = msg;
|
|
|
tran.Commit();
|
|
|
|
|
|
InfoClientLimitHelper.特放业务应收费用审核通过(审核通过FEEIDList, USERID);
|
|
|
}
|
|
|
catch (Exception e)
|
|
|
{
|
|
|
tran.Rollback();
|
|
|
|
|
|
result.Success = false;
|
|
|
result.Message = "提交审核错误,请重试或联系系统管理员";
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
public static DBResult CancelAuditBL(String USERID, List<MsOpBill> billList)
|
|
|
{
|
|
|
var result = new DBResult();
|
|
|
|
|
|
var WorkFlowName = "BLFeeAudit";
|
|
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (var conn = db.CreateConnection())
|
|
|
{
|
|
|
conn.Open();
|
|
|
var tran = conn.BeginTransaction();
|
|
|
|
|
|
try
|
|
|
{
|
|
|
var saleid = "";
|
|
|
int audittotal = 0;
|
|
|
foreach (var bill in billList)
|
|
|
{
|
|
|
|
|
|
if (bill.BillFeeStatus == "2")
|
|
|
{
|
|
|
|
|
|
result.Success = false;
|
|
|
result.Message = "已整票审核,不允许撤销整票提交!";
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
|
|
|
|
|
|
var WorkResult = WorkFlowDAL.WorkFlowReset("BLFeeAudit", bill.BSNO, USERID);
|
|
|
if (WorkResult.Success == true)
|
|
|
{
|
|
|
var _Comm = "";
|
|
|
var _feeComm = "";
|
|
|
if (bill.OPTYPE == "更改单")
|
|
|
{
|
|
|
_Comm = "UPDATE OP_AMEND SET BillFeeStatus=0,BILLFEESTATUSTIME=null WHERE BSNO=@BSNO";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
if (bill.OPLB == "WMS")
|
|
|
{
|
|
|
_Comm = "UPDATE " + bill.OPLB + " SET BillFeeStatus=0,BILLFEESTATUSTIME=null WHERE ASSOCIATEDNO=@BSNO";
|
|
|
}
|
|
|
else if (bill.OPLB == "WMS_IN" || bill.OPLB == "WMS_OUT")
|
|
|
{
|
|
|
_Comm = "UPDATE " + bill.OPLB + " SET BillFeeStatus=0,BILLFEESTATUSTIME=null WHERE GID=@BSNO";
|
|
|
}
|
|
|
else if (bill.OPLB == "crm_seaeorder")
|
|
|
{
|
|
|
_Comm = "UPDATE " + bill.OPLB + " SET BillFeeStatus=0,BILLFEESTATUSTIME=null WHERE ORDNO=@BSNO";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
_Comm = "UPDATE " + bill.OPLB + " SET BillFeeStatus=0,BILLFEESTATUSTIME=null WHERE BSNO=@BSNO";
|
|
|
}
|
|
|
}
|
|
|
_feeComm = "update ch_fee set FEESTATUS=1 where FEESTATUS=2 AND BSNO=@BSNO";
|
|
|
|
|
|
var cmdupdate = db.GetSqlStringCommand(_Comm);
|
|
|
cmdupdate.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdate, "@BSNO", DbType.String, bill.BSNO);
|
|
|
db.ExecuteNonQuery(cmdupdate, tran);
|
|
|
|
|
|
var cmdupdatefee = db.GetSqlStringCommand(_feeComm);
|
|
|
cmdupdatefee.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdatefee, "@BSNO", DbType.String, bill.BSNO);
|
|
|
db.ExecuteNonQuery(cmdupdatefee, tran);
|
|
|
|
|
|
}
|
|
|
else if (WorkResult.totalCount == 1)
|
|
|
{
|
|
|
audittotal++;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
tran.Commit();
|
|
|
|
|
|
result = new DBResult();
|
|
|
result.Success = true;
|
|
|
result.Message = "撤销提交成功";
|
|
|
if (audittotal != 0)
|
|
|
{
|
|
|
result.Success = false;
|
|
|
result.Message = "在审核流程中部分审核的业务,不允许撤销提交";
|
|
|
}
|
|
|
|
|
|
}
|
|
|
catch (Exception)
|
|
|
{
|
|
|
tran.Rollback();
|
|
|
|
|
|
result.Success = false;
|
|
|
result.Message = "撤销提交错误,请重试或联系系统管理员";
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
|
|
|
public static DBResult AuditListBL(String USERID, List<MsOpBill> billList, string companyid)
|
|
|
{
|
|
|
var result = new DBResult();
|
|
|
|
|
|
var WorkFlowName = "BLFeeAudit";
|
|
|
|
|
|
var defcustname = "";
|
|
|
var ORDERCREATEOPFEE = MsSysParamSetDAL.GetData("PARAMNAME='ORDERCREATEOPFEE'");
|
|
|
if (ORDERCREATEOPFEE.PARAMVALUE == "1")
|
|
|
{
|
|
|
|
|
|
var CREATEOPFEECUST = MsSysParamSetDAL.GetData("PARAMNAME='CREATEOPFEECUST'");
|
|
|
defcustname = CREATEOPFEECUST.PARAMVALUE;
|
|
|
}
|
|
|
|
|
|
var 审核通过FEEIDList = new List<string>();
|
|
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (var conn = db.CreateConnection())
|
|
|
{
|
|
|
conn.Open();
|
|
|
var tran = conn.BeginTransaction();
|
|
|
|
|
|
try
|
|
|
{
|
|
|
|
|
|
foreach (var bill in billList)
|
|
|
{
|
|
|
|
|
|
Resultmb WorkResult = WorkFlowDAL.InsertWorkFlowDo("BLFeeAudit", bill.BSNO, USERID, tran, bill.MBLNO, bill.BSNO, "");
|
|
|
if (WorkResult.Success == true)
|
|
|
{
|
|
|
var _Comm = "";
|
|
|
var _feeComm = "";
|
|
|
if (WorkResult.islast == true)
|
|
|
{
|
|
|
//var period = ChMonthCloseDAL.ChMonthCloseDAL.GetData("", companyid);
|
|
|
|
|
|
//string strCwACCDATE = period.PERIOD;
|
|
|
if (bill.OPTYPE == "更改单")
|
|
|
{
|
|
|
_Comm = "UPDATE OP_AMEND SET BillFeeStatus=2 WHERE BSNO=@BSNO";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
if (bill.OPLB == "WMS")
|
|
|
{
|
|
|
_Comm = "UPDATE " + bill.OPLB + " SET BillFeeStatus=2 WHERE ASSOCIATEDNO=@BSNO";
|
|
|
}
|
|
|
else if (bill.OPLB == "WMS_IN" || bill.OPLB == "WMS_OUT")
|
|
|
{
|
|
|
_Comm = "UPDATE " + bill.OPLB + " SET BillFeeStatus=2 WHERE GID=@BSNO";
|
|
|
}
|
|
|
else if (bill.OPLB == "crm_seaeorder")
|
|
|
{
|
|
|
_Comm = "UPDATE " + bill.OPLB + " SET BillFeeStatus=2 WHERE ORDNO=@BSNO";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
_Comm = "UPDATE " + bill.OPLB + " SET BillFeeStatus=2 WHERE BSNO=@BSNO";
|
|
|
}
|
|
|
}
|
|
|
_feeComm = "update ch_fee set FEESTATUS=0 where FEESTATUS=2 AND BSNO=@BSNO";
|
|
|
var _feeComm2 = "update ch_fee set AUDITOPERATOR='" + USERID + "',AUDITDATE=GETDATE() where BSNO=@BSNO";
|
|
|
|
|
|
var cdc = new DSWeb.Common.DB.CommonDataContext();
|
|
|
var 审过应收费用 = cdc.ch_fee.Where(x => x.BSNO == bill.BSNO && x.FEETYPE == 1 && x.FEESTATUS == 2).ToList();
|
|
|
|
|
|
if (审过应收费用 != null && 审过应收费用.Count > 0)
|
|
|
{
|
|
|
审核通过FEEIDList.AddRange(审过应收费用.Select(s => s.GID).ToList());
|
|
|
}
|
|
|
|
|
|
var cmdupdate = db.GetSqlStringCommand(_Comm);
|
|
|
cmdupdate.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdate, "@BSNO", DbType.String, bill.BSNO);
|
|
|
db.ExecuteNonQuery(cmdupdate, tran);
|
|
|
|
|
|
var cmdupdatefee = db.GetSqlStringCommand(_feeComm);
|
|
|
cmdupdatefee.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdatefee, "@BSNO", DbType.String, bill.BSNO);
|
|
|
db.ExecuteNonQuery(cmdupdatefee, tran);
|
|
|
var cmdupdatefee2 = db.GetSqlStringCommand(_feeComm2);
|
|
|
cmdupdatefee2.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdatefee2, "@BSNO", DbType.String, bill.BSNO);
|
|
|
db.ExecuteNonQuery(cmdupdatefee2, tran);
|
|
|
|
|
|
var cmdUpdate = db.GetSqlStringCommand(
|
|
|
@"if (select bsno from op_close where bsno='" + bill.BSNO + "') is null insert into op_close values(newid(),'" + bill.BSNO + "',null,null,null,null,null"
|
|
|
+ ",1,1) else update op_close set DRCLOSE=1,CRCLOSE=1"
|
|
|
+ " where BSNO='" + bill.BSNO + "' ");
|
|
|
|
|
|
db.ExecuteNonQuery(cmdUpdate, tran);
|
|
|
|
|
|
//if ((bill.OPLB == "crm_seaeorder") && (ORDERCREATEOPFEE.PARAMVALUE == "1"))
|
|
|
//{
|
|
|
// var cmdinsert = db.GetSqlStringCommand("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,WMSOUTBSNO,PREAMOUNT,ISINVOICE,INPUTMODE,LOCALCURR,MANAGER,ISACC,AUDITOPERATOR,AUDITDATE,SALECORP,JKGID) "
|
|
|
// + " SELECT NEWID(), BSNO=(SELECT TOP 1 BSNO FROM crm_seaeorder WHERE ORDNO='" + bill.BSNO + "'), 2, FEENAME, FEEDESCRIPTION, CUSTOMERTYPE,'" + defcustname + "', UNIT, UNITPRICE, QUANTITY, AMOUNT, CURRENCY, "
|
|
|
// + " EXCHANGERATE, REASON, REMARK, COMMISSIONRATE,(SELECT TOP 1 GID FROM [user] WHERE SHOWNAME=(SELECT OP FROM V_OP_BS WHERE BSNO=CH_FEE.BSNO)) ENTEROPERATOR, ENTERDATE,ISOPEN, ISADVANCEDPAY, SORT, FEESTATUS, FEEFRT, "
|
|
|
// + " TAXRATE,NOTAXAMOUNT,ACCTAXRATE,LINENUM,TAXUNITPRICE,MODIFIEDUSER,MODIFIEDTIME,WMSOUTBSNO,PREAMOUNT,ISINVOICE,INPUTMODE,LOCALCURR,MANAGER,ISACC,AUDITOPERATOR,AUDITDATE,SALECORP,GID FROM CH_FEE WHERE BSNO='" + bill.BSNO + "' "
|
|
|
// + " AND FEETYPE=1 AND ISCRMORDERFEE=1 and ISNULL(ISOPEN,0)<>1 AND GID NOT IN (SELECT JKGID FROM ch_fee WHERE BSNO=(SELECT TOP 1 BSNO FROM crm_seaeorder WHERE ORDNO='" + bill.BSNO + "') ) ");
|
|
|
|
|
|
// db.ExecuteNonQuery(cmdinsert, tran);
|
|
|
|
|
|
//}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
result.Success = false;
|
|
|
result.Message = "审核错误!";
|
|
|
//tran.Rollback();
|
|
|
//return result;
|
|
|
}
|
|
|
//}
|
|
|
}
|
|
|
|
|
|
result = new DBResult();
|
|
|
result.Success = true;
|
|
|
result.Message = "审核成功";
|
|
|
tran.Commit();
|
|
|
|
|
|
InfoClientLimitHelper.特放业务应收费用审核通过(审核通过FEEIDList, USERID);
|
|
|
}
|
|
|
catch (Exception)
|
|
|
{
|
|
|
tran.Rollback();
|
|
|
|
|
|
result.Success = false;
|
|
|
result.Message = "审核错误,请重试或联系系统管理员";
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public static DBResult AuditBackBL(String USERID, List<MsOpBill> billList, string reason,string username,string tz="")
|
|
|
{
|
|
|
var result = new DBResult();
|
|
|
|
|
|
var WorkFlowName = "BLFeeAudit";
|
|
|
|
|
|
//var 审核驳回FEEIDList = new List<string>();
|
|
|
|
|
|
var i = 0;
|
|
|
var mblno = "";
|
|
|
result.Success = true;
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (var conn = db.CreateConnection())
|
|
|
{
|
|
|
conn.Open();
|
|
|
var tran = conn.BeginTransaction();
|
|
|
|
|
|
try
|
|
|
{
|
|
|
|
|
|
foreach (var bill in billList)
|
|
|
{
|
|
|
|
|
|
|
|
|
Resultmb WorkResult = null;
|
|
|
WorkResult = WorkFlowDAL.DeleteWorkFlowDo("BLFeeAudit", bill.BSNO, USERID, reason, bill.MBLNO, bill.BSNO, "", "");
|
|
|
|
|
|
if (WorkResult.Success == true)
|
|
|
{
|
|
|
var _Comm = "";
|
|
|
var _feeComm = "";
|
|
|
if (bill.OPTYPE == "更改单")
|
|
|
{
|
|
|
_Comm = "UPDATE OP_AMEND SET BillFeeStatus=4,BILLFEESTATUSTIME=null WHERE BSNO=@BSNO";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
if (bill.OPLB == "WMS")
|
|
|
{
|
|
|
_Comm = "UPDATE " + bill.OPLB + " SET BillFeeStatus=4,BILLFEESTATUSTIME=null WHERE ASSOCIATEDNO=@BSNO";
|
|
|
}
|
|
|
else if (bill.OPLB == "WMS_IN" || bill.OPLB == "WMS_OUT")
|
|
|
{
|
|
|
_Comm = "UPDATE " + bill.OPLB + " SET BillFeeStatus=4,BILLFEESTATUSTIME=null WHERE GID=@BSNO";
|
|
|
}
|
|
|
else if (bill.OPLB == "crm_seaeorder")
|
|
|
{
|
|
|
_Comm = "UPDATE " + bill.OPLB + " SET BillFeeStatus=4,BILLFEESTATUSTIME=null,BSSTATUS=0 WHERE ORDNO=@BSNO";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
_Comm = "UPDATE " + bill.OPLB + " SET BillFeeStatus=4,BILLFEESTATUSTIME=null,BSSTATUS=0 WHERE BSNO=@BSNO";
|
|
|
}
|
|
|
}
|
|
|
_feeComm = "update ch_fee set FEESTATUS=6,REASON=REASON+' '+@REASON where FEESTATUS=2 AND BSNO=@BSNO";
|
|
|
|
|
|
//整票驳回只驳回提交状态的 因此不需要加额度
|
|
|
//var cdc = new DSWeb.Common.DB.CommonDataContext();
|
|
|
//var 驳回应收费用 = cdc.ch_fee.Where(x => x.BSNO == bill.BSNO && x.FEETYPE == 1 && x.FEESTATUS == 2).ToList();
|
|
|
|
|
|
//if (驳回应收费用 != null && 驳回应收费用.Count > 0)
|
|
|
//{
|
|
|
// 审核驳回FEEIDList.AddRange(驳回应收费用.Select(s => s.GID).ToList());
|
|
|
//}
|
|
|
|
|
|
var cmdupdate = db.GetSqlStringCommand(_Comm);
|
|
|
cmdupdate.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdate, "@BSNO", DbType.String, bill.BSNO);
|
|
|
db.ExecuteNonQuery(cmdupdate, tran);
|
|
|
|
|
|
var cmdupdatefee = db.GetSqlStringCommand(_feeComm);
|
|
|
cmdupdatefee.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdatefee, "@REASON", DbType.String, "整票驳回原因:" + reason);
|
|
|
db.AddInParameter(cmdupdatefee, "@BSNO", DbType.String, bill.BSNO);
|
|
|
db.ExecuteNonQuery(cmdupdatefee, tran);
|
|
|
|
|
|
var cmdUpdate = db.GetSqlStringCommand(
|
|
|
@" update op_close set CRCLOSE=0,DRCLOSE=0"
|
|
|
+ " where BSNO='" + bill.BSNO + "' ");
|
|
|
|
|
|
db.ExecuteNonQuery(cmdUpdate, tran);
|
|
|
|
|
|
var AUDITBACKBLSENDEMAIL = MsSysParamSetDAL.GetData("PARAMNAME='AUDITBACKBLSENDEMAIL'");
|
|
|
if (AUDITBACKBLSENDEMAIL.PARAMVALUE == "1")
|
|
|
{
|
|
|
var mailtopic = "驳回整票审核 主提单号:" + bill.MBLNO + " " + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
|
|
|
var sqlmail = "U.SHOWNAME='" + bill.DOC + "' or U.SHOWNAME='" + bill.OP + "'";
|
|
|
if (!string.IsNullOrEmpty(tz)) sqlmail = sqlmail + " or U.SHOWNAME='" + tz + "'";
|
|
|
|
|
|
|
|
|
var userlist = SysUserDAL.GetDataList(sqlmail);
|
|
|
|
|
|
var email = "";
|
|
|
foreach (var opbs in userlist)
|
|
|
{
|
|
|
if (opbs.EMAIL1 != "")
|
|
|
{
|
|
|
if (email == "")
|
|
|
email = opbs.EMAIL1;
|
|
|
else
|
|
|
email = email + "," + opbs.EMAIL1;
|
|
|
}
|
|
|
}
|
|
|
var mailbody = "主提单号:" + bill.MBLNO + "\r\n" + "驳回类型:整票审核驳回 \r\n" + "驳回人:" + username
|
|
|
+ "\r\n" + "驳回时间:" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + "\r\n" + "驳回原因:" + reason + "\r\n\r\n\r\n\r\n\r\n" + "请在24小时内重新提交,避免和客户对账遗漏收费!";
|
|
|
//string toNames = "frank,lee";
|
|
|
|
|
|
var MAILTONAME = "admin@dongshengsoft.com";
|
|
|
var PARAMVALUE = MsSysParamSetDAL.GetData("PARAMNAME='MAILTONAME'");
|
|
|
if (PARAMVALUE.PARAMVALUE != "") MAILTONAME = PARAMVALUE.PARAMVALUE;
|
|
|
var MAILTOPASSWORD = "ds!@#)(*";
|
|
|
PARAMVALUE = MsSysParamSetDAL.GetData("PARAMNAME='MAILTOPASSWORD'");
|
|
|
if (PARAMVALUE.PARAMVALUE != "") MAILTOPASSWORD = PARAMVALUE.PARAMVALUE;
|
|
|
var MAILTOSERVER = "smtpcom.263xmail.com";
|
|
|
PARAMVALUE = MsSysParamSetDAL.GetData("PARAMNAME='MAILTOSERVER'");
|
|
|
if (PARAMVALUE.PARAMVALUE != "") MAILTOSERVER = PARAMVALUE.PARAMVALUE;
|
|
|
var MAILTOPORT = "465";
|
|
|
PARAMVALUE = MsSysParamSetDAL.GetData("PARAMNAME='MAILTOPORT'");
|
|
|
if (PARAMVALUE.PARAMVALUE != "") MAILTOPORT = PARAMVALUE.PARAMVALUE;
|
|
|
var MAILISSSL = false;
|
|
|
PARAMVALUE = MsSysParamSetDAL.GetData("PARAMNAME='MAILISSSL'");
|
|
|
if (PARAMVALUE.PARAMVALUE == "1") MAILISSSL = true;
|
|
|
|
|
|
SendEmail se = new SendEmail(email, MAILTONAME, "", "", mailtopic, mailbody, false);
|
|
|
// SendEmail se = new SendEmail("dev001@dongshengsoft.com", "admin@dongshengsoft.com", "", "", mailtopic, mailbody, false);
|
|
|
//string filePath = filename;
|
|
|
//se.Attachments(filePath);
|
|
|
|
|
|
try
|
|
|
{
|
|
|
se.SetSmtp(MAILTONAME, MAILTOPASSWORD, MAILTOSERVER, Convert.ToInt32(MAILTOPORT), MAILISSSL, System.Net.Mail.MailPriority.Normal); //必须在所有参数设置完后调用此方法
|
|
|
//
|
|
|
|
|
|
}
|
|
|
catch (Exception e)
|
|
|
{
|
|
|
se.SetSmtp(MAILTONAME, MAILTOPASSWORD, MAILTOSERVER, Convert.ToInt32(MAILTOPORT), MAILISSSL, System.Net.Mail.MailPriority.Normal); //必须在所有参数设置完后调用此方法
|
|
|
//
|
|
|
|
|
|
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
i = i + 1;
|
|
|
result.Success = WorkResult.Success;
|
|
|
result.Message = WorkResult.Message;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if (result.Success == true)
|
|
|
{
|
|
|
result = new DBResult();
|
|
|
result.Success = true;
|
|
|
result.Message = "驳回提交成功";
|
|
|
tran.Commit();
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
result.Success = true;
|
|
|
result.Message = "驳回完成,其中" + i.ToString() + "票驳回错误,错误信息" + result.Message;
|
|
|
|
|
|
tran.Commit();
|
|
|
|
|
|
}
|
|
|
|
|
|
//InfoClientLimitHelper.特放业务应收费用审核驳回(审核驳回FEEIDList, USERID);
|
|
|
}
|
|
|
catch (Exception e)
|
|
|
{
|
|
|
tran.Rollback();
|
|
|
|
|
|
result.Success = false;
|
|
|
result.Message = "驳回提交错误,请重试或联系系统管理员" + e.Message;
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
public static DBResult PiliangAudit(string optype, string bsno, string USERID, string USERNAME, string COMPANYID, string workflowstr, string worktype = "",string MBLNO="",string feesql="")
|
|
|
{
|
|
|
var result = new DBResult();
|
|
|
|
|
|
var modAuditOnlyFeeDr=MsBaseInfoDAL.MsBaseInfoDAL.GetUserModuleEnable("modAuditOnlyFeeDr",USERID);
|
|
|
var modAuditOnlyFeeCr = MsBaseInfoDAL.MsBaseInfoDAL.GetUserModuleEnable("modAuditOnlyFeeCr", USERID);
|
|
|
|
|
|
var feeListdr = new List<MsChFee>();
|
|
|
var feeListcr = new List<MsChFee>();
|
|
|
if (!modAuditOnlyFeeCr)
|
|
|
feeListdr = GetDataList(bsno, 1, optype, "1", feesql, USERID, USERNAME, COMPANYID, worktype);
|
|
|
if (!modAuditOnlyFeeDr)
|
|
|
feeListcr = GetDataList(bsno, 2, optype, "1", feesql, USERID, USERNAME, COMPANYID, worktype);
|
|
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (var conn = db.CreateConnection())
|
|
|
{
|
|
|
conn.Open();
|
|
|
var tran = conn.BeginTransaction();
|
|
|
|
|
|
try
|
|
|
{
|
|
|
|
|
|
foreach (var fee in feeListdr)
|
|
|
{
|
|
|
|
|
|
if (fee.IsAudit != "0") {
|
|
|
if (fee.IsOpen == "1" || fee.IsOpen == "True")
|
|
|
{
|
|
|
Audit(optype, USERID, fee.GId, MBLNO, fee.BsNo, "YjFeefyAudit");
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
|
|
|
if (fee.FeeStatus == 2)
|
|
|
{
|
|
|
Audit(optype, USERID, fee.GId, MBLNO, fee.BsNo, workflowstr, worktype);
|
|
|
}
|
|
|
else if (fee.FeeStatus == 3 || fee.FeeStatus == 4)
|
|
|
{
|
|
|
AuditShen(optype, USERID, fee.GId, fee.FeeStatus, fee.BsNo, workflowstr);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
foreach (var fee in feeListcr)
|
|
|
{
|
|
|
|
|
|
if (fee.IsAudit != "0")
|
|
|
{
|
|
|
if (fee.IsOpen == "1" || fee.IsOpen == "True")
|
|
|
{
|
|
|
Audit(optype, USERID, fee.GId, MBLNO, fee.BsNo, "YjFeefyAudit");
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
if (fee.FeeStatus == 2)
|
|
|
{
|
|
|
Audit(optype, USERID, fee.GId, MBLNO, fee.BsNo, workflowstr, worktype);
|
|
|
}
|
|
|
else if (fee.FeeStatus == 3 || fee.FeeStatus == 4)
|
|
|
{
|
|
|
AuditShen(optype, USERID, fee.GId, fee.FeeStatus, fee.BsNo, workflowstr);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
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 ShenNewCustName(List<MsChFee> FeeList,string NewCustName,string userid)
|
|
|
{
|
|
|
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 ch_fee_modify (GID,TYPE,APPLYTYPE,REASON,FEEID,BSNO,FEENAME,CUSTOMERNAME,UNIT,UNITPRICE,QUANTITY,
|
|
|
AMOUNT,CURRENCY,FRT,COMMISSIONRATE,EXCHANGERATE,ISADVANCEDPAY,APPLYUSER,APPLYTIME,
|
|
|
APPLYSTATUS,REMARK,GROUPID,TAXRATE,NOTAXAMOUNT,ACCTAXRATE,TAXUNITPRICE,MANAGER)
|
|
|
values (@GID,@TYPE,@APPLYTYPE,@REASON,@FEEID,@BSNO,@FEENAME,@CUSTOMERNAME,@UNIT,@UNITPRICE,@QUANTITY,
|
|
|
@AMOUNT,@CURRENCY,@FRT,@COMMISSIONRATE,@EXCHANGERATE,@ISADVANCEDPAY,@APPLYUSER,@APPLYTIME,
|
|
|
@APPLYSTATUS,@REMARK,@GROUPID,@TAXRATE,@NOTAXAMOUNT,@ACCTAXRATE,@TAXUNITPRICE,@MANAGER) ");
|
|
|
|
|
|
var cmdUpdate =
|
|
|
db.GetSqlStringCommand(
|
|
|
@"UPDATE CH_FEE SET CUSTOMERNAME=@CUSTOMERNAME WHERE GID=@GID ");
|
|
|
|
|
|
|
|
|
if (FeeList != null)
|
|
|
{
|
|
|
foreach (var enumValue in FeeList)
|
|
|
{
|
|
|
|
|
|
var GROUPID = Guid.NewGuid().ToString();
|
|
|
|
|
|
cmdInsert.Parameters.Clear();
|
|
|
db.AddInParameter(cmdInsert, "@GID", DbType.String, GROUPID);
|
|
|
db.AddInParameter(cmdInsert, "@TYPE", DbType.Int16, enumValue.FeeType);
|
|
|
db.AddInParameter(cmdInsert, "@APPLYTYPE", DbType.Int16, 1);
|
|
|
db.AddInParameter(cmdInsert, "@REASON", DbType.String, "");
|
|
|
db.AddInParameter(cmdInsert, "@FEEID", DbType.String, enumValue.GId);
|
|
|
db.AddInParameter(cmdInsert, "@BSNO", DbType.String, enumValue.BsNo);
|
|
|
db.AddInParameter(cmdInsert, "@FEENAME", DbType.String, enumValue.FeeName);
|
|
|
db.AddInParameter(cmdInsert, "@CUSTOMERNAME", DbType.String, enumValue.CustomerName);
|
|
|
db.AddInParameter(cmdInsert, "@UNIT", DbType.String, enumValue.Unit);
|
|
|
db.AddInParameter(cmdInsert, "@UNITPRICE", DbType.Decimal, enumValue.UnitPrice);
|
|
|
db.AddInParameter(cmdInsert, "@QUANTITY", DbType.Decimal, enumValue.Quantity);
|
|
|
db.AddInParameter(cmdInsert, "@AMOUNT", DbType.Decimal, enumValue.Amount);
|
|
|
db.AddInParameter(cmdInsert, "@CURRENCY", DbType.String, enumValue.Currency);
|
|
|
db.AddInParameter(cmdInsert, "@FRT", DbType.String, enumValue.FeeFrt);
|
|
|
db.AddInParameter(cmdInsert, "@COMMISSIONRATE", DbType.Decimal, enumValue.Commissionrate);
|
|
|
db.AddInParameter(cmdInsert, "@EXCHANGERATE", DbType.Decimal, enumValue.ExChangerate);
|
|
|
db.AddInParameter(cmdInsert, "@ISADVANCEDPAY", DbType.String, enumValue.IsAdvancedpay);
|
|
|
db.AddInParameter(cmdInsert, "@APPLYUSER", DbType.String, userid);
|
|
|
db.AddInParameter(cmdInsert, "@APPLYTIME", DbType.String, DateTime.Now.ToString());
|
|
|
db.AddInParameter(cmdInsert, "@APPLYSTATUS", DbType.Int16, 1);
|
|
|
db.AddInParameter(cmdInsert, "@REMARK", DbType.String, enumValue.Remark);
|
|
|
db.AddInParameter(cmdInsert, "@GROUPID", DbType.String, GROUPID);
|
|
|
db.AddInParameter(cmdInsert, "@TAXRATE", DbType.Decimal, enumValue.TaxRate);
|
|
|
db.AddInParameter(cmdInsert, "@NOTAXAMOUNT", DbType.Decimal, enumValue.NoTaxAmount);
|
|
|
db.AddInParameter(cmdInsert, "@ACCTAXRATE", DbType.Decimal, enumValue.AccTaxRate);
|
|
|
db.AddInParameter(cmdInsert, "@TAXUNITPRICE", DbType.Decimal, enumValue.TaxUnitPrice);
|
|
|
db.AddInParameter(cmdInsert, "@MANAGER", DbType.String, enumValue.MANAGER);
|
|
|
|
|
|
db.ExecuteNonQuery(cmdInsert, tran);
|
|
|
|
|
|
cmdInsert.Parameters.Clear();
|
|
|
db.AddInParameter(cmdInsert, "@GID", DbType.String, Guid.NewGuid().ToString());
|
|
|
db.AddInParameter(cmdInsert, "@TYPE", DbType.Int16, enumValue.FeeType);
|
|
|
db.AddInParameter(cmdInsert, "@APPLYTYPE", DbType.Int16, 2);
|
|
|
db.AddInParameter(cmdInsert, "@REASON", DbType.String,"修改费用对象");
|
|
|
db.AddInParameter(cmdInsert, "@FEEID", DbType.String, enumValue.GId);
|
|
|
db.AddInParameter(cmdInsert, "@BSNO", DbType.String, enumValue.BsNo);
|
|
|
db.AddInParameter(cmdInsert, "@FEENAME", DbType.String, enumValue.FeeName);
|
|
|
db.AddInParameter(cmdInsert, "@CUSTOMERNAME", DbType.String,NewCustName);
|
|
|
db.AddInParameter(cmdInsert, "@UNIT", DbType.String, enumValue.Unit);
|
|
|
db.AddInParameter(cmdInsert, "@UNITPRICE", DbType.Decimal, enumValue.UnitPrice);
|
|
|
db.AddInParameter(cmdInsert, "@QUANTITY", DbType.Decimal, enumValue.Quantity);
|
|
|
db.AddInParameter(cmdInsert, "@AMOUNT", DbType.Decimal, enumValue.Amount);
|
|
|
db.AddInParameter(cmdInsert, "@CURRENCY", DbType.String, enumValue.Currency);
|
|
|
db.AddInParameter(cmdInsert, "@FRT", DbType.String, enumValue.FeeFrt);
|
|
|
db.AddInParameter(cmdInsert, "@COMMISSIONRATE", DbType.Decimal, enumValue.Commissionrate);
|
|
|
db.AddInParameter(cmdInsert, "@EXCHANGERATE", DbType.Decimal, enumValue.ExChangerate);
|
|
|
db.AddInParameter(cmdInsert, "@ISADVANCEDPAY", DbType.String, enumValue.IsAdvancedpay);
|
|
|
db.AddInParameter(cmdInsert, "@APPLYUSER", DbType.String, userid);
|
|
|
db.AddInParameter(cmdInsert, "@APPLYTIME", DbType.String, DateTime.Now.ToString());
|
|
|
db.AddInParameter(cmdInsert, "@APPLYSTATUS", DbType.Int16, 2);
|
|
|
db.AddInParameter(cmdInsert, "@REMARK", DbType.String, enumValue.Remark);
|
|
|
db.AddInParameter(cmdInsert, "@GROUPID", DbType.String, GROUPID);
|
|
|
db.AddInParameter(cmdInsert, "@TAXRATE", DbType.Decimal, enumValue.TaxRate);
|
|
|
db.AddInParameter(cmdInsert, "@NOTAXAMOUNT", DbType.Decimal, enumValue.NoTaxAmount);
|
|
|
db.AddInParameter(cmdInsert, "@ACCTAXRATE", DbType.Decimal, enumValue.AccTaxRate);
|
|
|
db.AddInParameter(cmdInsert, "@TAXUNITPRICE", DbType.Decimal, enumValue.TaxUnitPrice);
|
|
|
db.AddInParameter(cmdInsert, "@MANAGER", DbType.String, enumValue.MANAGER);
|
|
|
|
|
|
db.ExecuteNonQuery(cmdInsert, tran);
|
|
|
|
|
|
cmdUpdate.Parameters.Clear();
|
|
|
db.AddInParameter(cmdUpdate, "@GID", DbType.String, enumValue.GId);
|
|
|
db.AddInParameter(cmdUpdate, "@CUSTOMERNAME", DbType.String,NewCustName);
|
|
|
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 ShenCF(MsChFee Fee, List<FeeCF> FeeCfList, string userid)
|
|
|
{
|
|
|
var result = new DBResult();
|
|
|
|
|
|
var FeeList = new List<MsChFee>();
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (var conn = db.CreateConnection())
|
|
|
{
|
|
|
conn.Open();
|
|
|
var tran = conn.BeginTransaction();
|
|
|
|
|
|
try
|
|
|
{
|
|
|
|
|
|
|
|
|
var cmdInsert =
|
|
|
db.GetSqlStringCommand(
|
|
|
@"insert into ch_fee_modify (GID,TYPE,APPLYTYPE,REASON,FEEID,BSNO,FEENAME,CUSTOMERNAME,UNIT,UNITPRICE,QUANTITY,
|
|
|
AMOUNT,CURRENCY,FRT,COMMISSIONRATE,EXCHANGERATE,ISADVANCEDPAY,APPLYUSER,APPLYTIME,
|
|
|
APPLYSTATUS,REMARK,GROUPID,TAXRATE,NOTAXAMOUNT,ACCTAXRATE,TAXUNITPRICE,MANAGER)
|
|
|
values (@GID,@TYPE,@APPLYTYPE,@REASON,@FEEID,@BSNO,@FEENAME,@CUSTOMERNAME,@UNIT,@UNITPRICE,@QUANTITY,
|
|
|
@AMOUNT,@CURRENCY,@FRT,@COMMISSIONRATE,@EXCHANGERATE,@ISADVANCEDPAY,@APPLYUSER,@APPLYTIME,
|
|
|
@APPLYSTATUS,@REMARK,@GROUPID,@TAXRATE,@NOTAXAMOUNT,@ACCTAXRATE,@TAXUNITPRICE,@MANAGER) ");
|
|
|
|
|
|
var cmdUpdate =
|
|
|
db.GetSqlStringCommand(
|
|
|
@"UPDATE CH_FEE SET CUSTOMERNAME=@CUSTOMERNAME,QUANTITY=@QUANTITY,AMOUNT=@AMOUNT,NOTAXAMOUNT=@NOTAXAMOUNT,UNITPRICE=@UNITPRICE,TAXUNITPRICE=@TAXUNITPRICE WHERE GID=@GID ");
|
|
|
|
|
|
int feecount = 0;
|
|
|
|
|
|
if (FeeCfList != null)
|
|
|
{
|
|
|
foreach (var enumValue in FeeCfList)
|
|
|
{
|
|
|
|
|
|
var GROUPID = Guid.NewGuid().ToString();
|
|
|
var FEEID = Fee.GId;
|
|
|
if (feecount != 0)
|
|
|
{
|
|
|
FEEID = Guid.NewGuid().ToString();
|
|
|
}
|
|
|
cmdInsert.Parameters.Clear();
|
|
|
db.AddInParameter(cmdInsert, "@GID", DbType.String, GROUPID);
|
|
|
db.AddInParameter(cmdInsert, "@TYPE", DbType.Int16, Fee.FeeType);
|
|
|
db.AddInParameter(cmdInsert, "@APPLYTYPE", DbType.Int16, 1);
|
|
|
db.AddInParameter(cmdInsert, "@REASON", DbType.String, "");
|
|
|
db.AddInParameter(cmdInsert, "@FEEID", DbType.String, FEEID);
|
|
|
db.AddInParameter(cmdInsert, "@BSNO", DbType.String, Fee.BsNo);
|
|
|
db.AddInParameter(cmdInsert, "@FEENAME", DbType.String, Fee.FeeName);
|
|
|
db.AddInParameter(cmdInsert, "@CUSTOMERNAME", DbType.String, Fee.CustomerName);
|
|
|
db.AddInParameter(cmdInsert, "@UNIT", DbType.String, Fee.Unit);
|
|
|
db.AddInParameter(cmdInsert, "@UNITPRICE", DbType.Decimal, Fee.UnitPrice);
|
|
|
db.AddInParameter(cmdInsert, "@QUANTITY", DbType.Decimal, Fee.Quantity);
|
|
|
db.AddInParameter(cmdInsert, "@AMOUNT", DbType.Decimal, Fee.Amount);
|
|
|
db.AddInParameter(cmdInsert, "@CURRENCY", DbType.String, Fee.Currency);
|
|
|
db.AddInParameter(cmdInsert, "@FRT", DbType.String, Fee.FeeFrt);
|
|
|
db.AddInParameter(cmdInsert, "@COMMISSIONRATE", DbType.Decimal, Fee.Commissionrate);
|
|
|
db.AddInParameter(cmdInsert, "@EXCHANGERATE", DbType.Decimal, Fee.ExChangerate);
|
|
|
db.AddInParameter(cmdInsert, "@ISADVANCEDPAY", DbType.String, Fee.IsAdvancedpay);
|
|
|
db.AddInParameter(cmdInsert, "@APPLYUSER", DbType.String, userid);
|
|
|
db.AddInParameter(cmdInsert, "@APPLYTIME", DbType.String, DateTime.Now.ToString());
|
|
|
db.AddInParameter(cmdInsert, "@APPLYSTATUS", DbType.Int16, 1);
|
|
|
db.AddInParameter(cmdInsert, "@REMARK", DbType.String, Fee.Remark);
|
|
|
db.AddInParameter(cmdInsert, "@GROUPID", DbType.String, GROUPID);
|
|
|
db.AddInParameter(cmdInsert, "@TAXRATE", DbType.Decimal, Fee.TaxRate);
|
|
|
db.AddInParameter(cmdInsert, "@NOTAXAMOUNT", DbType.Decimal, Fee.NoTaxAmount);
|
|
|
db.AddInParameter(cmdInsert, "@ACCTAXRATE", DbType.Decimal, Fee.AccTaxRate);
|
|
|
db.AddInParameter(cmdInsert, "@TAXUNITPRICE", DbType.Decimal, Fee.TaxUnitPrice);
|
|
|
db.AddInParameter(cmdInsert, "@MANAGER", DbType.String, Fee.MANAGER);
|
|
|
|
|
|
db.ExecuteNonQuery(cmdInsert, tran);
|
|
|
|
|
|
|
|
|
var notaxamount= Math.Round(enumValue.AMOUNT*(1+Fee.TaxRate/100), 2, MidpointRounding.AwayFromZero);
|
|
|
var UnitPrice = Math.Round(enumValue.AMOUNT /enumValue.QUANTITY, 2, MidpointRounding.AwayFromZero);
|
|
|
var notaxUnitPrice = Math.Round(notaxamount /enumValue.QUANTITY, 2, MidpointRounding.AwayFromZero);
|
|
|
|
|
|
cmdInsert.Parameters.Clear();
|
|
|
db.AddInParameter(cmdInsert, "@GID", DbType.String, Guid.NewGuid().ToString());
|
|
|
db.AddInParameter(cmdInsert, "@TYPE", DbType.Int16, Fee.FeeType);
|
|
|
db.AddInParameter(cmdInsert, "@APPLYTYPE", DbType.Int16, 2);
|
|
|
db.AddInParameter(cmdInsert, "@REASON", DbType.String, "费用拆分");
|
|
|
db.AddInParameter(cmdInsert, "@FEEID", DbType.String, FEEID);
|
|
|
db.AddInParameter(cmdInsert, "@BSNO", DbType.String, Fee.BsNo);
|
|
|
db.AddInParameter(cmdInsert, "@FEENAME", DbType.String, Fee.FeeName);
|
|
|
db.AddInParameter(cmdInsert, "@CUSTOMERNAME", DbType.String, enumValue.CUST);
|
|
|
db.AddInParameter(cmdInsert, "@UNIT", DbType.String, Fee.Unit);
|
|
|
db.AddInParameter(cmdInsert, "@UNITPRICE", DbType.Decimal, notaxUnitPrice);
|
|
|
db.AddInParameter(cmdInsert, "@QUANTITY", DbType.Decimal, enumValue.QUANTITY);
|
|
|
db.AddInParameter(cmdInsert, "@AMOUNT", DbType.Decimal, enumValue.AMOUNT);
|
|
|
db.AddInParameter(cmdInsert, "@CURRENCY", DbType.String, Fee.Currency);
|
|
|
db.AddInParameter(cmdInsert, "@FRT", DbType.String, Fee.FeeFrt);
|
|
|
db.AddInParameter(cmdInsert, "@COMMISSIONRATE", DbType.Decimal, Fee.Commissionrate);
|
|
|
db.AddInParameter(cmdInsert, "@EXCHANGERATE", DbType.Decimal, Fee.ExChangerate);
|
|
|
db.AddInParameter(cmdInsert, "@ISADVANCEDPAY", DbType.String, Fee.IsAdvancedpay);
|
|
|
db.AddInParameter(cmdInsert, "@APPLYUSER", DbType.String, userid);
|
|
|
db.AddInParameter(cmdInsert, "@APPLYTIME", DbType.String, DateTime.Now.ToString());
|
|
|
db.AddInParameter(cmdInsert, "@APPLYSTATUS", DbType.Int16, 2);
|
|
|
db.AddInParameter(cmdInsert, "@REMARK", DbType.String, Fee.Remark);
|
|
|
db.AddInParameter(cmdInsert, "@GROUPID", DbType.String, GROUPID);
|
|
|
db.AddInParameter(cmdInsert, "@TAXRATE", DbType.Decimal, Fee.TaxRate);
|
|
|
if (Fee.TaxRate == 0)
|
|
|
db.AddInParameter(cmdInsert, "@NOTAXAMOUNT", DbType.Decimal, enumValue.AMOUNT);
|
|
|
else {
|
|
|
db.AddInParameter(cmdInsert, "@NOTAXAMOUNT", DbType.Decimal, notaxamount);
|
|
|
|
|
|
|
|
|
}
|
|
|
db.AddInParameter(cmdInsert, "@ACCTAXRATE", DbType.Decimal, Fee.AccTaxRate);
|
|
|
db.AddInParameter(cmdInsert, "@TAXUNITPRICE", DbType.Decimal, UnitPrice);
|
|
|
db.AddInParameter(cmdInsert, "@MANAGER", DbType.String, Fee.MANAGER);
|
|
|
|
|
|
db.ExecuteNonQuery(cmdInsert, tran);
|
|
|
if (feecount == 0)
|
|
|
{
|
|
|
cmdUpdate.Parameters.Clear();
|
|
|
db.AddInParameter(cmdUpdate, "@GID", DbType.String, Fee.GId);
|
|
|
db.AddInParameter(cmdUpdate, "@CUSTOMERNAME", DbType.String, enumValue.CUST);
|
|
|
db.AddInParameter(cmdUpdate, "@QUANTITY", DbType.Decimal, enumValue.QUANTITY);
|
|
|
db.AddInParameter(cmdUpdate, "@AMOUNT", DbType.Decimal, enumValue.AMOUNT);
|
|
|
if (Fee.TaxRate == 0)
|
|
|
db.AddInParameter(cmdUpdate, "@NOTAXAMOUNT", DbType.Decimal, enumValue.AMOUNT);
|
|
|
else
|
|
|
{
|
|
|
db.AddInParameter(cmdUpdate, "@NOTAXAMOUNT", DbType.Decimal, notaxamount);
|
|
|
|
|
|
|
|
|
}
|
|
|
db.AddInParameter(cmdUpdate, "@UNITPRICE", DbType.Decimal, notaxUnitPrice);
|
|
|
db.AddInParameter(cmdUpdate, "@TAXUNITPRICE", DbType.Decimal, UnitPrice);
|
|
|
|
|
|
db.ExecuteNonQuery(cmdUpdate, tran);
|
|
|
}else
|
|
|
{
|
|
|
var NewFee = new MsChFee();
|
|
|
NewFee.FeeType = Fee.FeeType;
|
|
|
NewFee.FeeName = Fee.FeeName;
|
|
|
NewFee.CustomerType = Fee.CustomerType;
|
|
|
NewFee.Unit = Fee.Unit;
|
|
|
NewFee.FeeDescription = Fee.FeeDescription;
|
|
|
NewFee.Currency = Fee.Currency;
|
|
|
NewFee.ExChangerate = Fee.ExChangerate;
|
|
|
NewFee.Reason = Fee.Reason;
|
|
|
NewFee.Remark = Fee.Remark;
|
|
|
NewFee.Commissionrate = Fee.Commissionrate;
|
|
|
NewFee.IsOpen = Fee.IsOpen;
|
|
|
NewFee.IsAdvancedpay = Fee.IsAdvancedpay;
|
|
|
NewFee.Sort = Fee.Sort;
|
|
|
NewFee.FeeFrt = Fee.FeeFrt;
|
|
|
NewFee.TaxRate = Fee.TaxRate;
|
|
|
NewFee.AccTaxRate = Fee.AccTaxRate;
|
|
|
NewFee.WmsOutBsNo = Fee.WmsOutBsNo;
|
|
|
NewFee.PreAmount = Fee.PreAmount;
|
|
|
NewFee.INPUTMODE = Fee.INPUTMODE;
|
|
|
NewFee.IsInvoice = Fee.IsInvoice;
|
|
|
NewFee.LOCALCURR = Fee.LOCALCURR;
|
|
|
NewFee.MANAGER = Fee.MANAGER;
|
|
|
NewFee.ISACC = Fee.ISACC;
|
|
|
NewFee.GId = FEEID;
|
|
|
NewFee.BsNo = "*";
|
|
|
NewFee.CustomerName = enumValue.CUST;
|
|
|
NewFee.Amount = enumValue.AMOUNT;
|
|
|
NewFee.Quantity = enumValue.QUANTITY;
|
|
|
if (Fee.TaxRate == 0) NewFee.NoTaxAmount = enumValue.AMOUNT;
|
|
|
else NewFee.NoTaxAmount = notaxamount;
|
|
|
NewFee.TaxUnitPrice = UnitPrice;
|
|
|
NewFee.UnitPrice = notaxUnitPrice;
|
|
|
NewFee.FeeStatus = Fee.FeeStatus;
|
|
|
FeeList.Add(NewFee);
|
|
|
}
|
|
|
|
|
|
feecount = feecount + 1;
|
|
|
|
|
|
}
|
|
|
}
|
|
|
|
|
|
tran.Commit();
|
|
|
if (FeeList != null && FeeList.Count != 0)
|
|
|
{
|
|
|
result = MsChFeeDAL.MsChFeeDAL.SaveFee(FeeList, Fee.BsNo, userid,"",true);
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
result = new DBResult();
|
|
|
result.Success = true;
|
|
|
result.Message = "申请修改成功";
|
|
|
}
|
|
|
|
|
|
}
|
|
|
catch (Exception)
|
|
|
{
|
|
|
tran.Rollback();
|
|
|
|
|
|
result.Success = false;
|
|
|
result.Message = "申请修改出现错误,请重试或联系系统管理员";
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
result.Success = true;
|
|
|
result.Message = "申请修改成功";
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
public static int p_op_gain(string bsno, string userId)
|
|
|
{
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
|
|
|
var cmd = db.GetStoredProcCommand("p_op_gain");
|
|
|
db.AddInParameter(cmd, "@con_no", DbType.String, bsno);
|
|
|
db.AddInParameter(cmd, "@userid", DbType.String, userId);
|
|
|
db.ExecuteNonQuery(cmd);
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#region 自动费用锁定
|
|
|
|
|
|
public static DBResult UpLock(string bsno, string optype)
|
|
|
{
|
|
|
var result = new DBResult();
|
|
|
|
|
|
var ct =GetRdCount("BSNO='"+bsno+"' AND FEESTATUS NOT IN (0,8,9)");
|
|
|
if (ct != 0)
|
|
|
{
|
|
|
result.Success = true;
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (var conn = db.CreateConnection())
|
|
|
{
|
|
|
conn.Open();
|
|
|
var tran = conn.BeginTransaction();
|
|
|
|
|
|
try
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var cmdupdate = db.GetSqlStringCommand("update " + optype + " SET FEESTATUS=1 where BSNO=@BSNO");
|
|
|
|
|
|
|
|
|
cmdupdate.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdate, "@BSNO", DbType.String, bsno);
|
|
|
db.ExecuteNonQuery(cmdupdate, tran);
|
|
|
|
|
|
var cmdupdate2 = db.GetSqlStringCommand("update op_amend SET FEESTATUS=1 where BSNO=@BSNO");
|
|
|
|
|
|
|
|
|
cmdupdate2.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdate2, "@BSNO", DbType.String, bsno);
|
|
|
db.ExecuteNonQuery(cmdupdate2, 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
|
|
|
static public int GetRdCount(string strCondition)
|
|
|
{
|
|
|
var strSql = new StringBuilder();
|
|
|
strSql.Append("SELECT Count(BSNO) AS CT from ch_fee (NOLOCK) ");
|
|
|
if (strCondition.Trim() != String.Empty)
|
|
|
{
|
|
|
strSql.Append(" where " + strCondition);
|
|
|
}
|
|
|
var ct = 0;
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
|
{
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
ct = Convert.ToInt16(reader["CT"]);
|
|
|
}
|
|
|
reader.Close();
|
|
|
}
|
|
|
return ct;
|
|
|
}
|
|
|
|
|
|
|
|
|
static private int InsertImportPayRecord(MsChFee msChFee, string USERID, Database db, DbTransaction transaction)
|
|
|
{
|
|
|
var strSql = new StringBuilder();
|
|
|
strSql.Append(" delete from Import_Payment where gid='" + msChFee.GId + "' ");
|
|
|
strSql.Append(" Insert into Import_Payment (gid,amount,CURRENCY,op,buyer,seller,remark,CREATETIME,PAYTIME,FEENAME) ");
|
|
|
strSql.Append(" (select cf.gid ,cf.AMOUNT,cf.currency,'" + USERID + "',M.buyer,cf.CUSTOMERNAME,'',getdate() createtime,null,cf.FEENAME ");
|
|
|
strSql.Append(" from ch_fee cf left join import_main m on m.contractno=cf.BSNO where cf.gid='" + msChFee.GId + "') ");
|
|
|
var _count = 0;
|
|
|
// Database db = DatabaseFactory.CreateDatabase();
|
|
|
_count = db.ExecuteNonQuery(transaction,CommandType.Text, strSql.ToString());
|
|
|
return _count;
|
|
|
}
|
|
|
static private int DeleteImportPayRecord(string Feeid, Database db, DbTransaction transaction)
|
|
|
{
|
|
|
var strSql = new StringBuilder();
|
|
|
strSql.Append(" delete from import_payment where gid in (select gid from ch_fee where (feename='预付款' or feename='尾款' or feename='购货款') and Currency<>'RMB' and gid= '" + Feeid + "') ");
|
|
|
|
|
|
var _count = db.ExecuteNonQuery(transaction,CommandType.Text, strSql.ToString());
|
|
|
return _count;
|
|
|
}
|
|
|
|
|
|
|
|
|
private static int GetFeeStatusRecordCount(Database db, string bsNo, int feeStatus, DbTransaction transaction)
|
|
|
{
|
|
|
var cmdRejectCount = db.GetSqlStringCommand("select count(*) from ch_fee where BsNo=@BsNo and FeeStatus=@FeeStatus");
|
|
|
db.AddInParameter(cmdRejectCount, "@BsNo", DbType.String, bsNo);
|
|
|
db.AddInParameter(cmdRejectCount, "@FeeStatus", DbType.Int32, feeStatus);
|
|
|
var rejectCount = Convert.ToInt32(db.ExecuteScalar(cmdRejectCount, transaction));
|
|
|
return rejectCount;
|
|
|
}
|
|
|
|
|
|
public static string GetListRangDAStr(string tb, string userid, string usercode, string companyid)
|
|
|
{
|
|
|
string str = "";
|
|
|
var strSql = new StringBuilder();
|
|
|
strSql.Append("SELECT ");
|
|
|
strSql.Append(" VISIBLERANGE,OPERATERANGE,AUTHORITYID,VSSQL ");
|
|
|
strSql.Append(" from VW_User_Authority ");
|
|
|
strSql.Append(" where [NAME]='modFeeAudit' and USERID='" + userid + "' and ISDELETE=0");
|
|
|
|
|
|
string visiblerange = "4";
|
|
|
string operaterange = "4";
|
|
|
string AUTHORITYID = "";
|
|
|
string VSSQL = "";
|
|
|
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"]);
|
|
|
VSSQL = Convert.ToString(reader["VSSQL"]);
|
|
|
break;
|
|
|
}
|
|
|
reader.Close();
|
|
|
}
|
|
|
if (visiblerange == "4")
|
|
|
{
|
|
|
str = "1=2";
|
|
|
}
|
|
|
else if (visiblerange == "3")
|
|
|
{
|
|
|
|
|
|
str = " (v_op_bill.OP='" + usercode + "' OR v_op_bill.SALE='" + usercode + "' OR v_op_bill.CUSTSERVICE='" + usercode + "' OR v_op_bill.DOC='" + usercode + "')";
|
|
|
|
|
|
}
|
|
|
else if (visiblerange == "2")
|
|
|
{
|
|
|
var rangeDa = new RangeDA();
|
|
|
var deptid = rangeDa.GetDEPTGID(userid);
|
|
|
//str = " (v_op_bill.OP in (select showname from vw_user where deptgid='" + deptid + "') OR v_op_bill.SALE in (select showname from vw_user where deptgid='" + deptid + "') OR v_op_bill.CUSTSERVICE in (select showname from vw_user where deptgid='" + deptid + "') "
|
|
|
//+ " OR v_op_bill.DOC in (select showname from vw_user where deptgid='" + deptid + "') OR v_op_bill.FRCUSTSERVICE in (select showname from vw_user where deptgid='" + deptid + "') OR v_op_bill.INPUTBY in (select showname from vw_user where deptgid='" + deptid + "'))";
|
|
|
|
|
|
str = " exists( select 1 from vw_user where deptgid='" + deptid + "' and(showname=v_op_bill.OP OR showname=v_op_bill.SALE OR showname=v_op_bill.CUSTSERVICE OR showname=v_op_bill.DOC OR showname=v_op_bill.FRCUSTSERVICE OR showname=v_op_bill.INPUTBY)) ";
|
|
|
|
|
|
}
|
|
|
else if (visiblerange == "1")
|
|
|
{
|
|
|
//str = " (v_op_bill.OP in (select showname from vw_user where COMPANYID='" + companyid + "') OR v_op_bill.SALE in (select showname from vw_user where COMPANYID='" + companyid + "') OR v_op_bill.CUSTSERVICE in (select showname from vw_user where COMPANYID='" + companyid + "') "
|
|
|
//+ " OR v_op_bill.DOC in (select showname from vw_user where COMPANYID='" + companyid + "') OR v_op_bill.FRCUSTSERVICE in (select showname from vw_user where COMPANYID='" + companyid + "') OR v_op_bill.INPUTBY in (select showname from vw_user where COMPANYID='" + companyid + "'))";
|
|
|
str = " exists( select 1 from vw_user where COMPANYID='" + companyid + "' and(showname=v_op_bill.OP OR showname=v_op_bill.SALE OR showname=v_op_bill.CUSTSERVICE OR showname=v_op_bill.DOC OR showname=v_op_bill.FRCUSTSERVICE OR showname=v_op_bill.INPUTBY)) ";
|
|
|
}
|
|
|
|
|
|
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 = " (v_op_bill.Corpid='" + Convert.ToString(reader["COMPANYID"]) + "'";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
str = str + " or v_op_bill.Corpid='" + Convert.ToString(reader["COMPANYID"]) + "'";
|
|
|
};
|
|
|
}
|
|
|
str = str + ")";
|
|
|
reader.Close();
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|
|
|
else if (visiblerange == "6")
|
|
|
{
|
|
|
str = " EXISTS (select 1 from user_authority_range_op P left join [user] u on (u.GID=P.OPID) where (v_op_bill.OP=U.SHOWNAME OR v_op_bill.SALE=U.SHOWNAME OR v_op_bill.CUSTSERVICE=U.SHOWNAME) AND P.userid='" + userid + "' and P.AUTHORITYID='" + AUTHORITYID + "' and P.VISIBLERANGE=1) ";
|
|
|
}
|
|
|
VSSQL = VSSQL.Trim();
|
|
|
if (!string.IsNullOrEmpty(VSSQL))
|
|
|
{
|
|
|
|
|
|
if (!string.IsNullOrEmpty(str))
|
|
|
{
|
|
|
str = str + " and (" + VSSQL + ") ";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
str = " (" + VSSQL + ") ";
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
return str;
|
|
|
}
|
|
|
|
|
|
public static string GetTruckListRangDAStr(string tb, string userid, string usercode, string companyid)
|
|
|
{
|
|
|
string str = "";
|
|
|
var strSql = new StringBuilder();
|
|
|
strSql.Append("SELECT ");
|
|
|
strSql.Append(" VISIBLERANGE,OPERATERANGE,AUTHORITYID,VSSQL ");
|
|
|
strSql.Append(" from VW_User_Authority ");
|
|
|
strSql.Append(" where [NAME]='modFeeAudit' and USERID='" + userid + "' and ISDELETE=0");
|
|
|
|
|
|
string visiblerange = "4";
|
|
|
string operaterange = "4";
|
|
|
string AUTHORITYID = "";
|
|
|
string VSSQL = "";
|
|
|
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"]);
|
|
|
VSSQL = Convert.ToString(reader["VSSQL"]);
|
|
|
break;
|
|
|
}
|
|
|
reader.Close();
|
|
|
}
|
|
|
if (visiblerange == "4")
|
|
|
{
|
|
|
str = "1=2";
|
|
|
}
|
|
|
else if (visiblerange == "3")
|
|
|
{
|
|
|
|
|
|
str = " (v_op_truck_bulk.OP='" + usercode + "' OR v_op_truck_bulk.SALE='" + usercode + "' OR v_op_truck_bulk.CUSTSERVICE='" + usercode + "')";
|
|
|
|
|
|
}
|
|
|
else if (visiblerange == "2")
|
|
|
{
|
|
|
if (tb == "index")
|
|
|
{
|
|
|
var rangeDa = new RangeDA();
|
|
|
var deptname = rangeDa.GetDEPTNAME(userid);
|
|
|
var userstr = new StringBuilder();
|
|
|
userstr.Append(" select SHOWNAME 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 = " (v_op_truck_bulk.OP='" + Convert.ToString(reader["SHOWNAME"]) + "' OR v_op_truck_bulk.SALE='" + Convert.ToString(reader["SHOWNAME"]) + "'" + " OR v_op_truck_bulk.CUSTSERVICE='" + Convert.ToString(reader["SHOWNAME"]) + "'";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
str = str + " or v_op_truck_bulk.OP='" + Convert.ToString(reader["SHOWNAME"]) + "' OR v_op_truck_bulk.SALE='" + Convert.ToString(reader["SHOWNAME"]) + "'" + " OR v_op_truck_bulk.CUSTSERVICE='" + Convert.ToString(reader["SHOWNAME"]) + "'";
|
|
|
};
|
|
|
}
|
|
|
str = str + ")";
|
|
|
reader.Close();
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
str = " 1=1 ";
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (visiblerange == "5")
|
|
|
{
|
|
|
str = " 1=1 ";
|
|
|
|
|
|
|
|
|
}
|
|
|
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 = " (v_op_truck_bulk.OP='" + Convert.ToString(reader["SHOWNAME"]) + "' OR v_op_truck_bulk.SALE='" + Convert.ToString(reader["SHOWNAME"]) + "' OR v_op_truck_bulk.CUSTSERVICE='" + Convert.ToString(reader["SHOWNAME"]) + "' ";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
str = str + " or v_op_truck_bulk.OP='" + Convert.ToString(reader["SHOWNAME"]) + "' OR v_op_truck_bulk.SALE='" + Convert.ToString(reader["SHOWNAME"]) + "' OR v_op_truck_bulk.CUSTSERVICE='" + Convert.ToString(reader["SHOWNAME"]) + "'";
|
|
|
};
|
|
|
}
|
|
|
str = str + ")";
|
|
|
reader.Close();
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (visiblerange == "1")
|
|
|
{
|
|
|
str = " 1=1 ";
|
|
|
}
|
|
|
VSSQL = VSSQL.Trim();
|
|
|
if (!string.IsNullOrEmpty(VSSQL))
|
|
|
{
|
|
|
|
|
|
if (!string.IsNullOrEmpty(str))
|
|
|
{
|
|
|
str = str + " and (" + VSSQL + ") ";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
str = " (" + VSSQL + ") ";
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
return str;
|
|
|
}
|
|
|
|
|
|
|
|
|
public static string GetRangDAStr(int type, string optype, string userid, string username, string companyid)
|
|
|
{
|
|
|
|
|
|
string str = "";
|
|
|
string modustr = "";
|
|
|
if (type == 1)
|
|
|
{
|
|
|
modustr = "modOtherRecvFeeManagement";
|
|
|
|
|
|
|
|
|
if (optype == "op_seae" || optype == "op_seaeorder")
|
|
|
{
|
|
|
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_other" || optype == "tMsWlPcHead" || optype == "OpCtnBsCard")
|
|
|
{
|
|
|
modustr = "modOtherRecvFeeManagement";
|
|
|
|
|
|
}
|
|
|
else if (optype == "op_bulk")
|
|
|
{
|
|
|
modustr = "modBulkRecvFeeManagement";
|
|
|
|
|
|
}
|
|
|
else if (optype == "op_railway")
|
|
|
{
|
|
|
modustr = "modRailwayRecvFeeManagement";
|
|
|
|
|
|
}
|
|
|
else if (optype == "import_main")
|
|
|
{
|
|
|
modustr = "modImportTrade";
|
|
|
}
|
|
|
|
|
|
}
|
|
|
else if (type == 2)
|
|
|
{
|
|
|
modustr = "modOtherPayFeeManagement";
|
|
|
if (optype == "op_seae" || optype == "op_seaeorder")
|
|
|
{
|
|
|
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_other" || optype == "tMsWlPcHead" || optype == "OpCtnBsCard")
|
|
|
{
|
|
|
modustr = "modOtherPayFeeManagement";
|
|
|
|
|
|
}
|
|
|
else if (optype == "op_bulk")
|
|
|
{
|
|
|
modustr = "modBulkPayFeeManagement";
|
|
|
|
|
|
}
|
|
|
else if (optype == "op_railway")
|
|
|
{
|
|
|
modustr = "modRailwayPayFeeManagement";
|
|
|
|
|
|
}else if (optype == "import_main")
|
|
|
{
|
|
|
modustr = "modImportTrade";
|
|
|
}
|
|
|
}
|
|
|
|
|
|
var strSql = new StringBuilder();
|
|
|
strSql.Append(" SELECT ");
|
|
|
strSql.Append(" VISIBLERANGE,OPERATERANGE,AUTHORITYID,VSSQL ");
|
|
|
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 = "";
|
|
|
string VSSQL = "";
|
|
|
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"]);
|
|
|
VSSQL = Convert.ToString(reader["VSSQL"]);
|
|
|
break;
|
|
|
}
|
|
|
reader.Close();
|
|
|
}
|
|
|
if (visiblerange == "4")
|
|
|
{
|
|
|
str = " ENTEROPERATOR='" + userid + "'";
|
|
|
}
|
|
|
else if (visiblerange == "3")
|
|
|
{
|
|
|
str = " ENTEROPERATOR='" + userid + "'";
|
|
|
}
|
|
|
else if (visiblerange == "2")
|
|
|
{
|
|
|
var rangeDa = new RangeDA();
|
|
|
var deptname = rangeDa.GetDEPTNAME(userid);
|
|
|
str = " ENTEROPERATOR in (select USERID from user_company where COMPANYID='" + companyid + "') and ENTEROPERATOR in (select userid from user_baseinfo where DEPTNAME='" + deptname + "')";
|
|
|
}
|
|
|
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 = " (ENTEROPERATOR in (select USERID from user_company where COMPANYID='" + companyid + "') ";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
str = str + " or 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 = " (ENTEROPERATOR='" + Convert.ToString(reader["OPID"]) + "' ";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
str = str + " or ENTEROPERATOR='" + Convert.ToString(reader["OPID"]) + "'";
|
|
|
};
|
|
|
}
|
|
|
if (str != "")
|
|
|
str = str + ")";
|
|
|
reader.Close();
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|
|
|
else if (visiblerange == "1")
|
|
|
{
|
|
|
str = " ENTEROPERATOR in (select USERID from user_company where COMPANYID='" + companyid + "') ";
|
|
|
}
|
|
|
else if (visiblerange == "0")
|
|
|
{
|
|
|
str = " 1=1 ";
|
|
|
}
|
|
|
VSSQL = VSSQL.Trim();
|
|
|
if (!string.IsNullOrEmpty(VSSQL))
|
|
|
{
|
|
|
|
|
|
if (!string.IsNullOrEmpty(str))
|
|
|
{
|
|
|
str = str + " and (" + VSSQL + ") ";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
str = " (" + VSSQL + ") ";
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
return str;
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
internal class MsChFeeDealException : Exception
|
|
|
{
|
|
|
internal MsChFeeDealException(string message)
|
|
|
: base(message)
|
|
|
{
|
|
|
}
|
|
|
}
|
|
|
} |