using System; using System.Collections.Generic; using System.Linq; using System.Web.Mvc; using DSWeb.Areas.TruckMng.Models.Comm; using DSWeb.Areas.CommMng.DAL; using DSWeb.Areas.Import.DAL.CW; using DSWeb.Areas.Import.Models.CWAdvancePayment; using DSWeb.TruckMng.Comm.Cookie; using DSWeb.TruckMng.Helper; using DSWeb.TruckMng.Helper.Repository; using DSWeb.Areas.TruckMng.DAL.Comm; //引用chfee的module using DSWeb.Areas.Import.Models.CwVouchers; using DSWeb.Areas.Import.Models.CwVouitems; using DSWeb.Areas.Import.Models.CwDesign; using DSWeb.Areas.Import.Models.CWAccitems; using DSWeb.Areas.Import.DAL.CwVouchersDAL; using HcUtility.Comm; using HcUtility.Core; using Microsoft.Practices.EnterpriseLibrary.Data; using System.Text; using System.Data; using DSWeb.EntityDA; using DSWeb.SoftMng.Filter; namespace DSWeb.Areas.Import.Controllers { [JsonRequestBehavior] public class ImportAdvancePaymentController : Controller { // // GET: /Import/create public ActionResult Index() { return View(); } // // GET: /Import/create/Edit public ActionResult Edit() { return View(); } [SqlKeyWordsFilter(Type = "Action")]//sql 防注入过滤器 public ContentResult GetDataList_Import(int start, int limit, string sort, string condition) { var dataList = CWAdvancePaymentDAL.GetDataList_Import(condition); 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) { CWAdvancePayment head = null; if (handle == "edit") { var list = CWAdvancePaymentDAL.GetDataList(condition, Convert.ToString(Session["USERID"]).Trim()); if (list.Count > 0) head = list[0]; } if (head == null) { head = new CWAdvancePayment(); } var json = JsonConvert.Serialize( new { Success = true, Message = "查询成功", data = head }); return new ContentResult() { Content = json }; } [SqlKeyWordsFilter(Type = "Action")]//sql 防注入过滤器 public ContentResult GetBodyList(string condition) { var dataList = CWAdvancePaymentDAL.GetBodyList(condition); var json = JsonConvert.Serialize(new { Success = true, Message = "查询成功", totalCount = dataList.Count, data = dataList.ToList() }); return new ContentResult() { Content = json }; } public ContentResult Save(string opstatus, string data) { var head = JsonConvert.Deserialize(data); if (opstatus == "add") { head.DbOperationType = DbOperationType.DbotIns; head.ModelUIStatus = "I"; head.GID = PubSysDAL.GetBillNo("0204"); head.LINKGID = head.GID; head.BILLNO = head.GID; /*自动填写接单审单人id headData.UserCode = CookieConfig.GetCookie_UserCode(Request); headData.UserName = CookieConfig.GetCookie_UserName(Request); headData.OrgCode = CookieConfig.GetCookie_OrgCode(Request); headData.OrgName = CookieConfig.GetCookie_OrgName(Request);*/ //headData.LrDate = DateTime.Now; } else if (opstatus == "edit") { head.DbOperationType = DbOperationType.DbotUpd; head.ModelUIStatus = "E"; } else { head.DbOperationType = DbOperationType.DbotDel; } var modb = new ModelObjectRepository(); DBResult result = modb.Save(head); //刷新父窗口上的父节点 var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message, Data = CWAdvancePaymentDAL.GetData(" GID='" + head.GID + "'", Convert.ToString(Session["USERID"]).Trim()) }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } public ContentResult SaveBody ( string YSYFNO, string Body, string DelBody ) { var head = CWAdvancePaymentDAL.GetData(" billno='" + YSYFNO + "' ", Convert.ToString(Session["USERID"]).Trim()); var BodyList = JsonConvert.Deserialize>(Body); var BodyDelList = JsonConvert.Deserialize>(DelBody); var modb = new ModelObjectRepository(); DBResult result = modb.SaveComm("LINKGID", YSYFNO, ModelObjectConvert.ToModelObjectList(BodyList), ModelObjectConvert.ToModelObjectList(BodyDelList) ); //刷新父窗口上的父节点 var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message, //Data = XXHDAL.GetData("M.ContractNo='" + head.ContractNo + "'") }; //重新计算剩余金额 CWAdvancePaymentDAL.ResetDoamount(YSYFNO); return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } public ContentResult Delete(string data, string USERID) { var head = JsonConvert.Deserialize(data); var modb = new ModelObjectDB(); DBResult result = modb.Delete(head, USERID,true , "delete from SalesAdvancePay_state where AD_BILLNO='" + head.BILLNO + "'"); var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; /* var head = JsonConvert.Deserialize(data); var _Bodylist= CWAdvancePaymentDAL.GetBodyList(head.BILLNO); if (_Bodylist.Count() > 0) { var jsonRespose1 = new JsonResponse { Success = false, Message = "此预收已经被核销,不能删除" }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose1) }; } else { var _Statelist = ImportSalesDAL.GetSalesStateDataList("AD_BILLNO='" + head.BILLNO + "'"); if (_Statelist.Count() > 0) { var jsonRespose1 = new JsonResponse { Success = false, Message = "此预收已经进行认款,不能删除" }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose1) }; } else { var modb = new ModelObjectDB(); DBResult result = modb.Delete(head, USERID, true); var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } }*/ } #region 生成凭证 public ContentResult CreateVoucher(string VoucherDate, string UsdExrate, string User, string useRate, string data) { var modb = new ModelObjectDB(); DBResult result = CreateDCVoucher(VoucherDate, UsdExrate, User, useRate, data); var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } public static DBResult CreateDCVoucher(string VoucherDate, string UsdExrate, string User, string useRate, string fdata) { var head = JsonConvert.Deserialize(fdata); var result = new DBResult(); result.Success = true; Decimal amt =0; var VouitemsList = new List(); var VouOrdNo = Guid.NewGuid().ToString(); CwDesign CWDesign = CwVouchersDAL.GetCwDesign(); if (CWDesign.DR == "" || CWDesign.DR == null || (CWDesign.CR == "" || CWDesign.CR == null) || CWDesign.DRFC == "" || CWDesign.DRFC == null || (CWDesign.CRFC == "" || CWDesign.CRFC == null)) { result.Success = false; result.Message = "请先设置帐套信息,才能生成凭证!"; } else { decimal DebitAmt = Convert.ToDecimal(0.00); decimal CreditAmt = Convert.ToDecimal(0.00); int itemsno = 1; CwVouchers Voucher = new CwVouchers(); var BankAccitems = CwVouchersDAL.GetCwAccitems(head.BANKACCID); if (BankAccitems.ACCID == "" || BankAccitems.ACCID == null) { result.Success = false; result.Message = "单号:银行没有对应的财务科目!"; } CwVouitems bankdata = new CwVouitems(); bankdata.ACCID = BankAccitems.ACCID; bankdata.ACCNAME = BankAccitems.ACCNAME; bankdata.ORDNO = VouOrdNo; bankdata.BLNO = head.BILLNO; bankdata.EXPLAN = "预收付单号:" + head.BILLNO; bankdata.ITEMNO = itemsno; bankdata.ISSYS = true; if (BankAccitems.DC == "借") { bankdata.DC = "D"; } else if (BankAccitems.DC == "贷") { bankdata.DC = "C"; } if (head.FEETYPE == "1") { if (head.CURRENCY== "RMB") { bankdata.AMTDR = Convert.ToDecimal(head.AMOUNT); bankdata.AMTCR = Convert.ToDecimal(0.00); bankdata.FCYCR = Convert.ToDecimal(0.00); bankdata.FCYDR = Convert.ToDecimal(0.00); bankdata.FCYEXRATE = Convert.ToDecimal(1); bankdata.FCYNO = "RMB"; DebitAmt = DebitAmt + Convert.ToDecimal(head.AMOUNT); } else { if (useRate == "1") { amt = Convert.ToDecimal(head.AMOUNT) * Convert.ToDecimal(head.EXCHANGERATE); } else { amt = Convert.ToDecimal(head.AMOUNT) * Convert.ToDecimal(UsdExrate); }; bankdata.AMTDR = Convert.ToDecimal((amt).ToString("0.00")); bankdata.AMTCR = Convert.ToDecimal(0.00); bankdata.FCYCR = Convert.ToDecimal(0.00); bankdata.FCYDR = Convert.ToDecimal(head.AMOUNT); bankdata.FCYEXRATE = Convert.ToDecimal(head.EXCHANGERATE); bankdata.FCYNO = "USD"; DebitAmt = DebitAmt + Convert.ToDecimal((amt).ToString("0.00")); } } else if (head.FEETYPE == "2") { if (head.CURRENCY == "RMB") { bankdata.AMTDR = Convert.ToDecimal(0.00); bankdata.AMTCR = Convert.ToDecimal(head.AMOUNT); bankdata.FCYCR = Convert.ToDecimal(0.00); bankdata.FCYDR = Convert.ToDecimal(0.00); bankdata.FCYEXRATE = Convert.ToDecimal(1); bankdata.FCYNO = "RMB"; CreditAmt = CreditAmt + Convert.ToDecimal(head.AMOUNT); } else { if (useRate == "1") { amt = Convert.ToDecimal(head.AMOUNT) * Convert.ToDecimal(head.EXCHANGERATE); } else { amt = Convert.ToDecimal(head.AMOUNT) * Convert.ToDecimal(UsdExrate); }; bankdata.AMTDR = Convert.ToDecimal(0.00); bankdata.AMTCR = Convert.ToDecimal((amt).ToString("0.00")); bankdata.FCYCR = Convert.ToDecimal(head.AMOUNT); bankdata.FCYDR = Convert.ToDecimal(0.00); bankdata.FCYEXRATE = Convert.ToDecimal(head.EXCHANGERATE); bankdata.FCYNO = "USD"; CreditAmt = CreditAmt + Convert.ToDecimal((amt).ToString("0.00")); } } itemsno = itemsno + 1; VouitemsList.Add(bankdata); var custaccid=""; if (head.FEETYPE == "1") { if (head.CURRENCY == "RMB") { custaccid=CWDesign.DR; } else { custaccid=CWDesign.DRFC; } } else if (head.FEETYPE == "2") { if (head.CURRENCY == "RMB") { custaccid=CWDesign.CR; } else { custaccid=CWDesign.CRFC; } } var Accitems = CwVouchersDAL.GetCwAccitems(custaccid); if (Accitems.ACCID == "") { result.Success = false; result.Message = "单号:" + head.BILLNO + "费用项目没有对应的财务科目!"; } var CustAccid=CwVouchersDAL.GetCustAccID(head.CUSTOMERNAME); CwVouitems data = new CwVouitems(); data.ACCID = Accitems.ACCID; data.ACCNAME = Accitems.ACCNAME; data.ORDNO = VouOrdNo; data.BLNO = head.BILLNO; data.EXPLAN = Accitems.ACCNAME; data.ITEMNO = itemsno; data.ISSYS = true; if (Accitems.DC == "借") { data.DC = "D"; } else if (Accitems.DC == "贷") { data.DC = "C"; } if (head.FEETYPE == "2") { if (head.CUSTOMERNAME != "") { if (CustAccid.FAPCODE == "") { result.Success = false; result.Message = "单号:客户没有设置对应的财务代码!"; } else { data.CORPID = CustAccid.FAPCODE; data.CUSTOMERNAME = head.CUSTOMERNAME; } } if (head.CURRENCY == "RMB") { data.AMTDR = Convert.ToDecimal(head.AMOUNT); data.AMTCR = Convert.ToDecimal(0.00); data.FCYCR = Convert.ToDecimal(0.00); data.FCYDR = Convert.ToDecimal(0.00); data.FCYEXRATE = Convert.ToDecimal(1); data.FCYNO = "RMB"; DebitAmt = DebitAmt + Convert.ToDecimal(head.AMOUNT); } else { if (useRate == "1") { amt=Convert.ToDecimal(head.AMOUNT) * Convert.ToDecimal(head.EXCHANGERATE); } else { amt = Convert.ToDecimal(head.AMOUNT) * Convert.ToDecimal(UsdExrate); }; data.AMTDR = Convert.ToDecimal((amt).ToString("0.00")); data.AMTCR = Convert.ToDecimal(0.00); data.FCYCR = Convert.ToDecimal(0.00); data.FCYDR = Convert.ToDecimal(head.AMOUNT); data.FCYEXRATE = Convert.ToDecimal(head.EXCHANGERATE); data.FCYNO = "USD"; DebitAmt = DebitAmt + Convert.ToDecimal((amt).ToString("0.00")); } } else if (head.FEETYPE == "1") { if (head.CUSTOMERNAME != "") { if (CustAccid.FARCODE == "") { result.Success = false; result.Message = "单号:客户没有设置对应的财务代码!"; } else { data.CORPID = CustAccid.FARCODE; data.CUSTOMERNAME = head.CUSTOMERNAME; } } if (head.CURRENCY == "RMB") { data.AMTDR = Convert.ToDecimal(0.00); data.AMTCR = Convert.ToDecimal(head.AMOUNT); data.FCYCR = Convert.ToDecimal(0.00); data.FCYDR = Convert.ToDecimal(0.00); data.FCYEXRATE = Convert.ToDecimal(1); data.FCYNO = "RMB"; CreditAmt = CreditAmt + Convert.ToDecimal(head.AMOUNT); } else { if (useRate == "1") { amt = Convert.ToDecimal(head.AMOUNT) * Convert.ToDecimal(head.EXCHANGERATE); } else { amt = Convert.ToDecimal(head.AMOUNT) * Convert.ToDecimal(UsdExrate); }; data.AMTDR = Convert.ToDecimal(0.00); data.AMTCR = Convert.ToDecimal((amt).ToString("0.00")); data.FCYCR =Convert.ToDecimal(head.AMOUNT); data.FCYDR = Convert.ToDecimal(0.00); data.FCYEXRATE = Convert.ToDecimal(head.EXCHANGERATE); data.FCYNO = "USD"; CreditAmt = CreditAmt + Convert.ToDecimal((amt).ToString("0.00")); } } itemsno = itemsno + 1; VouitemsList.Add(data); Voucher.ORDNO = VouOrdNo; var voudate = Convert.ToDateTime(VoucherDate); Voucher.ACCYEAR = voudate.ToString("yyyy"); Voucher.ACCMONTH = voudate.ToString("MM"); Voucher.PREPARED = User; Voucher.VOUDATE = voudate; Voucher.VKNO = CWDesign.TVW; Voucher.AMTDR = DebitAmt; Voucher.AMTCR = CreditAmt; //帐套设置 T_ALL_DA T_ALL_DA = new T_ALL_DA(); DataSet dsCwDesign = T_ALL_DA.GetAllSQL("SELECT top 1 * from cw_design"); if (dsCwDesign == null) { result.Success = false; result.Message = "没有设置账套信息!"; } Voucher.VOUNO = CwVouchersDAL.getVOUNO(dsCwDesign, Voucher.ACCYEAR, Voucher.ACCMONTH); Voucher.VOUALLNO = Voucher.ACCYEAR + Voucher.ACCMONTH + Voucher.VOUNO; Voucher.ATTACHS = CWDesign.AFFIXNO; Voucher.FCY = ""; Voucher.QTY = "";//是否含有数量科目="";//varchar="";//(1) Voucher.VOUPROP = "";//凭证属性="";//varchar="";//(1) Voucher.CHECKED = "";//审核人="";//varchar="";//(10) Voucher.ENTERED = "";//记账人="";//varchar="";//(10) Voucher.ERRMSG = "";//错误信息="";//varchar="";//(6) Voucher.ISDELETE = false;//是否废除="";//bit="";//Y Voucher.DELETEUSER = "";//废除操作人="";//Varchar(36)="";//Y var strSel = " AND BILLNO='"+head.BILLNO+"'"; if (result.Success) { result = CwVouchersDAL.InsertVoucher(Voucher, VouitemsList, "ch_fee_advance_payment", Voucher.VOUALLNO, strSel, User); } } return result; } #endregion #region 参照部分 #endregion } }