You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
DS7/DSWeb/Areas/Account/Controllers/Chfee_invoiceapplicationCon...

1113 lines
52 KiB
C#

3 years ago
using System;
using System.Linq;
using System.Web.Mvc;
using DSWeb.Areas.Account.DAL.Chfee_Invoiceapplication;
using DSWeb.Areas.Account.Models.Chfee_Invoiceapplication;
using DSWeb.Areas.Account.Models.Chfee_do_detail;
using DSWeb.Areas.Account.Models.BillChfeeDetail;
using DSWeb.MvcShipping.Helper;
using DSWeb.MvcShipping.Comm.Cookie;
using DSWeb.Areas.CommMng.DAL;
using System.Collections.Generic;
using HcUtility.Comm;
using HcUtility.Core;
using DSWeb.EntityDA;
using DSWeb.Areas.Account.Models.Chfee_Exrate;
using DSWeb.MvcShipping.DAL.MsSysBillNoSet;
using DSWeb.MvcShipping.Models.MsSysBillNoSet;
using DSWeb.MvcShipping.DAL.MsSysParamSet;
using System.Data;
using DSWeb.MvcShipping.DAL.MsCodeGoodInv;
using DSWeb.MvcShipping.DAL.MsChFeeDAL;
namespace DSWeb.Areas.Account.Controllers
{
[JsonRequestBehavior]
public class Chfee_invoiceapplicationController : Controller
{
//
// GET:
public ActionResult Index()
{
return View();
}
public ActionResult TruckIndex()
{
return View();
}
//
// GET: /
public ActionResult Edit()
{
return View();
}
public ActionResult BLEdit()
{
return View();
}
2 years ago
public ActionResult NewEdit()
{
return View();
}
3 years ago
public ActionResult TruckBLEdit()
{
return View();
}
//付费申请审核
public ActionResult Audit()
{
return View();
}
public ActionResult Index_Hangxin()
{
return View();
}
//
// GET
public ContentResult GetDataList(int start, int limit, string sort, string condition)
{
int totel = 0;
var dataList = ChinvoiceapplicationDAL.GetDataList(start, limit,condition,out totel,Convert.ToString(Session["USERID"]), CookieConfig.GetCookie_UserCode(Request), Convert.ToString(Session["COMPANYID"]), sort);
var json = JsonConvert.Serialize(new { Success = true, Message = "查询成功", totalCount = totel, data = dataList.ToList() });
return new ContentResult() { Content = json };
}
public ContentResult GetAuditDataList(int start, int limit, string sort, string condition, string isaudit)
{
var dataList = ChinvoiceapplicationDAL.GetAuditDataList(condition, Convert.ToString(Session["USERID"]), isaudit, 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 GetData(string handle, string condition)
{
ChInvoiceapplication head = null;
if (handle == "edit")
{
var list = ChinvoiceapplicationDAL.GetDataListAll(condition, Convert.ToString(Session["USERID"]), CookieConfig.GetCookie_UserCode(Request), Convert.ToString(Session["COMPANYID"]));
if (list.Count > 0)
head = list[0];
}
if (head == null)
{
head = new ChInvoiceapplication();
}
if (handle == "add")
{
head.APPLICANT = CookieConfig.GetCookie_CompanyId(Request);
head.APPLICANTNAME =CookieConfig.GetCookie_UserName(Request);
2 years ago
//head.CURRENCY = "RMB";//20191024 币别固化为RMB
head.INVTYPE = "原币开票";
3 years ago
}
var json = JsonConvert.Serialize(
new { Success = true, Message = "查询成功", data = head });
return new ContentResult() { Content = json };
}
public ContentResult GetDetailList(string condition,string sort)
{
var dataList = ChinvoiceapplicationDAL.GetDetailList(condition,sort);
var json = JsonConvert.Serialize(new { Success = true, Message = "查询成功", totalCount = dataList.Count, data = dataList.ToList() });
return new ContentResult() { Content = json };
}
2 years ago
public ContentResult GetApplicationDetailList(string condition, string sort)
{
var dataList = ChinvoiceapplicationDAL.GetApplicationDetailList(condition, sort);
var json = JsonConvert.Serialize(new { Success = true, Message = "查询成功", totalCount = dataList.Count, data = dataList.ToList() });
return new ContentResult() { Content = json };
}
3 years ago
public ContentResult GetBillList(string condition,string sort)
{
2 years ago
var dataList = ChinvoiceapplicationDAL.GetBodyList(condition, Convert.ToString(Session["USERID"]), sort);
3 years ago
var json = JsonConvert.Serialize(new { Success = true, Message = "查询成功", totalCount = dataList.Count, data = dataList.ToList() });
return new ContentResult() { Content = json };
}
public ContentResult GetTruckBillList(string condition, string sort)
{
var dataList = ChinvoiceapplicationDAL.GetTruckBodyList(condition, sort);
var json = JsonConvert.Serialize(new { Success = true, Message = "查询成功", totalCount = dataList.Count, data = dataList.ToList() });
return new ContentResult() { Content = json };
}
2 years ago
public ContentResult GetBillDataList(int start, int limit, string sort, string condition, string duino = "")
3 years ago
{
2 years ago
var dataList = ChinvoiceapplicationDAL.GetAddBillList(start, limit,condition,duino, Convert.ToString(Session["USERID"]), Convert.ToString(Session["SHOWNAME"]), Convert.ToString(Session["COMPANYID"]), sort);
int count = ChinvoiceapplicationDAL.getAddBillTotalCount(condition,duino, Convert.ToString(Session["USERID"]), Convert.ToString(Session["SHOWNAME"]), Convert.ToString(Session["COMPANYID"]));
3 years ago
var list = dataList.Skip(start).Take(limit);
var json = JsonConvert.Serialize(
new { Success = true, Message = "查询成功", totalCount = count, data = list.ToList() });
return new ContentResult() { Content = json };
}
public ContentResult GetTruckBillDataList(int start, int limit, string sort, string condition)
{
var dataList = ChinvoiceapplicationDAL.GetAddTruckBillList(start, limit, condition, Convert.ToString(Session["USERID"]), Convert.ToString(Session["SHOWNAME"]), Convert.ToString(Session["COMPANYID"]), sort);
int count = ChinvoiceapplicationDAL.getAddTruckBillTotalCount(condition, Convert.ToString(Session["USERID"]), Convert.ToString(Session["SHOWNAME"]), Convert.ToString(Session["COMPANYID"]));
var json = JsonConvert.Serialize(
new { Success = true, Message = "查询成功", totalCount = count, data = dataList.ToList() });
return new ContentResult() { Content = json };
}
2 years ago
public ContentResult GetFeeDetailList(string sort, string condition, string duino = "")
3 years ago
{
2 years ago
var dataList = ChinvoiceapplicationDAL.GetFeeDetailList(condition, duino,Convert.ToString(Session["USERID"]), Convert.ToString(Session["SHOWNAME"]), Convert.ToString(Session["COMPANYID"]), sort);
3 years ago
var json = JsonConvert.Serialize(
new { Success = true, Message = "查询成功", totalCount = dataList.Count, data = dataList.ToList() });
return new ContentResult() { Content = json };
}
public ContentResult GetBillSum(string condition)
{
var dataList = ChinvoiceapplicationDAL.GetBodySumList(condition);
var json = JsonConvert.Serialize(new { Success = true, Message = "查询成功", totalCount = dataList.Count, data = dataList.ToList() });
return new ContentResult() { Content = json };
}
2 years ago
public ContentResult GetFeeDataList(int start, int limit, string sort, string condition,string duino="")
3 years ago
{
2 years ago
var dataList = ChinvoiceapplicationDAL.GetFeeDataList(condition,duino, Convert.ToString(Session["USERID"]), Convert.ToString(Session["SHOWNAME"]), Convert.ToString(Session["COMPANYID"]), sort);
3 years ago
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 GetAddSum(string condition)
{
var dataList = ChinvoiceapplicationDAL.GetAddSum(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 };
}
2 years ago
public ContentResult Save(string opstatus, string data, string body,string detail="",bool issubmit=false)
3 years ago
{
if (Convert.ToString(Session["COMPANYID"]).ToString().Trim() == "" || Convert.ToString(Session["USERID"]).ToString().Trim() == "" || Convert.ToString(Session["CODENAME"]).ToString().Trim() == "" || Convert.ToString(Session["SHOWNAME"]).ToString().Trim() == "" || Convert.ToString(Session["DEPTNAME"]).ToString().Trim() == "")
{
var jsonRespose2 = new JsonResponse { Success = false, Message = "登录超时,请退出系统重新登录!" };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose2) };
}
var headData = JsonConvert.Deserialize<ChInvoiceapplication>(data);
var bodyList = JsonConvert.Deserialize<List<ChInvoiceDetail>>(body);
2 years ago
var detailList = JsonConvert.Deserialize<List<ChInvoiceapplicationDetail>>(detail);
3 years ago
if (opstatus == "add")
{
headData.GID = Guid.NewGuid().ToString();
//headData.BILLNO = PubSysDAL.GetBillNo("0306");
headData.COMPANYID = CookieConfig.GetCookie_CompanyId(Request);
headData.APPLICANT = CookieConfig.GetCookie_UserId(Request);
// headData.APPLYTIME = DateTime.Now;
headData.ENTERTIME = DateTime.Now;
headData.DbOperationType = DbOperationType.DbotIns;
var billnoset = MsSysBillNoSetDAL.GetData("OPLBNAME='发票申请'", CookieConfig.GetCookie_CompanyId(Request));
if (billnoset.BILLTYPE != "")
headData.BILLNO = MsSysBillNoSetDAL.GetBillNo(billnoset, headData.APPLYTIME.ToString().Trim(), headData.ENTERTIME.ToString());
else
headData.BILLNO = PubSysDAL.GetBillNo("0306");
}
else if (opstatus == "edit")
{
headData.DbOperationType = DbOperationType.DbotUpd;
headData.ModelUIStatus = "E";
}
else
{
headData.DbOperationType = DbOperationType.DbotDel;
}
var ct = ChinvoiceapplicationDAL.GetRdCount("GID<>'" + headData.GID + "' AND BILLNO='" + headData.BILLNO + "' ");
if (ct != 0)
{
var jsonRespose0 = new JsonResponse
{
Success = false,
Message = "发票申请重复,不允许保存!"
};
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose0) };
}
2 years ago
decimal ttlinv = 0;
decimal ttlrmbinv = 0;
decimal ttlusdinv = 0;
if (detailList != null && detailList.Count != 0) {
foreach (var emv in detailList) {
if (emv.CURRENCY == "USD") ttlusdinv = ttlusdinv + emv.AMOUNT;
if (emv.CURRENCY == "RMB") ttlrmbinv = ttlrmbinv + emv.AMOUNT;
}
}
if (headData.INVTYPE == "原币开票") {
if (ttlusdinv > headData.OTCURRAMOUNT || ttlrmbinv > headData.APPLYAMOUNT) {
var jsonRespose0 = new JsonResponse
{
Success = false,
Message = "原币开票,开票信息中金额合计不允许超过原币合计金额!"
};
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose0) };
}
}else if (headData.INVTYPE == "美元折人民币开票")
{
if (ttlusdinv!=0 || ttlrmbinv > headData.AMOUNT)
{
var jsonRespose0 = new JsonResponse
{
Success = false,
Message = "美元折人民币开票,开票信息中必须是人民币并金额合计不允许超过合计折算金额!"
};
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose0) };
}
}
else if (headData.INVTYPE == "人民币折美元开票")
{
if (ttlusdinv > headData.AMOUNT || ttlrmbinv!=0)
{
var jsonRespose0 = new JsonResponse
{
Success = false,
Message = "人民币折美元开票,开票信息中必须是美元并金额合计不允许超过合计折算金额!"
};
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose0) };
}
}
3 years ago
headData.OPERATETIME = DateTime.Now;
T_ALL_DA T_ALL_DA = new T_ALL_DA();
2 years ago
DataSet dsHSCODE = T_ALL_DA.GetAllSQL("SELECT Gid,CODENAME as CustCode,SHORTNAME as CustName,CODENAME+'-'+SHORTNAME as CodeAndName,BillRises1,INVADDRTEL,[DESCRIPTION],RmbBillRises,(select top 1 BANKNAME+' '+ACCOUNT FROM info_client_bank WHERE CURRENCY='RMB' AND LINKID=info_client.GID) Rmbbank,Rmbaccount,usdBillRises,(select top 1 BANKNAME+' '+ACCOUNT FROM info_client_bank WHERE CURRENCY='USD' AND LINKID=info_client.GID) usdbank,usdaccount,TaxNo,Addr,Tel from info_client WHERE SHORTNAME='" + headData.CUSTOMERNAME + "' and corpid='"+ Convert.ToString(Session["COMPANYID"]) + "'");
3 years ago
if (dsHSCODE != null)
{
if (dsHSCODE.Tables[0].Rows.Count > 0)
{
if (headData.INVOICECUSTNAME == "")
{
if (dsHSCODE.Tables[0].Rows[0]["BillRises1"].ToString() != "")
headData.INVOICECUSTNAME = dsHSCODE.Tables[0].Rows[0]["BillRises1"].ToString();
else headData.INVOICECUSTNAME = dsHSCODE.Tables[0].Rows[0]["DESCRIPTION"].ToString();
}
if (headData.CUSTRATENO == "") headData.CUSTRATENO = dsHSCODE.Tables[0].Rows[0]["TaxNo"].ToString();
if (headData.CUSTADDRTEL == "") {
if (dsHSCODE.Tables[0].Rows[0]["INVADDRTEL"].ToString() != "")
headData.CUSTADDRTEL = dsHSCODE.Tables[0].Rows[0]["INVADDRTEL"].ToString();
else headData.CUSTADDRTEL = dsHSCODE.Tables[0].Rows[0]["Addr"].ToString() + " " + dsHSCODE.Tables[0].Rows[0]["Tel"].ToString();
}
if (headData.CUSTBANK == "")
{
if (headData.RECVCURR == "USD")
{
headData.CUSTBANK = dsHSCODE.Tables[0].Rows[0]["usdbank"].ToString();
}
else headData.CUSTBANK = dsHSCODE.Tables[0].Rows[0]["rmbbank"].ToString();
}
}
}
var BILLNO = headData.BILLNO;
var GID = headData.GID;
var modb = new ModelObjectDB();
DBResult result = ChinvoiceapplicationDAL.SaveInvDetail(headData.GID,bodyList);
if (result.Success==true){
result= modb.Save(headData);
2 years ago
if (result.Success) {
ChinvoiceapplicationDAL.SaveAppDetail(headData, detailList);
}
3 years ago
};
if (result.Success == true) { }
else
{
MsSysBillNoSetDAL.DeleteBsNo(headData.BILLNO);
}
if ((result.Success == true)&&(issubmit==true)) {
//系统参数如果设置为【开票分部与业务分部相同则不需要审核】则做判断是否进行审核
var dataList = ChinvoiceapplicationDAL.GetBodyList("BILLNO='" + BILLNO + "'", "");
if (dataList == null || dataList.Count == 0)
{
var jsonRespose2 = new JsonResponse { Success = false, Message = "无费用明细不能提交审核!" };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose2) };
}
decimal invamount = 0;
var invitems = ChinvoiceapplicationDAL.GetDetailList("PID='" + headData.GID + "'", "");
foreach (var invitem in invitems)
{
invamount = invamount + invitem.AMOUNT + invitem.TAX;
}
if (invamount != headData.INVAMOUNT)
{
var jsonRespose2 = new JsonResponse { Success = false, Message = "开票明细与开票金额不一致,请检查!" };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose2) };
}
var flag = MsSysParamSetDAL.GetData("PARAMNAME='InvoiceSameComSkipAudit'");
if (flag.PARAMVALUE == "1")
{
if (headData.COMPANYID == headData.PAYCOMPANYID && ((headData.ACTUALCUSTOMERNAME != "" && headData.ACTUALCUSTOMERNAME == headData.CUSTOMERNAME) || headData.ACTUALCUSTOMERNAME == ""))
{
result = ChinvoiceapplicationDAL.PASSAUDITWithGID(headData.GID);
}
else
{
result = ChinvoiceapplicationDAL.SubmitAudit("InvAudit", CookieConfig.GetCookie_UserId(Request), headData.BILLNO, CookieConfig.GetCookie_CompanyId(Request));
}
}
else
{
result = ChinvoiceapplicationDAL.SubmitAudit("InvAudit", CookieConfig.GetCookie_UserId(Request), headData.BILLNO, CookieConfig.GetCookie_CompanyId(Request));
}
}
// if (result.Success) { ChinvoiceapplicationDAL.p_update_Amount(BILLNO, GID); }
var jsonRespose = new JsonResponse
{
Success = result.Success,
Message = result.Message,
Data = ChinvoiceapplicationDAL.GetData(" BILLNO='" + BILLNO + "'", CookieConfig.GetCookie_UserId(Request), CookieConfig.GetCookie_UserCode(Request), CookieConfig.GetCookie_CompanyId(Request))
};
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
2 years ago
public ContentResult AddDetail(string bill, string data, string curr, bool islist, string GID, bool custgroup = false, string duino = "")
3 years ago
{
if (Convert.ToString(Session["COMPANYID"]).ToString().Trim() == "" || Convert.ToString(Session["USERID"]).ToString().Trim() == "" || Convert.ToString(Session["CODENAME"]).ToString().Trim() == "" || Convert.ToString(Session["SHOWNAME"]).ToString().Trim() == "" || Convert.ToString(Session["DEPTNAME"]).ToString().Trim() == "")
{
var jsonRespose2 = new JsonResponse { Success = false, Message = "登录超时,请退出系统重新登录!" };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose2) };
}
var bodyList = JsonConvert.Deserialize<List<BillChfeeDetail>>(data);
var headData = ChinvoiceapplicationDAL.GetData(" BILLNO='" + bill + "'", Convert.ToString(Session["USERID"]), CookieConfig.GetCookie_UserCode(Request), Convert.ToString(Session["COMPANYID"]));
var BLCOUNT="0";
var FEENOAUDITCANTSHENINV = MsSysParamSetDAL.GetData("PARAMNAME='FEENOAUDITCANTSHENINV'");
if (FEENOAUDITCANTSHENINV.PARAMVALUE == "1")
{
T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA();
BLCOUNT = T_ALL_DA.GetStrSQL("BLCOUNT", "select COUNT(*) BLCOUNT from ch_fee where FEETYPE=1 and (FEESTATUS=1 OR FEESTATUS=2 ) and BSNO='" + bodyList[0].BSNO + "'");
}
if (BLCOUNT != "0")
{
var jsonRespose = new JsonResponse { Success = false, Message = "此票存在未审核的应收费用,不允许申请发票!" };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
else
{
var modb = new ModelObjectDB();
2 years ago
DBResult result = ChinvoiceapplicationDAL.AddDetail(bill,duino,bodyList, curr, Convert.ToString(Session["COMPANYID"]), islist, GID, headData);
3 years ago
if (result.Success) { ChinvoiceapplicationDAL.p_update_Amount(bill, GID); }
var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
}
2 years ago
public ContentResult AddBill(string billno, string billcust, string billcurr, string feesql, string storeCurrExrate, bool islist, string GID,bool custgroup = false, string duino = "")
3 years ago
{
if (Convert.ToString(Session["COMPANYID"]).ToString().Trim() == "" || Convert.ToString(Session["USERID"]).ToString().Trim() == "" || Convert.ToString(Session["CODENAME"]).ToString().Trim() == "" || Convert.ToString(Session["SHOWNAME"]).ToString().Trim() == "" || Convert.ToString(Session["DEPTNAME"]).ToString().Trim() == "")
{
var jsonRespose2 = new JsonResponse { Success = false, Message = "登录超时,请退出系统重新登录!" };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose2) };
}
var exrateList = JsonConvert.Deserialize<List<ChFeeExrate>>(storeCurrExrate);
if (islist) {
2 years ago
var bodylist = ChinvoiceapplicationDAL.GetFeeDetailList(feesql + " and '代理'+FEENAME NOT IN (Select GOODNAME from code_goods_inv) ",duino, Convert.ToString(Session["USERID"]), Convert.ToString(Session["SHOWNAME"]), Convert.ToString(Session["COMPANYID"]));
3 years ago
if (bodylist.Count != 0) {
var feenamelist = "";
if (bodylist != null)
{
foreach (var enumValue in bodylist)
{
feenamelist = feenamelist + enumValue.FeeName+",";
}
}
if (feenamelist != "") {
var jsonRespose = new JsonResponse { Success = false, Message = "费用名称:"+feenamelist+"不在发票商品明细中,请先维护发票商品明细!"};
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
}
}
var headData = ChinvoiceapplicationDAL.GetData(" BILLNO='" + billno + "'", Convert.ToString(Session["USERID"]), CookieConfig.GetCookie_UserCode(Request), Convert.ToString(Session["COMPANYID"]));
if ((exrateList == null) || (exrateList.Count == 0))
{
exrateList = ChinvoiceapplicationDAL.GetCurrExrateData(billcust, billcurr, feesql, custgroup);
if (exrateList.Count == 0)
{
var modb = new ModelObjectDB();
2 years ago
DBResult result = ChinvoiceapplicationDAL.AddBill(billno,duino,billcust, billcurr, feesql, exrateList, Convert.ToString(Session["COMPANYID"]), islist, GID,headData, custgroup, Convert.ToString(Session["USERID"]), Convert.ToString(Session["SHOWNAME"]));
3 years ago
if (result.Success) { ChinvoiceapplicationDAL.p_update_Amount(billno, GID); }
var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
else
{
var INVGETNOWEXCHANGE = MsSysParamSetDAL.GetData("PARAMNAME='INVGETNOWEXCHANGE'").PARAMVALUE;
if (INVGETNOWEXCHANGE == "1")
{
var invratelist = MsChFeeDAL.GetFeeNowInvCurrList(headData.APPLYTIME);
if (invratelist != null)
{
foreach (var exrate in exrateList)
{
foreach (var invrate in invratelist)
{
if (invrate.CURR == exrate.CURR)
{
exrate.DFEXRATE = invrate.DEFRATE;
}
}
}
}
}
var jsonRespose = new JsonResponse { Success = true, Message = "查询成功", Data = exrateList.ToList() };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
}
else
{
var modb = new ModelObjectDB();
2 years ago
DBResult result = ChinvoiceapplicationDAL.AddBill(billno,duino,billcust, billcurr, feesql, exrateList, Convert.ToString(Session["COMPANYID"]), islist, GID, headData,false,Convert.ToString(Session["USERID"]), Convert.ToString(Session["SHOWNAME"]));
3 years ago
if (result.Success) { ChinvoiceapplicationDAL.p_update_Amount(billno, GID); }
var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
}
2 years ago
public ContentResult AddDetailNew(string bill, string data, string curr, bool islist, string GID, bool custgroup = false, string duino = "")
{
if (Convert.ToString(Session["COMPANYID"]).ToString().Trim() == "" || Convert.ToString(Session["USERID"]).ToString().Trim() == "" || Convert.ToString(Session["CODENAME"]).ToString().Trim() == "" || Convert.ToString(Session["SHOWNAME"]).ToString().Trim() == "" || Convert.ToString(Session["DEPTNAME"]).ToString().Trim() == "")
{
var jsonRespose2 = new JsonResponse { Success = false, Message = "登录超时,请退出系统重新登录!" };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose2) };
}
var bodyList = JsonConvert.Deserialize<List<BillChfeeDetail>>(data);
var headData = ChinvoiceapplicationDAL.GetData(" BILLNO='" + bill + "'", Convert.ToString(Session["USERID"]), CookieConfig.GetCookie_UserCode(Request), Convert.ToString(Session["COMPANYID"]));
var BLCOUNT = "0";
var FEENOAUDITCANTSHENINV = MsSysParamSetDAL.GetData("PARAMNAME='FEENOAUDITCANTSHENINV'");
if (FEENOAUDITCANTSHENINV.PARAMVALUE == "1")
{
T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA();
BLCOUNT = T_ALL_DA.GetStrSQL("BLCOUNT", "select COUNT(*) BLCOUNT from ch_fee where FEETYPE=1 and (FEESTATUS=1 OR FEESTATUS=2 ) and BSNO='" + bodyList[0].BSNO + "'");
}
if (BLCOUNT != "0")
{
var jsonRespose = new JsonResponse { Success = false, Message = "此票存在未审核的应收费用,不允许申请发票!" };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
else
{
var modb = new ModelObjectDB();
DBResult result = ChinvoiceapplicationDAL.AddDetail(bill, duino, bodyList, curr, Convert.ToString(Session["COMPANYID"]), islist, GID, headData);
2 years ago
if (result.Success) { ChinvoiceapplicationDAL.p_update_AmountNew(bill, GID, Convert.ToString(Session["DEPTNAME"]).ToString().Trim(), Convert.ToString(Session["COMPANYID"])); }
2 years ago
var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
}
public ContentResult AddBillNew(string billno, string billcust, string billcurr, string feesql, string storeCurrExrate, bool islist, string GID, bool custgroup = false, string duino = "")
{
if (Convert.ToString(Session["COMPANYID"]).ToString().Trim() == "" || Convert.ToString(Session["USERID"]).ToString().Trim() == "" || Convert.ToString(Session["CODENAME"]).ToString().Trim() == "" || Convert.ToString(Session["SHOWNAME"]).ToString().Trim() == "" || Convert.ToString(Session["DEPTNAME"]).ToString().Trim() == "")
{
var jsonRespose2 = new JsonResponse { Success = false, Message = "登录超时,请退出系统重新登录!" };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose2) };
}
var exrateList = JsonConvert.Deserialize<List<ChFeeExrate>>(storeCurrExrate);
if (islist)
{
var bodylist = ChinvoiceapplicationDAL.GetFeeDetailList(feesql + " and '代理'+FEENAME NOT IN (Select GOODNAME from code_goods_inv) ", duino, Convert.ToString(Session["USERID"]), CookieConfig.GetCookie_UserCode(Request), Convert.ToString(Session["COMPANYID"]));
if (bodylist.Count != 0)
{
var feenamelist = "";
if (bodylist != null)
{
foreach (var enumValue in bodylist)
{
feenamelist = feenamelist + enumValue.FeeName + ",";
}
}
if (feenamelist != "")
{
var jsonRespose = new JsonResponse { Success = false, Message = "费用名称:" + feenamelist + "不在发票商品明细中,请先维护发票商品明细!" };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
}
}
var headData = ChinvoiceapplicationDAL.GetData(" BILLNO='" + billno + "'", Convert.ToString(Session["USERID"]), CookieConfig.GetCookie_UserCode(Request), Convert.ToString(Session["COMPANYID"]));
if ((exrateList == null) || (exrateList.Count == 0))
{
exrateList = ChinvoiceapplicationDAL.GetCurrExrateData(billcust, billcurr, feesql, custgroup);
if (billcurr==""||exrateList.Count == 0)
{
var modb = new ModelObjectDB();
2 years ago
DBResult result = ChinvoiceapplicationDAL.AddBill(billno, duino, billcust, billcurr, feesql, exrateList, Convert.ToString(Session["COMPANYID"]), islist, GID, headData, custgroup, Convert.ToString(Session["USERID"]), Convert.ToString(Session["SHOWNAME"]));
2 years ago
if (result.Success) { ChinvoiceapplicationDAL.p_update_AmountNew(billno, GID, Convert.ToString(Session["DEPTNAME"]).ToString().Trim(), Convert.ToString(Session["COMPANYID"])); }
2 years ago
var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
else
{
var INVGETNOWEXCHANGE = MsSysParamSetDAL.GetData("PARAMNAME='INVGETNOWEXCHANGE'").PARAMVALUE;
if (INVGETNOWEXCHANGE == "1")
{
var invratelist = MsChFeeDAL.GetFeeNowInvCurrList(headData.APPLYTIME);
if (invratelist != null)
{
foreach (var exrate in exrateList)
{
foreach (var invrate in invratelist)
{
if (invrate.CURR == exrate.CURR)
{
exrate.DFEXRATE = invrate.DEFRATE;
}
}
}
}
}
var jsonRespose = new JsonResponse { Success = true, Message = "查询成功", Data = exrateList.ToList() };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
}
else
{
var modb = new ModelObjectDB();
2 years ago
DBResult result = ChinvoiceapplicationDAL.AddBill(billno, duino, billcust, billcurr, feesql, exrateList, Convert.ToString(Session["COMPANYID"]), islist, GID, headData, false, Convert.ToString(Session["USERID"]), Convert.ToString(Session["SHOWNAME"]));
2 years ago
if (result.Success) { ChinvoiceapplicationDAL.p_update_AmountNew(billno, GID, Convert.ToString(Session["DEPTNAME"]).ToString().Trim(), Convert.ToString(Session["COMPANYID"])); }
2 years ago
var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
}
public ContentResult DelBill(string data, string billno,string GID)
3 years ago
{
var bodyList = JsonConvert.Deserialize<List<Chfee_do_detail>>(data);
DBResult result = ChinvoiceapplicationDAL.DelFeeDo(bodyList,GID);
if (result.Success) { ChinvoiceapplicationDAL.p_update_Amount(billno,GID); }
var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
public ContentResult GetIsAdd(string data)
{
var bodyList = JsonConvert.Deserialize<List<ChInvoiceapplication>>(data);
var StrGid = "";
if (bodyList != null)
{
foreach (var enumValue in bodyList)
{
if (StrGid == "")
StrGid = "'" + enumValue.GID + "'";
else
StrGid = StrGid + ",'" + enumValue.GID + "'";
}
}
if (StrGid != "")
{
StrGid = "(" + StrGid + ")";
var dataList = ChinvoiceapplicationDAL.GetDataListAll(" BILLSTATUS=0 and GID IN " + StrGid, Convert.ToString(Session["USERID"]), CookieConfig.GetCookie_UserCode(Request), Convert.ToString(Session["COMPANYID"]));
if (dataList != null && dataList.Count != 0)
{
var jsonRespose = new JsonResponse { Success =true, Message ="可以生成!" };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
else
{
var jsonRespose = new JsonResponse { Success = false, Message = "发票申请已生成发票,请刷新!" };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
}
else
{
var jsonRespose = new JsonResponse { Success = false, Message = "无需要添加的发票申请!" };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
}
//
public ContentResult Delete(string data)
{
var headData = JsonConvert.Deserialize<ChInvoiceapplication>(data);
2 years ago
var dataList = ChinvoiceapplicationDAL.GetBodyList("BILLNO='" + headData.BILLNO + "'", Convert.ToString(Session["USERID"]).ToString().Trim());
3 years ago
DBResult result = ChinvoiceapplicationDAL.DelFeeDo(dataList,headData.GID);
if (result.Success == true)
{
var modb = new ModelObjectDB();
modb.Delete(headData);
2 years ago
ChinvoiceapplicationDAL.DeleteAppDetail(headData);
3 years ago
MsSysBillNoSetDAL.DeleteBsNo(headData.BILLNO);
T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA();
var blUpSQL = " insert into sys_log(GID,NAME,LOGTYPE,LOGTIME,LOGCONTENT,CREATEUSER) values(NEWID(),'" + headData.BILLNO + "','删除发票申请','" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "','" + headData.BILLNO + '(' + headData.CUSTOMERNAME + ')' + "','" + Convert.ToString(Session["USERID"]) + "')";
bool bl = T_ALL_DA.GetExecuteSqlCommand(blUpSQL);
}
var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
public ContentResult DelInvDetail(string billno, string body, string GID)
{
var bodyList = JsonConvert.Deserialize<List<ChInvoiceDetail>>(body);
DBResult result = ChinvoiceapplicationDAL.DelInvDetail(bodyList);
if (result.Success) { ChinvoiceapplicationDAL.p_update_Amount(billno, GID); }
var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
2 years ago
public ContentResult DelInvAppDetail(string billno, string body, string GID)
{
var bodyList = JsonConvert.Deserialize<List<ChInvoiceapplicationDetail>>(body);
DBResult result = ChinvoiceapplicationDAL.DelInvAppDetail(bodyList);
var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
public ContentResult CreateInvList(string data, string storeCurrExrate)
{
var bodyList = JsonConvert.Deserialize<List<ChInvoiceapplicationDetail>>(data);
var exrateList = JsonConvert.Deserialize<List<ChFeeExrate>>(storeCurrExrate);
var headData = ChinvoiceapplicationDAL.GetData(" GID='" + bodyList[0].LINKGID + "'");
decimal ttlinv = 0;
decimal ttlrmbinv = 0;
decimal ttlusdinv = 0;
if (bodyList != null && bodyList.Count != 0)
{
foreach (var emv in bodyList)
{
if (emv.CURRENCY == "USD") ttlusdinv = ttlusdinv + emv.AMOUNT;
if (emv.CURRENCY == "RMB") ttlrmbinv = ttlrmbinv + emv.AMOUNT;
}
}
if (headData.INVTYPE == "原币开票")
{
if (ttlusdinv > headData.OTCURRAMOUNT || ttlrmbinv > headData.APPLYAMOUNT)
{
var jsonRespose0 = new JsonResponse
{
Success = false,
Message = "原币开票,开票信息中金额合计不允许超过原币合计金额!"
};
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose0) };
}
}
else if (headData.INVTYPE == "美元折人民币开票")
{
if (ttlusdinv != 0 || ttlrmbinv > headData.AMOUNT)
{
var jsonRespose0 = new JsonResponse
{
Success = false,
Message = "美元折人民币开票,开票信息中必须是人民币并金额合计不允许超过合计折算金额!"
};
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose0) };
}
}
else if (headData.INVTYPE == "人民币折美元开票")
{
if (ttlusdinv > headData.AMOUNT || ttlrmbinv != 0)
{
var jsonRespose0 = new JsonResponse
{
Success = false,
Message = "人民币折美元开票,开票信息中必须是美元并金额合计不允许超过合计折算金额!"
};
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose0) };
}
}
ChinvoiceapplicationDAL.SaveAppDetail(headData, bodyList);
if ((exrateList == null) || (exrateList.Count == 0))
{
exrateList = ChinvoiceapplicationDAL.GetAppCurrExrateData(headData, bodyList);
if (exrateList.Count == 0)
{
DBResult result = ChinvoiceapplicationDAL.CreateInvList(headData,bodyList, exrateList, Convert.ToString(Session["USERID"]), Convert.ToString(Session["SHOWNAME"]), Convert.ToString(Session["COMPANYID"]));
var jsonRespose2 = new JsonResponse { Success = result.Success, Message = result.Message };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose2) };
}
else
{
var INVGETNOWEXCHANGE = MsSysParamSetDAL.GetData("PARAMNAME='INVGETNOWEXCHANGE'").PARAMVALUE;
if (INVGETNOWEXCHANGE == "1")
{
var invratelist = MsChFeeDAL.GetFeeNowInvCurrList(DateTime.Now.ToString("yyyy-MM-dd"));
if (invratelist != null)
{
foreach (var exrate in exrateList)
{
foreach (var invrate in invratelist)
{
if (invrate.CURR == exrate.CURR)
{
exrate.DFEXRATE = invrate.DEFRATE;
}
}
}
}
}
var jsonRespose2 = new JsonResponse { Success = true, Message = "查询成功", Data = exrateList.ToList() };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose2) };
}
}
else
{
DBResult result = ChinvoiceapplicationDAL.CreateInvList(headData,bodyList, exrateList, Convert.ToString(Session["USERID"]), Convert.ToString(Session["SHOWNAME"]), Convert.ToString(Session["COMPANYID"]));
var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
}
3 years ago
#region 提交和撤销审核
2 years ago
public ContentResult SubmitAudit(string bill)
3 years ago
{
var headdata = ChinvoiceapplicationDAL.GetData("BILLNO='"+bill+"'");
var INVAPPMAXPARAM = MsSysParamSetDAL.GetData("PARAMNAME='INVAPPMAX'");
var INVAPPMAX = false;
if (INVAPPMAXPARAM.PARAMVALUE == "1")
{
INVAPPMAX = true;
}
decimal invamount = 0;
var invitems=ChinvoiceapplicationDAL.GetDetailList("PID='"+headdata.GID+"'", "");
var dataList = ChinvoiceapplicationDAL.GetBodyList("BILLNO='" + bill + "'", "");
if (dataList == null|| dataList.Count == 0) {
var jsonRespose = new JsonResponse { Success = false, Message = "无费用明细不能提交审核!" };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
foreach (var invitem in invitems) {
invamount = invamount + invitem.AMOUNT+invitem.TAX;
}
if (invamount != headdata.INVAMOUNT) {
var jsonRespose = new JsonResponse { Success = false, Message = "开票明细与开票金额不一致,请检查!" };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
if (INVAPPMAX&&(headdata.INVAMOUNT >= 100000 || headdata.APPLYAMOUNT >= 100000)) {
var jsonRespose = new JsonResponse { Success =false, Message ="申请开票金额,不能超过十万元!" };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
//DBResult result = ChinvoiceapplicationDAL.SubmitAudit("InvAudit", Convert.ToString(Session["DEPTGID"]), Convert.ToString(Session["USERID"]), bill);
DBResult result = ChinvoiceapplicationDAL.SubmitAudit("InvAudit", Convert.ToString(Session["USERID"]), bill, CookieConfig.GetCookie_CompanyId(Request));
var json = JsonConvert.Serialize(result);
return new ContentResult() { Content = json };
}
public ContentResult SubmitAuditBack(string bill)
{
DBResult result = ChinvoiceapplicationDAL.SubmitAuditBack("InvAudit", Convert.ToString(Session["USERID"]), bill);
var json = JsonConvert.Serialize(result);
return new ContentResult() { Content = json };
}
public ContentResult SubmitAuditList(string bills)
{
var INVAPPMAXPARAM = MsSysParamSetDAL.GetData("PARAMNAME='INVAPPMAX'");
var INVAPPMAX = false;
if (INVAPPMAXPARAM.PARAMVALUE == "1")
{
INVAPPMAX = true;
}
var billList = bills.Split(',');
foreach (var bill in billList)
{
var headdata = ChinvoiceapplicationDAL.GetData("BILLNO='" + bill + "'");
decimal invamount = 0;
var invitems = ChinvoiceapplicationDAL.GetDetailList("PID='" + headdata.GID + "'", "");
var dataList = ChinvoiceapplicationDAL.GetBodyList("BILLNO='" + bill + "'", "");
if (dataList == null || dataList.Count == 0)
{
var jsonRespose = new JsonResponse { Success = false, Message = "无费用明细不能提交审核!" };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
foreach (var invitem in invitems)
{
invamount = invamount + invitem.AMOUNT + invitem.TAX;
}
if (invamount != headdata.INVAMOUNT)
{
var jsonRespose = new JsonResponse { Success = false, Message = "开票明细与开票金额不一致,请检查!" };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
if (INVAPPMAX && (headdata.INVAMOUNT >= 100000 || headdata.APPLYAMOUNT >= 100000))
{
var jsonRespose = new JsonResponse { Success = false, Message = "申请开票金额,不能超过十万元!" };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
}
DBResult result = ChinvoiceapplicationDAL.SubmitAuditList("InvAudit", Convert.ToString(Session["USERID"]), bills);
var json = JsonConvert.Serialize(result);
return new ContentResult() { Content = json };
}
public ContentResult SubmitAuditBackList(string bills)
{
DBResult result = ChinvoiceapplicationDAL.SubmitAuditBackList("InvAudit", Convert.ToString(Session["USERID"]), bills);
var json = JsonConvert.Serialize(result);
return new ContentResult() { Content = json };
}
public ContentResult AuditList(string data, string PAYCOMPANYID)
{
var bodyList = JsonConvert.Deserialize<List<ChInvoiceapplication>>(data);
DBResult result = ChinvoiceapplicationDAL.AuditList(bodyList,PAYCOMPANYID,Convert.ToString(Session["USERID"]));
var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
public ContentResult AuditBackList(string data, string reason)
{
var bodyList = JsonConvert.Deserialize<List<ChInvoiceapplication>>(data);
DBResult result = ChinvoiceapplicationDAL.AuditBackList(bodyList, Convert.ToString(Session["USERID"]), reason);
var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
#endregion
public ContentResult GetPrint(string billno)
{
DBResult result = ChinvoiceapplicationDAL.GetPrint(billno, Convert.ToString(Session["USERID"]), CookieConfig.GetCookie_UserCode(Request), Convert.ToString(Session["COMPANYID"]));
var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
public ContentResult UpdatePrint(string billnos)
{
var result = new DBResult();
T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA();
string blUpSQL = " update ch_fee_invoiceapplication set ISPRINT='1',PRINTCOUNT=ISNULL(PRINTCOUNT,0)+1 where BILLNO IN (" + billnos + ")";
bool bl = T_ALL_DA.GetExecuteSqlCommand(blUpSQL);
result.Success = true;
result.Message = "更新成功!";
var jsonRespose = new JsonResponse
{
Success = result.Success,
Message = result.Message,
// Data = MsChFeeDAL.GetDataList(headData.BillNo, Convert.ToString(Session["USERID"]), CookieConfig.GetCookie_UserCode(Request), CookieConfig.GetCookie_OrgCode(Request))
};
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
public ContentResult UpdateNoPrint(string billnos)
{
var result = new DBResult();
T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA();
string blUpSQL = " update ch_fee_invoiceapplication set ISPRINT='0' where BILLNO IN (" + billnos + ")";
bool bl = T_ALL_DA.GetExecuteSqlCommand(blUpSQL);
result.Success = true;
result.Message = "更新成功!";
var jsonRespose = new JsonResponse
{
Success = result.Success,
Message = result.Message,
// Data = MsChFeeDAL.GetDataList(headData.BillNo, Convert.ToString(Session["USERID"]), CookieConfig.GetCookie_UserCode(Request), CookieConfig.GetCookie_OrgCode(Request))
};
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
#region 参照部分
#endregion
}
}