using System ;
using System.Collections.Generic ;
using System.Linq ;
using System.Web.Mvc ;
using DSWeb.Areas.Import.Models.Comm ;
using DSWeb.Areas.CommMng.DAL ;
using DSWeb.Areas.Import.DAL.ImportTrade ;
using DSWeb.Areas.Import.Models.ImportTrade ;
using DSWeb.Areas.Import.DAL.XXH ;
using DSWeb.Areas.Import.Models.XXH ;
using DSWeb.TruckMng.Comm.Cookie ;
using DSWeb.TruckMng.Helper ;
using DSWeb.TruckMng.Helper.Repository ;
using DSWeb.Areas.Import.DAL.Comm ;
using HcUtility.Comm ;
using HcUtility.Core ;
using DSWeb.Areas.CommMng.Models ;
////应对新的单据管理模块
using DSWeb.MvcShipping.Controllers ;
using DSWeb.MvcShipping.DAL.MsOpReceiptDAL ;
using DSWeb.MvcShipping.Models.MsOpReceipt ;
using DSWeb.MvcShipping.Models.MsOpAmend ;
using System.Text ;
using DSWeb.MvcShipping.DAL.MsOpSeaeDAL ;
using DSWeb.MvcShipping.Models.MsOpSeae ;
using DSWeb.MvcShipping.Models.MsOpSeaeBill ;
using DSWeb.MvcShipping.DAL.MsCodeFtpSet ;
using DSWeb.MvcShipping.DAL.MsBaseInfoDAL ;
using DSWeb.Areas.RptMng.Comm ;
using Microsoft.Office.Interop.Excel ;
using DSWeb.MvcShipping.Models.MsOpApply ;
using DSWeb.MvcShipping.DAL.MsOpApplyDAL ;
using DSWeb.MvcShipping.DAL.MsSysBillNoSet ;
using DSWeb.MvcShipping.Models.MsSysBillNoSet ;
using DSWeb.SoftMng.Filter ;
namespace DSWeb.Areas.Import.Controllers
{
[JsonRequestBehavior]
public class ImportSyncController : Controller
{
/ /
// GET: /Import/XXH
public ActionResult Index ( )
{
return View ( ) ;
}
[SqlKeyWordsFilter(Type = "Action")] //sql 防注入过滤器
public ContentResult GetDataList ( int start , int limit , string sort , string condition )
{
var dataList = ImportSyncDAL . GetSyncList ( condition , sort ) ;
var list = dataList . Skip ( start ) . Take ( limit ) ;
var json = JsonConvert . Serialize ( new { Success = true , Message = "查询成功" , totalCount = dataList . Count , data = list . ToList ( ) } ) ;
return new ContentResult ( ) { Content = json } ;
}
[SqlKeyWordsFilter(Type = "Action")] //sql 防注入过滤器
public ContentResult GetSync ( string ContractNo , string Local_Contractno )
{
var dataList = ImportSyncDAL . GetSync ( ContractNo , Local_Contractno ) ;
var list = dataList ;
var json = JsonConvert . Serialize ( new { Success = true , Message = "查询成功" , totalCount = dataList . Count , data = list . ToList ( ) } ) ;
return new ContentResult ( ) { Content = json } ;
}
public ContentResult GetSync_Local ( string Local_Contractno )
{
var dataList = ImportSyncDAL . GetSync_Local ( Local_Contractno ) ;
var list = dataList ;
var json = JsonConvert . Serialize ( new { Success = true , Message = "查询成功" , totalCount = dataList . Count , data = list . ToList ( ) } ) ;
return new ContentResult ( ) { Content = json } ;
}
public ContentResult GetSyncData_Local ( string Local_Contractno )
{
ImportUploadmb head = null ;
var list = ImportSyncDAL . GetSync_Local ( Local_Contractno ) ;
if ( list . Count > 0 )
head = list [ 0 ] ;
if ( head = = null )
{
head = new ImportUploadmb ( ) ;
}
var json = JsonConvert . Serialize (
new { Success = true , Message = "查询成功" , data = head } ) ;
return new ContentResult ( ) { Content = json } ;
}
public ContentResult GetHTH ( )
{
var dataList = ImportTradeDAL . GetHTH ( ) ;
var list = dataList ;
var json = JsonConvert . Serialize ( new { Success = true , Message = "查询成功" , totalCount = dataList . Count , data = list . ToList ( ) } ) ;
return new ContentResult ( ) { Content = json } ;
}
public ContentResult GetChFee_Pub ( string BSNO )
{
var dataList = ImportSyncDAL . GetChFee_Pub ( BSNO ) ;
//var list = dataList.Skip(start).Take(limit);
var json = JsonConvert . Serialize ( new { Success = true , Message = "查询成功" , totalCount = dataList . Count , data = dataList . ToList ( ) } ) ;
return new ContentResult ( ) { Content = json } ;
}
public ContentResult GetChFee_Local ( string BSNO )
{
var dataList = ImportSyncDAL . GetChFee_Local ( BSNO ) ;
//var list = dataList.Skip(start).Take(limit);
var json = JsonConvert . Serialize ( new { Success = true , Message = "查询成功" , totalCount = dataList . Count , data = dataList . ToList ( ) } ) ;
return new ContentResult ( ) { Content = json } ;
}
public ContentResult GetCargoPubList ( string ContractNo )
{
var dataList = ImportSyncDAL . GetCargoList_Pub ( ContractNo ) ;
//var list = dataList.Skip(start).Take(limit);
var json = JsonConvert . Serialize ( new { Success = true , Message = "查询成功" , totalCount = dataList . Count , data = dataList . ToList ( ) } ) ;
return new ContentResult ( ) { Content = json } ;
}
public ContentResult GetCargoLocalList ( string ContractNo )
{
var dataList = ImportSyncDAL . GetCargoList_Local ( ContractNo ) ;
//var list = dataList.Skip(start).Take(limit);
var json = JsonConvert . Serialize ( new { Success = true , Message = "查询成功" , totalCount = dataList . Count , data = dataList . ToList ( ) } ) ;
return new ContentResult ( ) { Content = json } ;
}
public ContentResult SaveSync ( string SQL )
{
var _count = 0 ;
_count = ImportSyncDAL . SaveSync ( SQL ) ;
var json = JsonConvert . Serialize ( new { Success = true , Message = "查询成功" , totalCount = _count , data = _count } ) ;
return new ContentResult ( ) { Content = json } ;
}
#region 用于在生成业务的同时分商品生成费用
public ContentResult MakeFee ( string ContractNo )
{
var _count = 0 ;
var _r = DoMakeFee ( ContractNo ) ;
var json = JsonConvert . Serialize ( new { Success = true , Message = "查询成功" , totalCount = _count , data = _count } ) ;
return new ContentResult ( ) { Content = json } ;
}
private DBResult DoMakeFee ( string ContractNo )
{
var CargoList = ImportTradeDAL . GetCargoList ( " c.ContractNo='" + ContractNo + "' " ) ;
var _import = XXHDAL . GetData_ALL ( " M.ContractNo=(select local_contractno from import_main_public where contractno='" + ContractNo + "') " , CookieConfig . GetCookie_UserCode ( Request ) , CookieConfig . GetCookie_UserName ( Request ) , CookieConfig . GetCookie_CompanyId ( Request ) ) ;
var companyname = _import . companyname ;
decimal prepayments = 0 ;
decimal balance = 0 ;
decimal weight = 0 ;
var ChfeeList = new List < MsChFee > ( ) ;
var USERID = Convert . ToString ( Session [ "USERID" ] ) ;
var enterdate = DateTime . Now ;
foreach ( var _C in CargoList )
{
prepayments = prepayments + Convert . ToDecimal ( _C . prepayments ) ;
balance = balance + Convert . ToDecimal ( _C . balance ) ;
weight = weight + Convert . ToDecimal ( _C . weight ) ;
//预付款
if ( Convert . ToDecimal ( _C . prepayments ) > 0 )
{
var data = new MsChFee ( ) ;
data . GId = Guid . NewGuid ( ) . ToString ( ) ;
data . BsNo = _C . ContractNo ;
data . UnitPrice = Convert . ToDecimal ( _C . prepayments ) ;
data . Quantity = 1 ;
data . Amount = Convert . ToDecimal ( _C . prepayments ) ;
//data.NoTaxAmount = Convert.ToDecimal(_C.prepayments);
data . FeeName = "预付款" ;
var CURRList = BasicDataRefDAL . GetcurrRefList ( "gid='" + _C . currid + "'" ) ;
var CURR = CURRList [ 0 ] . codename ;
data . Currency = CURR ;
data . ExChangerate = Convert . ToDecimal ( _C . Exchangerate ) ;
data . CARGO_GID = _C . GID ;
data . Remark = CURR + _C . prepayments ;
data . FeeType = 1 ;
data . EnteroPerator = USERID ;
data . EnterDate = DateTime . Now ;
ChfeeList . Add ( data ) ;
var data2 = new MsChFee ( ) ;
data2 . GId = Guid . NewGuid ( ) . ToString ( ) ;
data2 . BsNo = _C . ContractNo ;
data2 . UnitPrice = Convert . ToDecimal ( _C . prepayments ) ;
data2 . Quantity = 1 ;
data2 . Amount = Convert . ToDecimal ( _C . prepayments ) ;
//data.NoTaxAmount = Convert.ToDecimal(_C.prepayments);
data2 . FeeName = "预付款" ;
//var CURRList = BasicDataRefDAL.GetcurrRefList("gid='" + _C.currid + "'");
//var CURR = CURRList[0].codename;
data2 . Currency = CURR ;
data2 . ExChangerate = Convert . ToDecimal ( _C . Exchangerate ) ;
data2 . CARGO_GID = _C . GID ;
data2 . Remark = CURR + _C . prepayments ;
data2 . FeeType = 2 ;
data . EnteroPerator = USERID ;
data . EnterDate = DateTime . Now ;
ChfeeList . Add ( data2 ) ;
}
//尾款
if ( Convert . ToDecimal ( _C . balance ) > 0 )
{
var data = new MsChFee ( ) ;
data . GId = Guid . NewGuid ( ) . ToString ( ) ;
data . BsNo = _C . ContractNo ;
data . UnitPrice = Convert . ToDecimal ( _C . balance ) ;
data . Quantity = 1 ;
data . Amount = Convert . ToDecimal ( _C . balance ) ;
//data.NoTaxAmount = Convert.ToDecimal(_C.balance);
data . FeeName = "尾款" ;
var CURRList = BasicDataRefDAL . GetcurrRefList ( "gid='" + _C . currid + "'" ) ;
var CURR = CURRList [ 0 ] . codename ;
data . Currency = CURR ;
data . ExChangerate = Convert . ToDecimal ( _C . Exchangerate ) ;
data . CARGO_GID = _C . GID ;
data . Remark = CURR + _C . balance ;
data . FeeType = 1 ;
data . EnteroPerator = USERID ;
data . EnterDate = DateTime . Now ;
ChfeeList . Add ( data ) ;
var data2 = new MsChFee ( ) ;
data2 . GId = Guid . NewGuid ( ) . ToString ( ) ;
data2 . BsNo = _C . ContractNo ;
data2 . UnitPrice = Convert . ToDecimal ( _C . balance ) ;
data2 . Quantity = 1 ;
data2 . Amount = Convert . ToDecimal ( _C . balance ) ;
//data.NoTaxAmount = Convert.ToDecimal(_C.balance);
data2 . FeeName = "尾款" ;
data2 . Currency = CURR ;
data2 . ExChangerate = Convert . ToDecimal ( _C . Exchangerate ) ;
data2 . CARGO_GID = _C . GID ;
data2 . Remark = CURR + _C . balance ;
data2 . FeeType = 2 ;
data2 . EnteroPerator = USERID ;
data2 . EnterDate = DateTime . Now ;
ChfeeList . Add ( data2 ) ;
}
//关税
if ( Convert . ToDecimal ( _C . tax_1 ) > 0 )
{
var data = new MsChFee ( ) ;
data . GId = Guid . NewGuid ( ) . ToString ( ) ;
data . BsNo = _C . ContractNo ;
data . UnitPrice = Convert . ToDecimal ( _C . tax_1 ) ;
data . Quantity = 1 ;
data . Amount = Convert . ToDecimal ( _C . tax_1 ) ;
data . CARGO_GID = _C . GID ;
data . FeeName = "关税" ;
data . Currency = "RMB" ;
data . ExChangerate = 1 ;
data . FeeType = 1 ;
data . EnteroPerator = USERID ;
data . EnterDate = DateTime . Now ;
ChfeeList . Add ( data ) ;
var data2 = new MsChFee ( ) ;
data2 . GId = Guid . NewGuid ( ) . ToString ( ) ;
data2 . BsNo = _C . ContractNo ;
data2 . UnitPrice = Convert . ToDecimal ( _C . tax_1 ) ;
data2 . Quantity = 1 ;
data2 . Amount = Convert . ToDecimal ( _C . tax_1 ) ;
data . CARGO_GID = _C . GID ;
data2 . FeeName = "关税" ;
data2 . Currency = "RMB" ;
data2 . ExChangerate = 2 ;
data2 . FeeType = 2 ;
data2 . EnteroPerator = USERID ;
data2 . EnterDate = DateTime . Now ;
ChfeeList . Add ( data2 ) ;
}
//增殖税
if ( Convert . ToDecimal ( _C . tax_zz_1 ) > 0 )
{
var data = new MsChFee ( ) ;
data . GId = Guid . NewGuid ( ) . ToString ( ) ;
data . BsNo = _C . ContractNo ;
data . UnitPrice = Convert . ToDecimal ( _C . tax_zz_1 ) ;
data . Quantity = 1 ;
data . Amount = Convert . ToDecimal ( _C . tax_zz_1 ) ;
data . CARGO_GID = _C . GID ;
data . FeeName = "增值税" ;
data . Currency = "RMB" ;
data . ExChangerate = 1 ;
data . FeeType = 1 ;
data . EnteroPerator = USERID ;
data . EnterDate = DateTime . Now ;
ChfeeList . Add ( data ) ;
var data2 = new MsChFee ( ) ;
data2 . GId = Guid . NewGuid ( ) . ToString ( ) ;
data2 . BsNo = _C . ContractNo ;
data2 . UnitPrice = Convert . ToDecimal ( _C . tax_zz_1 ) ;
data2 . Quantity = 1 ;
data2 . Amount = Convert . ToDecimal ( _C . tax_zz_1 ) ;
data . CARGO_GID = _C . GID ;
data2 . FeeName = "增值税" ;
data2 . Currency = "RMB" ;
data2 . ExChangerate = 2 ;
data2 . FeeType = 2 ;
data2 . EnteroPerator = USERID ;
data2 . EnterDate = DateTime . Now ;
ChfeeList . Add ( data2 ) ;
}
}
//预付款手续费
if ( Convert . ToDecimal ( prepayments ) > 0 )
{
var data = new MsChFee ( ) ;
data . GId = Guid . NewGuid ( ) . ToString ( ) ;
data . BsNo = ContractNo ;
data . UnitPrice = Convert . ToDecimal ( prepayments ) ;
data . Quantity = 1 ;
data . Amount = Convert . ToDecimal ( prepayments ) ;
data . FeeName = "手续费" ;
data . Currency = "RMB" ;
data . ExChangerate = 1 ;
data . CARGO_GID = "" ;
data . Remark = "预付款手续费" ;
data . FeeType = 1 ;
data . EnteroPerator = USERID ;
data . EnterDate = DateTime . Now ;
ChfeeList . Add ( data ) ;
var data2 = new MsChFee ( ) ;
data2 . GId = Guid . NewGuid ( ) . ToString ( ) ;
data2 . BsNo = ContractNo ;
data2 . UnitPrice = Convert . ToDecimal ( prepayments ) ;
data2 . Quantity = 1 ;
data2 . Amount = Convert . ToDecimal ( prepayments ) ;
data2 . FeeName = "手续费" ;
data2 . Currency = "RMB" ;
data2 . ExChangerate = 1 ;
data2 . CARGO_GID = "" ;
data2 . Remark = "预付款手续费" ;
data2 . FeeType = 2 ;
data2 . EnteroPerator = USERID ;
data2 . EnterDate = DateTime . Now ;
ChfeeList . Add ( data2 ) ;
}
//尾款
if ( Convert . ToDecimal ( balance ) > 0 )
{
var data = new MsChFee ( ) ;
data . GId = Guid . NewGuid ( ) . ToString ( ) ;
data . BsNo = ContractNo ;
data . UnitPrice = Convert . ToDecimal ( balance ) ;
data . Quantity = 1 ;
data . Amount = Convert . ToDecimal ( balance ) ;
data . FeeName = "手续费" ;
data . Currency = "RMB" ;
data . ExChangerate = 1 ;
data . CARGO_GID = "" ;
data . Remark = "尾款手续费" ;
data . FeeType = 1 ;
data . EnteroPerator = USERID ;
data . EnterDate = DateTime . Now ;
ChfeeList . Add ( data ) ;
var data2 = new MsChFee ( ) ;
data2 . GId = Guid . NewGuid ( ) . ToString ( ) ;
data2 . BsNo = ContractNo ;
data2 . UnitPrice = Convert . ToDecimal ( balance ) ;
data2 . Quantity = 1 ;
data2 . Amount = Convert . ToDecimal ( balance ) ;
data2 . FeeName = "手续费" ;
data2 . Currency = "RMB" ;
data2 . ExChangerate = 1 ;
data2 . CARGO_GID = "" ;
data2 . Remark = "尾款手续费" ;
data2 . FeeType = 2 ;
data2 . EnteroPerator = USERID ;
data2 . EnterDate = DateTime . Now ;
ChfeeList . Add ( data2 ) ;
}
//预付款电汇费
if ( Convert . ToDecimal ( prepayments ) > 0 )
{
var data = new MsChFee ( ) ;
data . GId = Guid . NewGuid ( ) . ToString ( ) ;
data . BsNo = ContractNo ;
data . UnitPrice = 150 ;
data . Quantity = 1 ;
data . Amount = 150 ;
data . FeeName = "电汇费" ;
data . Currency = "RMB" ;
data . ExChangerate = 1 ;
data . CARGO_GID = "" ;
data . Remark = "预付款电汇费" ;
data . FeeType = 1 ;
data . EnteroPerator = USERID ;
data . EnterDate = DateTime . Now ;
ChfeeList . Add ( data ) ;
var data2 = new MsChFee ( ) ;
data2 . GId = Guid . NewGuid ( ) . ToString ( ) ;
data2 . BsNo = ContractNo ;
data2 . UnitPrice = 150 ;
data2 . Quantity = 1 ;
data2 . Amount = 150 ;
data2 . FeeName = "电汇费" ;
data2 . Currency = "RMB" ;
data2 . ExChangerate = 1 ;
data2 . CARGO_GID = "" ;
data2 . Remark = "预付款电汇费" ;
data2 . FeeType = 2 ;
data2 . EnteroPerator = USERID ;
data2 . EnterDate = DateTime . Now ;
ChfeeList . Add ( data2 ) ;
}
//尾款
if ( Convert . ToDecimal ( balance ) > 0 )
{
var data = new MsChFee ( ) ;
data . GId = Guid . NewGuid ( ) . ToString ( ) ;
data . BsNo = ContractNo ;
data . UnitPrice = 150 ;
data . Quantity = 1 ;
data . Amount = 150 ;
data . FeeName = "电汇费" ;
data . Currency = "RMB" ;
data . ExChangerate = 1 ;
data . CARGO_GID = "" ;
data . Remark = "尾款电汇费" ;
data . FeeType = 1 ;
data . EnteroPerator = USERID ;
data . EnterDate = DateTime . Now ;
ChfeeList . Add ( data ) ;
var data2 = new MsChFee ( ) ;
data2 . GId = Guid . NewGuid ( ) . ToString ( ) ;
data2 . BsNo = ContractNo ;
data2 . UnitPrice = 150 ;
data2 . Quantity = 1 ;
data2 . Amount = 150 ;
data2 . FeeName = "电汇费" ;
data2 . Currency = "RMB" ;
data2 . ExChangerate = 1 ;
data2 . CARGO_GID = "" ;
data2 . Remark = "尾款电汇费" ;
data2 . FeeType = 2 ;
data2 . EnteroPerator = USERID ;
data2 . EnterDate = DateTime . Now ;
ChfeeList . Add ( data2 ) ;
}
if ( Convert . ToDecimal ( weight ) > 0 )
{
var data = new MsChFee ( ) ;
data . GId = Guid . NewGuid ( ) . ToString ( ) ;
data . BsNo = ContractNo ;
data . UnitPrice = 350 ;
data . Quantity = weight ;
data . Amount = 350 * weight ;
data . FeeName = "代理费" ;
data . Currency = "RMB" ;
data . ExChangerate = 1 ;
data . CARGO_GID = "" ;
data . FeeType = 2 ;
data . EnteroPerator = USERID ;
data . EnterDate = DateTime . Now ;
ChfeeList . Add ( data ) ;
}
if ( Convert . ToDecimal ( weight ) > 0 )
{
var data = new MsChFee ( ) ;
data . GId = Guid . NewGuid ( ) . ToString ( ) ;
data . BsNo = ContractNo ;
data . UnitPrice = 400 ;
data . Quantity = weight ;
data . Amount = 400 * weight ;
data . FeeName = "代理费" ;
data . Currency = "RMB" ;
data . ExChangerate = 1 ;
data . CARGO_GID = "" ;
data . FeeType = 1 ;
data . EnteroPerator = USERID ;
data . EnterDate = DateTime . Now ;
ChfeeList . Add ( data ) ;
}
foreach ( var _d in ChfeeList )
{
_d . FeeStatus = 1 ;
_d . DbOperationType = DbOperationType . DbotIns ;
}
var modb = new ModelObjectRepository ( ) ;
var result = modb . SaveHead (
ModelObjectConvert < MsChFee > . ToModelObjectList ( ChfeeList )
) ;
return result ;
}
# endregion
#region 参照部分
# endregion
#region 根据BSNO判断是否已存在费用
public ContentResult CheckHasFeeWithBSNO ( string bsno )
{
bool rst = ImportSyncDAL . CheckHasFeeWithBSNO ( bsno ) ;
var json = JsonConvert . Serialize ( new { Success = rst } ) ;
return new ContentResult ( ) { Content = json } ;
}
# endregion
}
}