using System ;
using System.Data ;
using System.Linq ;
using System.Web.Mvc ;
using DSWeb.MvcShipping.DAL.MsCtInitialBalanceDAL ;
using DSWeb.MvcShipping.DAL.MsCtBankJournalDAL ;
using DSWeb.MvcShipping.Models.MsCtBankJournal ;
using DSWeb.MvcShipping.Models.MsCwVouchersGl ;
using DSWeb.MvcShipping.Models.MsCwVouitemsGl ;
using DSWeb.MvcShipping.Helper ;
using DSWeb.MvcShipping.Comm.Cookie ;
using HcUtility.Comm ;
using HcUtility.Core ;
using System.Collections.Generic ;
using DSWeb.MvcShipping.DAL.MsBaseInfoDAL ;
using DSWeb.EntityDA ;
using DSWeb.Areas.CommMng.DAL ;
using DSWeb.SoftMng.Filter ;
namespace DSWeb.MvcShipping.Controllers
{
[JsonRequestBehavior]
public class MsCtBankJournalController : Controller
{
public ActionResult Index ( )
{
return View ( ) ;
}
public ActionResult Edit ( )
{
return View ( ) ;
}
#region 查询
[SqlKeyWordsFilter(Type = "Action")] //sql 防注入过滤器
public ContentResult GetDataList ( int start , int limit , string sort , string condition , string condition3 )
{
var dataList = MsCtBankJournalDAL . GetDataList ( condition , condition3 , 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 } ;
}
[SqlKeyWordsFilter(Type = "Action")] //sql 防注入过滤器
public ContentResult GetData ( string handle , string condition )
{
MsCtBankJournal head = null ;
head = MsCtBankJournalDAL . GetData ( condition , Convert . ToString ( Session [ "COMPANYID" ] ) , Convert . ToString ( Session [ "USERID" ] ) ) ;
var json = JsonConvert . Serialize (
new { Success = true , Message = "查询成功" , data = head } ) ;
return new ContentResult ( ) { Content = json } ;
}
[SqlKeyWordsFilter(Type = "Action")] //sql 防注入过滤器
public ContentResult GetDetailList ( string condition )
{
var dataList = MsCtBankJournalDAL . GetDetailList ( condition , Convert . ToString ( Session [ "USERID" ] ) , Convert . ToString ( Session [ "SHOWNAME" ] ) , Convert . ToString ( Session [ "COMPANYID" ] ) ) ;
var json = JsonConvert . Serialize ( new { Success = true , Message = "查询成功" , totalCount = dataList . Count , data = dataList . ToList ( ) } ) ;
return new ContentResult ( ) { Content = json } ;
}
# endregion
#region 返回出纳当前账套和会计期间
[SqlKeyWordsFilter(Type = "Action")] //sql 防注入过滤器
public ContentResult GetInitData ( string isInitial )
{
var strList = MsCtBankJournalDAL . GetInitData ( isInitial , Convert . ToString ( Session [ "COMPANYID" ] ) , Convert . ToString ( Session [ "USERID" ] ) ) ;
if ( strList . Trim ( ) = = "-1" )
{
var json = JsonConvert . Serialize ( new { Success = false , Message = "请先设置对应的出纳账套信息!" , data = "" } ) ;
return new ContentResult ( ) { Content = json } ;
}
else
{
var json = JsonConvert . Serialize ( new { Success = true , Message = "操作成功!" , data = strList } ) ;
return new ContentResult ( ) { Content = json } ;
}
}
# endregion
#region 明细表保存
public ContentResult SaveEdit ( string body ) //, string DelBody, string data_v
{
if ( Convert . ToString ( Session [ "COMPANYID" ] ) . Trim ( ) = = "" | | Convert . ToString ( Session [ "USERID" ] ) . Trim ( ) = = "" | | Convert . ToString ( Session [ "CODENAME" ] ) . Trim ( ) = = "" | | Convert . ToString ( Session [ "SHOWNAME" ] ) . Trim ( ) = = "" | | Convert . ToString ( Session [ "DEPTNAME" ] ) . Trim ( ) = = "" )
{
var jsonRespose2 = new JsonResponse { Success = false , Message = "登录超时,请退出系统重新登录!" } ;
return new ContentResult ( ) { Content = JsonConvert . Serialize ( jsonRespose2 ) } ;
}
/ /
string strACCDATE = BasicDataRefDAL . GetCtACCDATE ( Convert . ToString ( Session [ "USERID" ] ) ) ;
string strCtSTARTGID = BasicDataRefDAL . GetCtSTARTGID ( Convert . ToString ( Session [ "USERID" ] ) ) ;
T_ALL_DA T_ALL_DA = new EntityDA . T_ALL_DA ( ) ;
var bodyList = JsonConvert . Deserialize < List < MsCtBankJournal > > ( body . Replace ( "T00:00:00" , "" ) ) ;
//var DelBodyList = JsonConvert.Deserialize<List<MsCtBankJournal>>(DelBody.Replace("T00:00:00", ""));
var isPost = true ;
var errorstr = "" ;
var sVOUDATE = "" ;
MsCtBankJournal headRowLS = new MsCtBankJournal ( ) ;
/ /
if ( isPost )
{
//删除列表中的多余数据
//if (DelBodyList != null)
//{
// foreach (var enumValue in DelBodyList)
// {
// MsCtBankJournalDAL.DeleteDetail(enumValue, Convert.ToString(Session["COMPANYID"]), Convert.ToString(Session["USERID"]));
// }
//}
//添加、修改数据
DBResult result = new DBResult ( ) ;
if ( bodyList ! = null )
{
foreach ( var enumValue in bodyList )
{
MsCtBankJournal headRow = new MsCtBankJournal ( ) ;
headRowLS = headRow ;
#region 默认值
headRow . ISINITIAL = enumValue . ISINITIAL ; //是否期初
headRow . ACCGID = enumValue . ACCGID = = null ? "" : enumValue . ACCGID . ToString ( ) . Trim ( ) ; //科目GID
headRow . FCYNO = enumValue . FCYNO = = null ? "" : enumValue . FCYNO . ToString ( ) . Trim ( ) ; //外币编号usd
headRow . VOUDATE = enumValue . VOUDATE ; //凭证日期
sVOUDATE = headRow . VOUDATE . ToString ( ) ;
string sMonth = headRow . VOUDATE . Month . ToString ( ) ;
if ( sMonth . Length = = 1 )
{
sMonth = "0" + sMonth ;
}
int iITEMNO = int . Parse ( T_ALL_DA . GetStrSQL ( "iITEMNO" , "select isnull((select top 1 isnull(ITEMNO,0) as iITEMNO from ct_bank_journal where STARTGID='" + strCtSTARTGID + "' and VOUDATE='" + sVOUDATE + "' order by VOUDATE desc,convert(decimal(10),ITEMNO) desc),0) as iITEMNO" ) ) ;
headRow . ITEMNO = iITEMNO + 1 ; //当日序号
headRow . VGID = enumValue . VGID = = null ? "" : enumValue . VGID . ToString ( ) . Trim ( ) ; //凭证明细GID
headRow . VKNO = enumValue . VKNO = = null ? "" : enumValue . VKNO . ToString ( ) . Trim ( ) ; //凭证字
headRow . VOUNO = enumValue . VOUNO = = null ? "" : enumValue . VOUNO . ToString ( ) . Trim ( ) ; //凭证号
headRow . FENTRYID = enumValue . FENTRYID ; //分录号
headRow . ACCDATE = enumValue . ACCDATE = = null ? "" : enumValue . ACCDATE . ToString ( ) . Trim ( ) ; //会计期间
if ( headRow . ISINITIAL )
{
headRow . ACCDATE = headRow . VOUDATE . Year + "-" + sMonth ; //会计期间
}
headRow . SETTLETYPE = enumValue . SETTLETYPE ; //结算方式
headRow . BILLNO = enumValue . BILLNO = = null ? "" : enumValue . BILLNO . ToString ( ) . Trim ( ) ; //结算号
headRow . SVOUDATE = enumValue . SVOUDATE ; //结算日期
headRow . DC = enumValue . DC = = null ? "" : enumValue . DC . ToString ( ) . Trim ( ) ; //余额方向
headRow . DR = enumValue . DR ; //原币借方金额(互斥)
headRow . CR = enumValue . CR ; //原币贷方金额(互斥)
headRow . FCYEXRATE = enumValue . FCYEXRATE ; //汇率
headRow . QTYDR = Math . Round ( ( headRow . DR * headRow . FCYEXRATE ) , 2 , MidpointRounding . AwayFromZero ) ; //折合本位币借方
headRow . QTYCR = Math . Round ( ( headRow . CR * headRow . FCYEXRATE ) , 2 , MidpointRounding . AwayFromZero ) ; //折合本位币贷方
headRow . BLC = 0 ; //原币余额
headRow . EXPLAN = enumValue . EXPLAN = = null ? "" : enumValue . EXPLAN . ToString ( ) . Trim ( ) ; //摘要,规则生成
headRow . ENTERED = enumValue . ENTERED = = null ? "" : enumValue . ENTERED . ToString ( ) . Trim ( ) ; //经手人
headRow . CHECKINGGID = "" ; //对账GID
headRow . STARTGID = strCtSTARTGID ; //账套启用GID
headRow . CORPID = Convert . ToString ( Session [ "COMPANYID" ] ) ; //分公司GID
headRow . CREATEUSER = Convert . ToString ( Session [ "USERID" ] ) ; //制单人GID
headRow . CREATETIME = DateTime . Now ; //创建时间
headRow . MODIFIEDUSER = Convert . ToString ( Session [ "USERID" ] ) ; //最后一次更改操作人GID
headRow . MODIFIEDTIME = DateTime . Now ; //最后一次更改操作时间
# endregion
if ( enumValue . GID . ToString ( ) . Trim ( ) = = "*" ) //"add"
{
headRow . GID = Guid . NewGuid ( ) . ToString ( ) ;
headRow . DbOperationType = DbOperationType . DbotIns ;
}
else //"edit"
{
headRow . GID = enumValue . GID . ToString ( ) . Trim ( ) ; //唯一编码
headRow . DbOperationType = DbOperationType . DbotUpd ;
headRow . ModelUIStatus = "E" ;
}
var modb = new ModelObjectDB ( ) ;
result = modb . Save ( headRow ) ;
if ( result . Message . ToString ( ) . IndexOf ( "插入重复键" ) > - 1 )
{
errorstr + = "重复数据不再重复插入!" ;
}
if ( result . Success )
{
//更新期初余额
if ( headRow . ISINITIAL )
{
MsCtBankJournalDAL . onINITIAL ( headRow , Convert . ToString ( Session [ "COMPANYID" ] ) , Convert . ToString ( Session [ "USERID" ] ) ) ;
}
}
}
//更新期初余额
if ( ! headRowLS . ISINITIAL )
{
#region 插入更新余额
//插入更新余额
MsCtBankJournalDAL . onBLC ( headRowLS , true , Convert . ToString ( Session [ "COMPANYID" ] ) , Convert . ToString ( Session [ "USERID" ] ) ) ;
# endregion
#region 插入更新总账表
string lsSql = "SELECT ACCGID,FCYNO,VOUDATE"
+ " from ct_bank_journal WITH(NOLOCK)"
// + " where STARTGID='" + headRowLS.STARTGID + "' and (CHECKINGGID='' or CHECKINGGID is null) "
+ " where STARTGID='" + headRowLS . STARTGID + "' "
+ " and ACCGID='" + headRowLS . ACCGID . ToString ( ) + "' and FCYNO='" + headRowLS . FCYNO . ToString ( ) + "'"
+ " and ACCDATE>='" + headRowLS . VOUDATE . ToString ( "yyyy-MM" ) + "'"
+ " group by ACCGID,FCYNO,VOUDATE order by ACCGID,FCYNO,VOUDATE" ;
DataSet ds3 = T_ALL_DA . GetAllSQL ( lsSql ) ;
if ( ds3 ! = null )
{
if ( ds3 . Tables [ 0 ] . Rows . Count > 0 )
{
foreach ( DataRow dr in ds3 . Tables [ 0 ] . Rows )
{
MsCtBankJournal headRow = new MsCtBankJournal ( ) ;
headRow . ACCGID = dr [ "ACCGID" ] . ToString ( ) ; //科目GID
headRow . FCYNO = dr [ "FCYNO" ] . ToString ( ) ; //外币编号usd
headRow . VOUDATE = DateTime . Parse ( dr [ "VOUDATE" ] . ToString ( ) ) ; //凭证日期
//插入更新总账表
MsCtBankJournalDAL . onCtGenlegAccitems ( headRow , Convert . ToString ( Session [ "COMPANYID" ] ) , Convert . ToString ( Session [ "USERID" ] ) ) ;
}
}
}
# endregion
}
}
var jsonRespose = new JsonResponse
{
Success = result . Success ,
Message = result . Message ,
Data = MsCtBankJournalDAL . GetData ( "CONVERT(varchar(100), VOUDATE, 23)='" + sVOUDATE + "'" , Convert . ToString ( Session [ "COMPANYID" ] ) , Convert . ToString ( Session [ "USERID" ] ) )
} ;
return new ContentResult ( ) { Content = JsonConvert . Serialize ( jsonRespose ) } ;
}
else
{
var jsonRespose = new JsonResponse { Success = false , Message = errorstr + "重复,不允许保存!" } ;
return new ContentResult ( ) { Content = JsonConvert . Serialize ( jsonRespose ) } ;
}
}
# endregion
#region 删除
public ContentResult Delete ( string gids )
{
if ( Convert . ToString ( Session [ "COMPANYID" ] ) . Trim ( ) = = "" | | Convert . ToString ( Session [ "USERID" ] ) . Trim ( ) = = "" | | Convert . ToString ( Session [ "CODENAME" ] ) . Trim ( ) = = "" | | Convert . ToString ( Session [ "SHOWNAME" ] ) . Trim ( ) = = "" | | Convert . ToString ( Session [ "DEPTNAME" ] ) . Trim ( ) = = "" )
{
var jsonRespose2 = new JsonResponse { Success = false , Message = "登录超时,请退出系统重新登录!" } ;
return new ContentResult ( ) { Content = JsonConvert . Serialize ( jsonRespose2 ) } ;
}
/ /
DBResult result = MsCtBankJournalDAL . Delete ( gids , Convert . ToString ( Session [ "COMPANYID" ] ) , Convert . ToString ( Session [ "USERID" ] ) ) ;
var jsonRespose = new JsonResponse { Success = result . Success , Message = result . Message } ;
return new ContentResult ( ) { Content = JsonConvert . Serialize ( jsonRespose ) } ;
}
# endregion
#region 导入
//判断是否有重复数据
[SqlKeyWordsFilter(Type = "Action")] //sql 防注入过滤器
public ContentResult isImportExcelGID ( string condition )
{
DBResult result = MsCtBankJournalDAL . isImportExcelGID ( condition , Convert . ToString ( Session [ "COMPANYID" ] ) , Convert . ToString ( Session [ "USERID" ] ) ) ;
var jsonRespose = new JsonResponse { Success = result . Success , Message = result . Message } ;
return new ContentResult ( ) { Content = JsonConvert . Serialize ( jsonRespose ) } ;
}
//获取符合条件的所有GID的字符串
[SqlKeyWordsFilter(Type = "Action")] //sql 防注入过滤器
public ContentResult onImportExcelData ( string condition , string sTYPE )
{
if ( Convert . ToString ( Session [ "COMPANYID" ] ) . Trim ( ) = = "" | | Convert . ToString ( Session [ "USERID" ] ) . Trim ( ) = = "" | | Convert . ToString ( Session [ "CODENAME" ] ) . Trim ( ) = = "" | | Convert . ToString ( Session [ "SHOWNAME" ] ) . Trim ( ) = = "" | | Convert . ToString ( Session [ "DEPTNAME" ] ) . Trim ( ) = = "" )
{
var jsonRespose2 = new JsonResponse { Success = false , Message = "登录超时,请退出系统重新登录!" } ;
return new ContentResult ( ) { Content = JsonConvert . Serialize ( jsonRespose2 ) } ;
}
/ /
DBResult result = MsCtBankJournalDAL . onImportExcelData ( condition , sTYPE , Convert . ToString ( Session [ "COMPANYID" ] ) , Convert . ToString ( Session [ "USERID" ] ) ) ;
var jsonRespose = new JsonResponse { Success = result . Success , Message = result . Message } ;
return new ContentResult ( ) { Content = JsonConvert . Serialize ( jsonRespose ) } ;
}
//获取符合条件的所有GID的字符串
[SqlKeyWordsFilter(Type = "Action")] //sql 防注入过滤器
public ContentResult onImportExcelData2 ( string condition )
{
if ( Convert . ToString ( Session [ "COMPANYID" ] ) . Trim ( ) = = "" | | Convert . ToString ( Session [ "USERID" ] ) . Trim ( ) = = "" | | Convert . ToString ( Session [ "CODENAME" ] ) . Trim ( ) = = "" | | Convert . ToString ( Session [ "SHOWNAME" ] ) . Trim ( ) = = "" | | Convert . ToString ( Session [ "DEPTNAME" ] ) . Trim ( ) = = "" )
{
var jsonRespose2 = new JsonResponse { Success = false , Message = "登录超时,请退出系统重新登录!" } ;
return new ContentResult ( ) { Content = JsonConvert . Serialize ( jsonRespose2 ) } ;
}
/ /
DBResult result = MsCtBankJournalDAL . onImportExcelData2 ( condition , Convert . ToString ( Session [ "COMPANYID" ] ) , Convert . ToString ( Session [ "USERID" ] ) ) ;
var jsonRespose = new JsonResponse { Success = result . Success , Message = result . Message } ;
return new ContentResult ( ) { Content = JsonConvert . Serialize ( jsonRespose ) } ;
}
//判断是否有重复数据
[SqlKeyWordsFilter(Type = "Action")] //sql 防注入过滤器
public ContentResult isImportExcelGID2 ( string gids )
{
DBResult result = MsCtBankJournalDAL . isImportExcelGID2 ( gids , Convert . ToString ( Session [ "COMPANYID" ] ) , Convert . ToString ( Session [ "USERID" ] ) ) ;
var jsonRespose = new JsonResponse { Success = result . Success , Message = result . Message } ;
return new ContentResult ( ) { Content = JsonConvert . Serialize ( jsonRespose ) } ;
}
//按条导入或覆盖数据
[SqlKeyWordsFilter(Type = "Action")] //sql 防注入过滤器
public ContentResult onImportExcelGID2 ( string gids , string sTYPE , string sCtGID )
{
DBResult result = MsCtBankJournalDAL . onImportExcelGID2 ( gids , sTYPE , sCtGID , Convert . ToString ( Session [ "COMPANYID" ] ) , Convert . ToString ( Session [ "USERID" ] ) ) ;
var jsonRespose = new JsonResponse { Success = result . Success , Message = result . Message } ;
return new ContentResult ( ) { Content = JsonConvert . Serialize ( jsonRespose ) } ;
}
# endregion
}
}