using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.IO; using System.Linq; using System.Web; using SuperMap.RealEstate.ServiceModel; using SuperMap.RealEstate.Utility; using SRSB = SuperMap.RealEstate.SendRec.Storage.Business; using HWSB = SuperMap.RealEstate.HighWay.Storage.Business; using HWSDB = SuperMap.RealEstate.HighWay.SellData.Business; using Business = SuperMap.RealEstate.SendRec.Storage.Business; using HCC = HZQR.Common.Common; using Newtonsoft.Json.Linq; using HZQR.Common; namespace SuperMap.RealEstate.SendRec.Handler { public class BusinessHelper { #region 扣除库存 public static string DeductStock(Transaction _Transaction) { string EndAccountId = Pub.Request("EndAccountId"); //日结内码 string ServerpartShopID = Pub.Request("ServerpartShopID"); //门店内码 string ServerpartCode = Pub.Request("ServerpartCode"); //服务区编码 string ShopCode = Pub.Request("ShopCode"); //门店编码 string ServerpartName = Pub.Request("ServerpartName"); //服务区名称 string ShopName = Pub.Request("ShopName"); //门店名称 string MachineCode = Pub.Request("MachineCode"); //机器编码 string EndaccountDate = Pub.Request("EndaccountDate"); //结账时间 string ProvinceCode = Pub.Request("ProvinceCode"); //省份内码(匹配商品内码) JObject info = new JObject(); try { int deliverType = 1000; HWSB.SERVERPARTSHOP _SERVERPARTSHOP = new HWSB.SERVERPARTSHOP(_Transaction); _SERVERPARTSHOP.SERVERPARTSHOP_ID_Encrypt = ServerpartShopID.ToEncrypt(); if (_SERVERPARTSHOP.Select() && _SERVERPARTSHOP.BUSINESS_NATURE != null) { deliverType = _SERVERPARTSHOP.BUSINESS_NATURE.Value; } //统计单品销售数据 DataTable dtSales = new HWSDB.ENDACCOUNT(_Transaction).ExecuteDataTable(string.Format(@" SELECT {5} AS SERVERPARTSHOP_ID,B.COMMODITY_ID,B.COMMODITY_NAME,B.COMMODITY_BARCODE, -NVL(SUM(A.TOTALCOUNT),0) AS OPERATE_COUNT,-NVL(SUM(A.TOTALSELLAMOUNT),0) AS OPERATE_TAXAMOUNT, -ROUND(NVL(SUM(A.TOTALSELLAMOUNT),0) / (1 + NVL(B.RETAIL_DUTY,13) / 100),2) AS OPERATE_AMOUNT, A.ENDDATE AS OPERATE_DATE,'{6}' AS SERVERPART_NAME,'{7}' AS SHOPNAME,A.MACHINECODE FROM HIGHWAY_EXCHANGE.T_COMMODITYSALE A, HIGHWAY_STORAGE.V_WHOLE_COMMODITY B WHERE A.COMMODITY_CODE = B.COMMODITY_CODE AND B.PROVINCE_CODE = {4} AND A.SERVERPARTCODE = '{0}' AND A.SHOPCODE = '{1}' AND A.MACHINECODE = '{2}' AND A.ENDDATE = TO_DATE('{3}','YYYY/MM/DD HH24:MI:SS') GROUP BY A.ENDDATE,B.COMMODITY_ID,B.COMMODITY_NAME,B.COMMODITY_BARCODE,B.RETAIL_DUTY,A.MACHINECODE", ServerpartCode, ShopCode, MachineCode, EndaccountDate, ProvinceCode, ServerpartShopID, ServerpartName, ShopName)); //记录库存销售日志 new SRSB.STOCKLOG(_Transaction).AddStockLog(5000, EndAccountId.TryParseToInt(), ServerpartShopID.TryParseToInt(), deliverType, EndaccountDate.TryParseToDateTime().Value, dtSales); _Transaction.Commit(); info["Result_Code"] = "100"; info["Result_Desc"] = "扣减成功"; } catch (Exception ex) { ex = ex ?? ex.InnerException; ErrorLogHelper.Write(ex); _Transaction.Rollback(); info["Result_Code"] = "999"; info["Result_Desc"] = "扣减失败" + ex.Message; } return info.ToString(); } #endregion #region 上传附件 public static string UploadFile(HttpContext context, Transaction _Transaction) { JObject info = new JObject(); HttpPostedFile file = context.Request.Files["Filedata"]; string TableID = context.Request.Form["TableID"].ToString(); string TableName = context.Request.Form["TableName"].ToString(); string uploadtype = context.Request.Form["uploadtype"].ToString(); if (file == null) { file = context.Request.Files["UploadFile"]; } if (file.ContentLength / 1024 / 1024 > 10) { info["Result_Code"] = 200; info["Result_Desc"] = "传输失败!文件大小超过10MB"; return info.ToString(); } else { if (TableID == "") { info["Result_Code"] = 200; info["Result_Desc"] = "传输失败!请传入业务内码和表名称"; return info.ToString(); } if (file != null) { if (Path.GetExtension(file.FileName).ToLower() == ".exe") { info["Result_Code"] = 200; info["Result_Desc"] = "传输失败!不允许上传exe文件"; return info.ToString(); } string postUrl = ConfigurationManager.AppSettings["postUrl"]; string fileDir = "UploadImageDir/" + (TableName.StartsWith("T_") ? TableName.Substring(2) : TableName) + "/" + DateTime.Now.ToString("yyyyMMddHHmmssff") + "_" + Path.GetFileNameWithoutExtension(file.FileName); string fileType = file.ContentType; Stream stream = file.InputStream; byte[] data = new byte[stream.Length]; stream.Read(data, 0, data.Length); string result = HCC.CommonHelper.PostFileToServer(fileDir, file.FileName, fileType, data, postUrl + "FileUpload.ashx"); JObject Jresult = JObject.Parse(result); if (Jresult["Result_Code"].TryParseToInt() == 100) { info["Result_Code"] = Jresult["Result_Code"]; info["Result_Desc"] = Jresult["Result_Desc"]; Business.ATTACHMENT _ATTACHMENT = new Business.ATTACHMENT(_Transaction); switch (uploadtype) { case "file_upload_Common": _ATTACHMENT.ATTACHMENT_NAME = file.FileName; _ATTACHMENT.ATTACHMENT_PATH = fileDir; _ATTACHMENT.ATTACHMENT_URL = postUrl + _ATTACHMENT.ATTACHMENT_PATH + "/" + _ATTACHMENT.ATTACHMENT_NAME; _ATTACHMENT.OPERATE_DATE = long.Parse(DateTime.Now.ToString("yyyyMMddHHmmss")); _ATTACHMENT.TABLE_ID = int.Parse(TableID); _ATTACHMENT.TABLE_NAME = TableName; _ATTACHMENT.Insert(); JObject keyValuePairs = new JObject(); keyValuePairs["attachmentID"] = _ATTACHMENT.ATTACHMENT_ID_Encrypt; keyValuePairs["attachmentName"] = _ATTACHMENT.ATTACHMENT_NAME; info["Result_Data"] = keyValuePairs; break; } } else { return result; } return info.ToString(); } info["Result_Code"] = 200; info["Result_Desc"] = "传输失败!文件不存在"; return info.ToString(); } } #endregion #region 删除附件 public static string DeleteFile(Transaction _Transaction, bool DeleteFile = false) { string postUrl = ConfigurationManager.AppSettings["postUrl"]; JObject info = new JObject(); try { string attachmentID = Pub.Request("attachmentID"); Business.ATTACHMENT _ATTACHMENT = new Business.ATTACHMENT(_Transaction); _ATTACHMENT.ATTACHMENT_ID_Encrypt = attachmentID; if (_ATTACHMENT.Select()) { if (DeleteFile) { //删除指定服务器上的文件 HCC.CommonHelper.DelFileFromServer(_ATTACHMENT.ATTACHMENT_PATH, _ATTACHMENT.ATTACHMENT_NAME, postUrl + "FileUpload.ashx"); } //从数据库删除记录 _ATTACHMENT.Delete(); } info["Result_Code"] = 100; info["Result_Desc"] = "删除成功!"; } catch (Exception ex) { _Transaction.Rollback(); ex = ex ?? ex.InnerException; info["Result_Code"] = 999; info["Result_Desc"] = "删除失败" + ex.Message; ErrorLogHelper.Write(ex, "DeleteFile", "DeleteFile"); } return info.ToString(); } #endregion } }