using System ;
using System.Linq ;
using System.Text ;
using System.Web.Mvc ;
using DSWeb.MvcShipping.DAL.MsOpAirnDAL ;
using DSWeb.MvcShipping.Models.MsOpAirn ;
using DSWeb.MvcShipping.Models.MsOpAireBill ;
using DSWeb.MvcShipping.Helper ;
using DSWeb.MvcShipping.Comm.Cookie ;
using HcUtility.Comm ;
using HcUtility.Core ;
using System.Collections.Generic ;
using System.IO ;
using System.Data ;
using System.Data.OleDb ;
using DSWeb.Areas.CommMng.DAL ;
using DSWeb.Areas.RptMng.Comm ;
using DSWeb.Areas.CommMng.Models ;
using DSWeb.MvcShipping.DAL.MsBaseInfoDAL ;
using DSWeb.MvcShipping.DAL.MsSysBillNoSet ;
using DSWeb.MvcShipping.Models.MsSysBillNoSet ;
using DSWeb.MvcShipping.Models.MsOpApply ;
using DSWeb.MvcShipping.DAL.MsOpApplyDAL ;
using DSWeb.MvcShipping.DAL.MsSysParamSet ;
using DSWeb.TruckMng.Helper.Repository ;
using DSWeb.MvcShipping.DAL.MsInfoClient ;
using DSWeb.Areas.MvcShipping.Models.Message.VGM ;
using DSWeb.Common.DB ;
using NPOI.SS.Formula.Functions ;
namespace DSWeb.MvcShipping.Controllers
{
[JsonRequestBehavior]
public class MsOpAirnController : Controller
{
/ /
// GET:
public ActionResult Index ( )
{
return View ( ) ;
}
public ActionResult Edit ( )
{
return View ( ) ;
}
public ActionResult FeeEdit ( )
{
return View ( ) ;
}
public ActionResult FenList ( )
{
return View ( ) ;
}
public ActionResult SeaeFeeView ( )
{
return View ( ) ;
}
public ActionResult FeeAmendEdit ( )
{
return View ( ) ;
}
public ActionResult ReceiptEdit ( )
{
return View ( ) ;
}
public ActionResult BillEdit ( )
{
return View ( ) ;
}
public ActionResult FenEdit ( )
{
return View ( ) ;
}
public ActionResult PiLiangFeeEdit ( )
{
return View ( ) ;
}
public ActionResult HistryFeeIndex ( )
{
return View ( ) ;
}
public ActionResult HistryBillIndex ( )
{
return View ( ) ;
}
public ActionResult FenBillList ( )
{
return View ( ) ;
}
public ActionResult PiLiangFenFee ( )
{
return View ( ) ;
}
public ActionResult PiLiangOpBill ( )
{
return View ( ) ;
}
public ActionResult EditView ( )
{
return View ( ) ;
}
public ContentResult GetDataList ( int start , int limit , string sort , string condition , string bltype , string load )
{
var dataList = MsOpAirnDAL . GetDataList ( condition , bltype , Convert . ToString ( Session [ "USERID" ] ) , Convert . ToString ( Session [ "SHOWNAME" ] ) , Convert . ToString ( Session [ "COMPANYID" ] ) , sort , load ) ;
var list = dataList . Skip ( start ) . Take ( limit ) ;
var isopen = MsBaseInfoDAL . GetUserModuleEnable ( "modAirn_Del" , Session [ "USERID" ] . ToString ( ) ) ;
var json = JsonConvert . Serialize ( new { Success = true , Message = "查询成功" , totalCount = dataList . Count , data = list . ToList ( ) } ) ;
return new ContentResult ( ) { Content = json } ;
}
public ContentResult GetDataListStr ( string sort , string condition )
{
var dataListStr = MsOpAirnDAL . GetDataListStr ( condition , Convert . ToString ( Session [ "USERID" ] ) , Convert . ToString ( Session [ "SHOWNAME" ] ) , Convert . ToString ( Session [ "COMPANYID" ] ) , sort ) ;
var json = JsonConvert . Serialize ( new { Success = true , Message = "查询成功" , data = dataListStr } ) ;
return new ContentResult ( ) { Content = json } ;
}
public ContentResult GetFenList ( int start , int limit , string sort , string condition )
{
var dataList = MsOpAirnDAL . GetFenList ( condition , Convert . ToString ( Session [ "USERID" ] ) , Convert . ToString ( Session [ "SHOWNAME" ] ) , Convert . ToString ( Session [ "COMPANYID" ] ) , 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 } ;
}
public ContentResult GetFreightList ( int start , int limit , string sort , string condition )
{
var dataList = MsOpAirn_FreightDAL . GetBodyList ( 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 } ;
}
public ContentResult GetData ( string handle , string condition , string BLTYPE )
{
MsOpAirn head = null ;
if ( handle = = "edit" )
{
head = MsOpAirnDAL . GetData ( condition ) ;
}
if ( head = = null )
{
head = new MsOpAirn ( ) ;
head . OP = Convert . ToString ( Session [ "SHOWNAME" ] ) ;
head . INPUTBY = Convert . ToString ( Session [ "SHOWNAME" ] ) ;
head . CUSTSERVICE = Convert . ToString ( Session [ "SHOWNAME" ] ) ;
head . ISSUEBY = Convert . ToString ( Session [ "SHOWNAME" ] ) ;
head . ISSUEDATE = System . DateTime . Now . ToString ( "yyyy-MM-dd HH:mm:ss" ) ;
head . ETD = System . DateTime . Now . ToString ( "yyyy-MM-dd" ) ;
head . SALEDEPT = Convert . ToString ( Session [ "DEPTNAME" ] ) ;
head . PFREIGHT = "0" ;
head . PVALUEFEE = "0" ;
head . PCARRIEROT = "0" ;
head . POTFREIGHT = "0" ;
head . PTOTAL = "0" ;
head . CFREIGHT = "0" ;
head . CVALUEFEE = "0" ;
head . CCARRIEROT = "0" ;
head . COTFREIGHT = "0" ;
head . CTOTAL = "0" ;
head . PORTLOADID = "TAO" ;
head . PORTLOAD = "青岛" ;
}
var json = JsonConvert . Serialize (
new { Success = true , Message = "查询成功" , data = head } ) ;
return new ContentResult ( ) { Content = json } ;
}
public ContentResult Save ( string opstatus , string data , string data2 , string data3 , string CargoBody , string CargoDelBody )
{
var aaa = "" ;
var dataall = data . Replace ( "}" , "," ) + ( data2 . Replace ( "{" , "" ) ) . Replace ( "}" , "," ) + data3 . Replace ( "{" , "" ) ;
//var dataall = data.Replace("}", ",") + data2.Replace("{", "");
var BSNO = "" ;
var result = DoSave ( opstatus , dataall , CargoBody , CargoDelBody , out BSNO ) ;
if ( result . Success = = true )
{
var jsonRespose = new JsonResponse
{
Success = result . Success ,
Message = result . Message ,
Data = MsOpAirnDAL . GetData ( " B.BSNO='" + BSNO + "'" )
} ;
return new ContentResult ( ) { Content = JsonConvert . Serialize ( jsonRespose ) } ;
}
else {
var jsonRespose = new JsonResponse { Success = result . Success , Message = result . Message } ;
return new ContentResult ( ) { Content = JsonConvert . Serialize ( jsonRespose ) } ;
}
}
/// <summary>
/// 主分单保存
/// </summary>
/// <param name="opstatus"></param>
/// <param name="data"></param>
/// <param name="CargoBody"></param>
/// <param name="CargoDelBody"></param>
/// <param name="BSNO"></param>
/// <returns></returns>
private DBResult DoSave ( string opstatus , string data , string CargoBody , string CargoDelBody , out string BSNO )
{
var headData = JsonConvert . Deserialize < MsOpAirn > ( data ) ;
DBResult result = new DBResult ( ) ;
var CargobodyList = JsonConvert . Deserialize < List < MsOpAirn_Cargomb > > ( CargoBody ) ;
var CargodelbodyList = JsonConvert . Deserialize < List < MsOpAirn_Cargomb > > ( CargoDelBody ) ;
if ( headData . BLTYPE = = "国内分单" & & string . IsNullOrWhiteSpace ( headData . HBLNO ) )
{
////增加判断 如果主单号与现存的其它分单主单号一样 禁止保存
//var condition = $" B.BLTYPE='国内分单' and B.MBLNO='{headData.MBLNO}' and B.MBLNO<>'' and B.BSNO<>'{headData.BSNO}'";
//if (opstatus == "add")
//{
// condition = $" B.BLTYPE='国内分单' and B.MBLNO='{headData.MBLNO}' and B.MBLNO<>'' ";
//}
//var oldhead = MsOpAirnDAL.GetData(condition);
//if (!string.IsNullOrWhiteSpace(oldhead.MBLNO)) {
// //当前存在一个主单号相同的分单 不允许保存
// result.SetErrorInfo("主单号与现有业务重复,不允许保存!");
// BSNO = "";
// return result;
//}
headData . HBLNO = PubSysDAL . GetBillNo ( "0201" ) ;
//headData.CREATETIME = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
}
var oldheadData = MsOpAirnDAL . GetData ( " B.BSNO='" + headData . BSNO + "' " ) ;
//if (oldheadData.FEESTATUS == true) {
// result.SetErrorInfo("费用锁定的业务不允许修改");
//}
if ( oldheadData . BSSTATUS = = true )
{
result . SetErrorInfo ( "业务锁定的业务不允许修改。" ) ;
}
var isPost = true ;
var errorstr = "" ;
//var isuse = false;
var iscreatecustno = false ;
if ( headData . CORPID = = "" | | headData . CORPID = = null )
{
headData . CORPID = Convert . ToString ( Session [ "COMPANYID" ] ) ;
}
if ( headData . MBLNO ! = "" & & headData . MBLNO ! = null & & headData . BLTYPE = = "国内主单" )
{
var ct = MsOpAirnDAL . GetRdCount ( " MBLNO='" + headData . MBLNO + "' and CORPID='" + Convert . ToString ( Session [ "COMPANYID" ] ) + "' and BLTYPE='国内主单'" ) ;
if ( ct ! = 0 & & opstatus = = "add" )
{
isPost = false ;
errorstr = "主单号" ;
}
}
if ( opstatus = = "add" )
{
headData . INPUTBY = Convert . ToString ( Session [ "SHOWNAME" ] ) ;
headData . BSDATE = DateTime . Now ;
headData . CREATETIME = DateTime . Now . ToString ( "yyyy-MM-dd" ) ;
headData . BSSTATUS = false ;
headData . FEESTATUS = false ;
headData . DbOperationType = DbOperationType . DbotIns ;
headData . ModelUIStatus = "I" ;
}
else if ( opstatus = = "edit" )
{
headData . DbOperationType = DbOperationType . DbotUpd ;
headData . ModelUIStatus = "E" ;
//20230217 增加判断 只要存在一条bsno=headData.BSNO的ch_fee
//则将原数据的费用信息 覆盖到即将保存的headdata中
//即:如果有应收应付费用 则不允许修改主单或分单中的费用相关字段
var feecount = BasicDataRefDAL . GetExist ( "ch_fee" , " BSNO='" + headData . BSNO + "' and feestatus not in(1,6) " ) ;
if ( feecount > 0 ) {
headData . BLFRT = oldheadData . BLFRT ;
headData . PFREIGHT = oldheadData . PFREIGHT ;
headData . CFREIGHT = oldheadData . CFREIGHT ;
headData . PVALUEFEE = oldheadData . PVALUEFEE ;
headData . CVALUEFEE = oldheadData . CVALUEFEE ;
headData . PCARRIEROT = oldheadData . PCARRIEROT ;
headData . CCARRIEROT = oldheadData . CCARRIEROT ;
headData . POTFREIGHT = oldheadData . POTFREIGHT ;
headData . COTFREIGHT = oldheadData . COTFREIGHT ;
headData . PTOTAL = oldheadData . PTOTAL ;
headData . CTOTAL = oldheadData . CTOTAL ;
headData . OTFEE = oldheadData . OTFEE ;
headData . OTFEE1 = oldheadData . OTFEE1 ;
headData . OTFEE1AMOUNT = oldheadData . OTFEE1AMOUNT ;
headData . OTFEE2 = oldheadData . OTFEE2 ;
headData . OTFEE2AMOUNT = oldheadData . OTFEE2AMOUNT ;
headData . OTFEE3 = oldheadData . OTFEE3 ;
headData . OTFEE3AMOUNT = oldheadData . OTFEE3AMOUNT ;
headData . OTFEE4 = oldheadData . OTFEE4 ;
headData . OTFEE4AMOUNT = oldheadData . OTFEE4AMOUNT ;
headData . OTFEE5 = oldheadData . OTFEE5 ;
headData . OTFEE5AMOUNT = oldheadData . OTFEE5AMOUNT ;
headData . OTFEE6 = oldheadData . OTFEE6 ;
headData . OTFEE6AMOUNT = oldheadData . OTFEE6AMOUNT ;
headData . OTFEE7 = oldheadData . OTFEE7 ;
headData . OTFEE7AMOUNT = oldheadData . OTFEE7AMOUNT ;
headData . OTFEE8 = oldheadData . OTFEE8 ;
headData . OTFEE8AMOUNT = oldheadData . OTFEE8AMOUNT ;
}
}
else
{
headData . DbOperationType = DbOperationType . DbotDel ;
}
//if (headData.MASTERNO == null || headData.MASTERNO =="") { headData.MASTERNO = headData.BSNO; }
if ( headData . ETA = = "" ) headData . ETA = null ;
if ( headData . ETD = = "" ) headData . ETD = null ;
if ( headData . STLDATE = = "" ) headData . STLDATE = null ;
if ( headData . INSPECTIONDATE = = "" ) headData . INSPECTIONDATE = null ;
if ( headData . CUSTOMDATE = = "" ) headData . CUSTOMDATE = null ;
headData . PORTLOAD = MsBaseInfoDAL . DelPortCn ( headData . PORTLOAD ) ;
headData . PORTDISCHARGE = MsBaseInfoDAL . DelPortCn ( headData . PORTDISCHARGE ) ;
BSNO = headData . BSNO ;
if ( headData . BLTYPE = = "国内主单" & & headData . MASTERNO ! = "" & & opstatus ! = "add" )
{
//如果是编辑 需要根据MASTERNO, 清除库存主单使用记录
MsOpAirnDAL . ExecSql ( " update op_airn_RECEIPT set RSTATUS='入库',OP='" + Convert . ToString ( Session [ "SHOWNAME" ] ) + "',OPDATE=getdate() where GID=(select Masterno from OP_AIRN where BSNO='" + headData . BSNO + "') " ) ;
}
if ( headData . ETD ! = "" & & headData . CUSTOMERNAME ! = "" & & headData . STLNAME = = "" ) // headData.STLDATE == "" &&
{
//根据客户、开船日计算账期
var _dmb = MsInfoClientDAL . GetSTLDATE ( headData . CUSTOMERNAME , "国内空运" , headData . ETD , headData . SALE ) ;
headData . STLNAME = _dmb . STLNAME ;
headData . STLDATE = _dmb . STLDATE ;
if ( _dmb . STLNAME = = "" )
{
headData . STLNAME = "现结买单" ;
headData . STLDATE = headData . ISSUEDATE ;
}
}
if ( isPost )
{
//增加一个判断 如无揽货人sale则报警不保存
BasicDataRefDAL . SaveLog ( "opstatus=" + opstatus + ":" + JsonConvert . Serialize ( headData ) + "//" + JsonConvert . Serialize ( CargobodyList ) , Convert . ToString ( Session [ "SHOWNAME" ] ) , "内贸空运" , "主单保存" ) ;
var modb = new ModelObjectRepository ( ) ;
result = modb . Save ( headData ,
ModelObjectConvert < MsOpAirn_Cargomb > . ToModelObjectList ( CargobodyList ) ,
ModelObjectConvert < MsOpAirn_Cargomb > . ToModelObjectList ( CargodelbodyList )
) ;
if ( result . Success = = true )
{
//如果是主单保存 则清空所有相关分单的主单编号 写入新的编号
if ( headData . BLTYPE = = "国内主单" )
{
MsOpAirnDAL . ExecSql ( " update Op_Airn set MBLNO='" + headData . MBLNO + "' where HBLNO='" + headData . HBLNO + "' and BLTYPE='国内分单' " ) ;
if ( headData . MASTERNO ! = "" )
MsOpAirnDAL . ExecSql ( " update op_airn_RECEIPT set RSTATUS='取用',OP='" + Convert . ToString ( Session [ "SHOWNAME" ] ) + "',OPDATE=getdate() where GID='" + headData . MASTERNO + "' " ) ;
}
if ( headData . BLTYPE = = "国内分单" )
{
MsOpAirnDAL . ExecSql ( " update Op_Airn set CUSTOMERNAME='" + headData . CUSTOMERNAME + "',CONSIGNEE='" + headData . CONSIGNEE + "',CONSIGNEEID='" + headData . CONSIGNEEID + "',PORTDISCHARGEID='" + headData . PORTDISCHARGEID
+ "',PORTDISCHARGE='" + headData . PORTDISCHARGE + "',ETD='" + headData . ETD + "',FLYTIME='" + headData . FLYTIME + "'"
+ ",SALE='" + headData . SALE + "'"
+ " where BLTYPE='国内主单' and HBLNO='" + headData . HBLNO + "' and isnull(ISVOID,0)=0 " ) ;
if ( opstatus ! = "add" )
{
#region 更新主单中的燃油费
//按照前端燃油费的计算方法,没办法重写一遍。。。
//20230217 判断主单目前是否有应收应付费用 如果没有 才进行燃油费更改
//如果有 就不进行更改
var 主 单 = MsOpAirnDAL . GetData ( " BLTYPE='国内主单' and HBLNO='" + headData . HBLNO + "' " ) ;
var feecount = BasicDataRefDAL . GetExist ( "ch_fee" , " BSNO='" + 主 单 . BSNO + "' " ) ;
if ( feecount > 0 )
{
//如果有 就不进行更改
}
else
{
//20230217 判断主单目前是否有应收应付费用 如果没有 才进行燃油费更改
double weight = 0 ;
if ( CargobodyList ! = null & & CargobodyList . Count > 0 )
foreach ( MsOpAirn_Cargomb item in CargobodyList )
{
weight + = Convert . ToDouble ( item . WEIGHT ) ;
}
double fuelFee = 0 ;
var updstr = "" ;
switch ( headData . AIRLINES )
{
case "山东航空" :
fuelFee = 0.2 * weight ;
//燃油费四舍五入取整
int shFuelFee = ( int ) ( Math . Round ( fuelFee , 0 ) ) ;
if ( shFuelFee < 10 )
shFuelFee = 10 ;
updstr = " update Op_Airn set OTFEE1='燃油费',OTFEE1AMOUNT='" + shFuelFee + "' where BLTYPE='国内主单' and HBLNO='" + headData . HBLNO + "' and isnull(ISVOID,0)=0 " ;
break ;
case "青岛航空" :
fuelFee = 0.2 * weight ;
//燃油费四舍五入取整
int qhFuelFee = ( int ) ( Math . Round ( fuelFee , 0 ) ) ;
if ( qhFuelFee < 10 )
qhFuelFee = 10 ;
updstr = " update Op_Airn set OTFEE1='燃油费',OTFEE1AMOUNT='" + qhFuelFee + "' where BLTYPE='国内主单' and HBLNO='" + headData . HBLNO + "' and isnull(ISVOID,0)=0 " ;
break ;
case "南方航空" :
fuelFee = 0.2 * weight ;
//燃油费向上取整
int nfFuelFee = ( int ) ( Math . Ceiling ( fuelFee ) ) ;
updstr = " update Op_Airn set OTFEE1='燃油费',OTFEE1AMOUNT='" + nfFuelFee + "' where BLTYPE='国内主单' and HBLNO='" + headData . HBLNO + "' and isnull(ISVOID,0)=0 " ;
break ;
case "吉祥航空" :
fuelFee = 0.2 * weight ;
if ( fuelFee < 1 )
{
fuelFee = 1 ;
}
else
{
fuelFee = Math . Round ( fuelFee , 2 ) ;
}
updstr = " update Op_Airn set OTFEE1='燃油费',OTFEE1AMOUNT='" + fuelFee + "' where BLTYPE='国内主单' and HBLNO='" + headData . HBLNO + "' and isnull(ISVOID,0)=0 " ;
break ;
case "深圳航空" :
fuelFee = 0.2 * weight ;
if ( fuelFee < 1 )
{
fuelFee = 1 ;
}
else
{
fuelFee = Math . Round ( fuelFee , 2 ) ;
}
updstr = " update Op_Airn set OTFEE1='燃油费',OTFEE1AMOUNT='" + fuelFee + "' where BLTYPE='国内主单' and HBLNO='" + headData . HBLNO + "' and isnull(ISVOID,0)=0 " ;
break ;
case "春秋航空" :
//燃油费四舍五入取整
fuelFee = Math . Round ( 0.2 * weight , 0 ) ;
if ( fuelFee < 1 )
{
fuelFee = 1 ;
}
updstr = " update Op_Airn set OTFEE1='燃油费',OTFEE1AMOUNT='" + fuelFee + "' where BLTYPE='国内主单' and HBLNO='" + headData . HBLNO + "' and isnull(ISVOID,0)=0 " ;
break ;
case "厦门航空" :
//燃油费四舍五入 改为取整
fuelFee = Math . Round ( 0.2 * weight , 0 ) ;
if ( fuelFee < 1 )
{
fuelFee = 1 ;
}
updstr = " update Op_Airn set OTFEE1='燃油费',OTFEE1AMOUNT='" + fuelFee + "' where BLTYPE='国内主单' and HBLNO='" + headData . HBLNO + "' and isnull(ISVOID,0)=0 " ;
break ;
default :
fuelFee = 0.2 * weight ;
//燃油费四舍五入取整,前端用的tofixed( )
int otherFuelFee = ( int ) ( Math . Round ( fuelFee , 0 ) ) ;
updstr = " update Op_Airn set OTFEE1='燃油费',OTFEE1AMOUNT='" + otherFuelFee + "' where BLTYPE='国内主单' and HBLNO='" + headData . HBLNO + "' and isnull(ISVOID,0)=0 " ;
break ;
}
if ( updstr ! = "" )
{
BasicDataRefDAL . SaveLog ( updstr , Convert . ToString ( Session [ "SHOWNAME" ] ) , "内贸空运" , "主单费用" ) ;
MsOpAirnDAL . ExecSql ( updstr ) ;
}
//20220914 然后更新杂费和合计数
主 单 . SetPFee_Main ( ) ;
主 单 . DbOperationType = DbOperationType . DbotUpd ;
主 单 . ModelUIStatus = "E" ;
var _r = modb . Save ( 主 单 ) ;
}
# endregion
}
}
}
else
{
MsSysBillNoSetDAL . DeleteBsNo ( headData . CUSTNO ) ;
}
BSNO = headData . BSNO ;
return result ;
}
else
{
if ( iscreatecustno = = true )
MsSysBillNoSetDAL . DeleteBsNo ( headData . CUSTNO ) ;
result . Success = false ;
result . Message = errorstr + "重复,不允许保存!" ;
return result ;
}
}
//20161215 在分单编号生成主单
public ContentResult MakeMain ( string opstatus , string data , string data2 , string data3 , string CargoBody , string CargoDelBody
, string OLDMBLNO = "" , string FDBSNO = "" )
{
//如果有旧主单号 则将其重新设为入库;
var dataall = data . Replace ( "}" , "," ) + ( data2 . Replace ( "{" , "" ) ) . Replace ( "}" , "," ) + data3 . Replace ( "{" , "" ) ;
var headData = JsonConvert . Deserialize < MsOpAirn > ( dataall ) ;
headData . ISSUEDATE = DateTime . Now . ToString ( "yyyy-MM-dd HH:mm:ss" ) ;
//如果新的主单号在op_airn中已经存在, 则返回错误
var OLDZD2 = MsOpAirnDAL . GetData ( " MBLNO='" + headData . MBLNO + "' and HBLNO<>'" + headData . HBLNO + "' " ) ;
if ( OLDZD2 . MBLNO = = headData . MBLNO )
{
var jsonRespose = new JsonResponse
{
Success = false ,
Message = "主单号<" + headData . MBLNO + ">在系统内已存在!"
} ;
return new ContentResult ( ) { Content = JsonConvert . Serialize ( jsonRespose ) } ;
}
DBResult result = new DBResult ( ) ;
if ( OLDMBLNO ! = "" ) {
//MsOpAirnDAL.ExecSql(" update op_airn_RECEIPT set RSTATUS='入库',OP='" + Convert.ToString(Session["SHOWNAME"]) + "',OPDATE=getdate() where RECEIPTNO='" + OLDMBLNO + "' ");
var OLDZD = MsOpAirnDAL . GetData ( " MBLNO='" + OLDMBLNO + "' and HBLNO='" + headData . HBLNO + "' and BLTYPE='国内主单' " ) ;
var SHOWNAME = Session [ "SHOWNAME" ] . ToString ( ) ;
if ( OLDZD ! = null ) {
var modb = new ModelObjectDB ( ) ;
result = modb . Delete ( OLDZD , "update op_airn_RECEIPT set RSTATUS='领用',OP='" + Convert . ToString ( Session [ "SHOWNAME" ] )
+ "',OPDATE=getdate() where GID=(select Masterno from OP_AIRN where BSNO='" + OLDZD . BSNO + "')"
//写一个取消调用的主单日志
, "insert into op_airn_RECEIPTDO select newid(),GID R_GID,BSNO,FIRSTCODE,RECEIPTNO,RTYPE,ISBAOCANG,ISWMS,'取消使用' RSTATUS,'" + SHOWNAME + "',getdate(),'' "
+ "from op_airn_RECEIPT where GID=(select Masterno from OP_AIRN where BSNO='" + OLDZD . BSNO + "')"
) ;
}
}
var _ZDBSNO = "" ;
var Mainsaveresult = DoSave ( opstatus , dataall , CargoBody , CargoDelBody , out _ZDBSNO ) ;
if ( Mainsaveresult . Success = = true )
{
//写一个主单取用的日志
var r1 = BasicDataRefDAL . ExecSql ( "insert into op_airn_RECEIPTDO select newid(),GID R_GID,BSNO,FIRSTCODE,RECEIPTNO,RTYPE,ISBAOCANG,ISWMS,'签出使用' RSTATUS,'" + Session [ "SHOWNAME" ] . ToString ( ) + "',getdate(),'' "
+ "from op_airn_RECEIPT where FIRSTCODE+'-'+RECEIPTNO=(select MBLNO from OP_AIRN where BSNO='" + FDBSNO + "')" ) ;
var jsonRespose = new JsonResponse
{
Success = true ,
Message = "" ,
Data = MsOpAirnDAL . GetData ( " B.BSNO='" + FDBSNO + "' " )
} ;
return new ContentResult ( ) { Content = JsonConvert . Serialize ( jsonRespose ) } ;
}
else {
var jsonRespose = new JsonResponse
{
Success = false ,
Message = Mainsaveresult . Message
} ;
return new ContentResult ( ) { Content = JsonConvert . Serialize ( jsonRespose ) } ;
}
}
public ContentResult Delete ( string data )
{
var head = JsonConvert . Deserialize < MsOpAirn > ( data ) ;
head = MsOpAirnDAL . GetData ( "B.BSNO='" + head . BSNO + "'" ) ;
var isfee = MsOpAirnDAL . GetFeeCount ( head . BSNO ) ;
if ( isfee )
{
var jsonRespose = new JsonResponse { Success = false , Message = "此票业务存在费用,请先删除费用才能删除此票业务!" } ;
return new ContentResult ( ) { Content = JsonConvert . Serialize ( jsonRespose ) } ;
}
else {
var BSNO = head . BSNO ;
var modb = new ModelObjectDB ( ) ;
DBResult result = new DBResult ( ) ;
if ( head . BLTYPE = = "国内主单" ) {
result = modb . Delete ( head , "update op_airn_RECEIPT set RSTATUS='入库',OP='" + Convert . ToString ( Session [ "SHOWNAME" ] )
+ "',OPDATE=getdate() where GID=(select Masterno from OP_AIRN where BSNO='" + head . BSNO + "')"
, "update OP_AIRN set MBLNO='' where BLTYPE='国内分单' and MBLNO='" + head . MBLNO + "'"
) ;
}
if ( head . BLTYPE = = "国内分单" )
{
if ( head . MBLNO ! = "" )
{
result . Success = false ;
result . Message = "已经生成主单,请先删除其主单" ;
}
else {
result = modb . Delete ( head ) ;
}
}
if ( result . Success = = true ) { MsSysBillNoSetDAL . DeleteBsNo ( head . CUSTNO ) ; }
var jsonRespose = new JsonResponse { Success = result . Success , Message = result . Message } ;
return new ContentResult ( ) { Content = JsonConvert . Serialize ( jsonRespose ) } ;
}
}
public ContentResult VoidMain ( string data )
{
var head = JsonConvert . Deserialize < MsOpAirn > ( data ) ;
if ( head . BLTYPE ! = "国内主单" ) {
var jsonRespose = new JsonResponse { Success = false , Message = "只能作废国内主单!" } ;
return new ContentResult ( ) { Content = JsonConvert . Serialize ( jsonRespose ) } ;
}
var isfee = MsOpAirnDAL . GetFeeCount ( head . BSNO ) ;
if ( isfee )
{
var jsonRespose = new JsonResponse { Success = false , Message = "此票业务存在费用,请先删除费用才能作废主单!" } ;
return new ContentResult ( ) { Content = JsonConvert . Serialize ( jsonRespose ) } ;
}
else
{
var BSNO = head . BSNO ;
//var modb = new ModelObjectRepository();
//DBResult result = new DBResult();
head . OTFEE = "0" ;
head . OTFEE1 = "" ;
head . OTFEE1 = "0" ;
head . OTFEE2 = "" ;
head . OTFEE2 = "0" ;
head . OTFEE3 = "" ;
head . OTFEE3 = "0" ;
head . OTFEE4 = "" ;
head . OTFEE4 = "0" ;
head . OTFEE5 = "" ;
head . OTFEE5 = "0" ;
head . OTFEE6 = "" ;
head . OTFEE6 = "0" ;
head . OTFEE7 = "" ;
head . OTFEE7 = "0" ;
head . OTFEE8 = "" ;
head . OTFEE8 = "0" ;
head . PFREIGHT = "0" ;
head . CFREIGHT = "0" ;
head . PVALUEFEE = "0" ;
head . CVALUEFEE = "0" ;
head . PCARRIEROT = "0" ;
head . CCARRIEROT = "0" ;
head . POTFREIGHT = "0" ;
head . COTFREIGHT = "0" ;
head . PTOTAL = "0" ;
head . CTOTAL = "0" ;
head . DbOperationType = DbOperationType . DbotUpd ;
head . ModelUIStatus = "E" ;
var modb = new ModelObjectRepository ( ) ;
DBResult result = modb . Save ( head ) ;
if ( head . BLTYPE = = "国内主单" )
{
//MsOpAirnDAL.ExecSql(" update op_airn_RECEIPT set RSTATUS='入库',OP='" + Convert.ToString(Session["SHOWNAME"]) + "',OPDATE=getdate() where GID=(select Masterno from OP_AIRN where BSNO='" + headData.BSNO + "') ");
MsOpAirnDAL . ExecSql ( " update op_airn_RECEIPT set RSTATUS='作废',OP='" + Convert . ToString ( Session [ "SHOWNAME" ] )
+ "',OPDATE=getdate() where GID=(select Masterno from OP_AIRN where BSNO='" + head . BSNO + "')"
//+ " update OP_AIRN set ISVOID=1 where BSNO='" + head.BSNO + "' "
+ " update OP_AIRN set MBLNO='' where BLTYPE='国内分单' and MBLNO='" + head . MBLNO + "'" ) ;
var r1 = BasicDataRefDAL . ExecSql ( "insert into op_airn_RECEIPTDO select newid(),GID R_GID,BSNO,FIRSTCODE,RECEIPTNO,RTYPE,ISBAOCANG,ISWMS,'作废' RSTATUS,'" + Session [ "SHOWNAME" ] . ToString ( ) + "',getdate(),'' "
+ "from op_airn_RECEIPT where FIRSTCODE+'-'+RECEIPTNO='" + head . MBLNO + "' " ) ;
}
var jsonRespose = new JsonResponse { Success = true , Message = "" } ;
return new ContentResult ( ) { Content = JsonConvert . Serialize ( jsonRespose ) } ;
}
}
//进行领用和取消领用
public ContentResult DoLY ( string RSTATUS , string USERNAME , string LYBody )
{
var _LYBodyList = JsonConvert . Deserialize < List < MsOpAirn_RECEIPTmb > > ( LYBody ) ;
var GIDList = "" ;
foreach ( var _R in _LYBodyList ) {
if ( GIDList = = "" )
{
GIDList = "'" + _R . GID + "'" ;
}
else {
GIDList = GIDList + ",'" + _R . GID + "'" ;
}
}
var LYBodyList = MsOpAirn_RECEIPTWMSDAL . GetBodyList ( "R.GID in(" + GIDList + ")" ) ;
var LYBodyListDEL = new List < MsOpAirn_RECEIPTmb > ( ) ;
var DoList = new List < MsOpAirn_RECEIPTDOmb > ( ) ;
var DoListDEL = new List < MsOpAirn_RECEIPTDOmb > ( ) ;
var BSNO = "" ;
foreach ( var _R in LYBodyList ) {
if ( RSTATUS = = "领用" & & _R . RSTATUS = = "入库" ) {
_R . RSTATUS = "领用" ;
}
else if ( RSTATUS = = "取消领用" & & _R . RSTATUS = = "领用" ) {
_R . RSTATUS = "入库" ;
}
else if ( RSTATUS = = "退单" & & _R . RSTATUS = = "入库" )
{
_R . RSTATUS = "退单" ;
}
else if ( RSTATUS = = "取消退单" & & _R . RSTATUS = = "退单" )
{
_R . RSTATUS = "入库" ;
}
else
{
continue ;
}
_R . OP = USERNAME ;
_R . OPDATE = DateTime . Now . ToString ( "yyyy-MM-dd HH:mm:ss" ) ;
BSNO = _R . BSNO ;
var _d = new MsOpAirn_RECEIPTDOmb ( ) ;
_d . GID = Guid . NewGuid ( ) . ToString ( ) ;
_d . R_GID = _R . GID ;
_d . BSNO = "" ;
_d . FIRSTCODE = _R . FIRSTCODE ;
_d . RECEIPTNO = _R . RECEIPTNO ;
_d . RTYPE = _R . RTYPE ;
_d . ISBAOCANG = _R . ISBAOCANG ;
_d . ISWMS = _R . ISWMS ;
_d . RSTATUS = RSTATUS ;
_d . OP = USERNAME ;
_d . OPDATE = _R . OPDATE ;
_d . REMARK = "" ;
DoList . Add ( _d ) ;
}
var modb = new ModelObjectRepository ( ) ;
DBResult result = modb . SaveComm ( "BSNO" , BSNO ,
ModelObjectConvert < MsOpAirn_RECEIPTmb > . ToModelObjectList ( LYBodyList ) ,
ModelObjectConvert < MsOpAirn_RECEIPTmb > . ToModelObjectList ( LYBodyListDEL )
) ;
result = modb . SaveComm ( "BSNO" , BSNO ,
ModelObjectConvert < MsOpAirn_RECEIPTDOmb > . ToModelObjectList ( DoList ) ,
ModelObjectConvert < MsOpAirn_RECEIPTDOmb > . ToModelObjectList ( DoListDEL )
) ;
//return result;
var jsonRespose = new JsonResponse { Success = result . Success , Message = result . Message } ;
return new ContentResult ( ) { Content = JsonConvert . Serialize ( jsonRespose ) } ;
}
#region 提单信息
public ContentResult GetBillList ( int start , int limit , string sort , string condition )
{
var dataList = MsOpAirnDAL . GetBillList ( 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 } ;
}
public ContentResult GetBillData ( string handle , string condition )
{
MsOpAireBill head = null ;
if ( handle = = "edit" )
{
head = MsOpAirnDAL . GetBillData ( condition ) ;
}
if ( head = = null )
{
head = new MsOpAireBill ( ) ;
head . INPUTBY = Convert . ToString ( Session [ "SHOWNAME" ] ) ;
}
var json = JsonConvert . Serialize (
new { Success = true , Message = "查询成功" , data = head } ) ;
return new ContentResult ( ) { Content = json } ;
}
public ContentResult BillSave ( string opstatus , string data , string body )
{
var headData = JsonConvert . Deserialize < MsOpAireBill > ( data ) ;
if ( opstatus = = "add" )
{
headData . INPUTBY = Convert . ToString ( Session [ "SHOWNAME" ] ) ;
headData . AS_ID = Guid . NewGuid ( ) . ToString ( ) ;
headData . DbOperationType = DbOperationType . DbotIns ;
}
else if ( opstatus = = "edit" )
{
headData . DbOperationType = DbOperationType . DbotUpd ;
headData . ModelUIStatus = "E" ;
}
else
{
headData . DbOperationType = DbOperationType . DbotDel ;
}
if ( headData . ETA = = "" ) headData . ETA = null ;
if ( headData . ETD = = "" ) headData . ETD = null ;
if ( headData . ISSUEDATE = = "" ) headData . ISSUEDATE = null ;
var modb = new ModelObjectDB ( ) ;
var AS_ID = headData . AS_ID ;
DBResult result = modb . Save ( headData ) ;
//if (result.Success == true)
//{
// result = MsOpSeaeDAL.SaveBillDetail(AS_ID, bodyList, Convert.ToString(Session["USERID"]));
//}
var jsonRespose = new JsonResponse
{
Success = result . Success ,
Message = result . Message ,
Data = MsOpAirnDAL . GetBillData ( "AS_ID='" + AS_ID + "'" )
} ;
return new ContentResult ( ) { Content = JsonConvert . Serialize ( jsonRespose ) } ;
}
public ContentResult BillDelete ( string data )
{
var head = JsonConvert . Deserialize < MsOpAireBill > ( data ) ;
var modb = new ModelObjectDB ( ) ;
var AS_ID = head . AS_ID ;
DBResult result = modb . Delete ( head ) ;
//if (result.Success == true) { MsOpSeaeDAL.DeleteDetail(AS_ID); }
var jsonRespose = new JsonResponse { Success = result . Success , Message = result . Message } ;
return new ContentResult ( ) { Content = JsonConvert . Serialize ( jsonRespose ) } ;
}
# endregion
#region 生成报关信息
public ContentResult SaveBG ( string data , string data2 )
{
var aaa = "" ;
var head = JsonConvert . Deserialize < MsOpAirn > ( data . Replace ( "}" , "," ) + data2 . Replace ( "{" , "" ) ) ;
var headData = new MsOpApply ( ) ;
var isuse = MsBaseInfoDAL . GetRuleUse ( "委托编号" , "4" ) ;
if ( isuse )
{
headData . CUSTNO = MsOpApplyDAL . getCodeRule ( "委托编号" , "CUSTNO" , headData . BSDATE . ToString ( ) . Trim ( ) , headData . ACCDATE . ToString ( ) . Trim ( ) , Convert . ToString ( Session [ "USERID" ] ) , Convert . ToString ( Session [ "COMPANYID" ] ) ) ;
}
if ( headData . CORPID = = "" | | headData . CORPID = = null )
{
headData . CORPID = Convert . ToString ( Session [ "COMPANYID" ] ) ;
}
headData . MASTERNO = head . BSNO ;
headData . INPUTBY = Convert . ToString ( Session [ "SHOWNAME" ] ) ;
headData . BSDATE = DateTime . Now ;
headData . DbOperationType = DbOperationType . DbotIns ;
headData . CUSTOMERNAME = head . CUSTOMERNAME ;
headData . MBLNO = head . MBLNO ;
headData . VESSEL = head . VESSEL ;
headData . BSSOURCE = head . BSSOURCE ;
headData . BSSOURCEDETAIL = head . BSSOURCEDETAIL ;
headData . ETD = head . ETD ;
headData . ETA = head . ETA ;
headData . PKGS = head . PKGS ;
headData . KGS = head . KGS ;
headData . CBM = head . CBM ;
headData . PORTLOAD = head . PORTLOAD ;
headData . PORTDISCHARGE = head . PORTDISCHARGE ;
headData . SALE = head . SALE ;
headData . SALEDEPT = head . SALEDEPT ;
headData . BSTYPE = "3" ;
headData . CUSTOMNO = head . CUSTOMNO ;
headData . CUSTOMDATE = head . CUSTOMDATE ;
headData . INSPECTIONNO = head . INSPECTIONNO ;
headData . INSPECTIONDATE = head . INSPECTIONDATE ;
headData . ENTERP = head . ENTERP ;
headData . ENTERPID = head . ENTERPID ;
var modb = new ModelObjectDB ( ) ;
DBResult result = modb . Save ( headData ) ;
if ( result . Success = = true )
{
result . Success = true ;
result . Message = "生成成功" ;
}
else
{
result . Success = false ;
result . Message = "生成过程发生错误" ;
}
var jsonRespose = new JsonResponse
{
Success = result . Success ,
Message = result . Message
} ;
return new ContentResult ( ) { Content = JsonConvert . Serialize ( jsonRespose ) } ;
}
# endregion
#region 商品信息
public ContentResult GetCargoList ( string condition )
{
var dataList = MsOpAirnDAL . GetCargoList ( condition ) ;
//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 } ;
}
# endregion
}
}