using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Pub_Class;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Web.Http;
using WebAPI.Models;
namespace WebAPI.Controllers
{
//销售出库单Controller
public class Kf_SellOutBillController : ApiController
{
//获取系统参数
Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
public DBUtility.ClsPub.Enum_BillStatus BillStatus;
public DAL.ClsKf_SellOutBill BillOld = new DAL.ClsKf_SellOutBill();
private json objJsonResult = new json();
SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
DataSet ds;
#region 销售出库单审核/反审核功能
[Route("Kf_SellOutBill/CheckKf_SellOutBill")]
[HttpGet]
public object CheckKf_SellOutBill(string HInterID, int Type, string user)
{
try
{
//判断是否有删除权限
if (!DBUtility.ClsPub.Security_Log("Kf_SellOutBill_Check", 1, false, user))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "无权限审核!";
objJsonResult.data = null;
return objJsonResult;
}
if (string.IsNullOrWhiteSpace(HInterID))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "HInterID为空!";
objJsonResult.data = null;
return objJsonResult;
}
ClsPub.CurUserName = user;
oCN.BeginTran();//开始事务
//Type 1 审核 2 反审核
if (Type == 1)
{
if (!BillOld.CheckBill(int.Parse(HInterID), ref ClsPub.sExeReturnInfo))
{
objJsonResult.code = "0";
objJsonResult.count = 1;
objJsonResult.Message = "审核失败!原因:" + ClsPub.sExeReturnInfo;
objJsonResult.data = null;
return objJsonResult;
}
}
else
{
if (BillOld.AbandonCheck(int.Parse(HInterID), ref ClsPub.sExeReturnInfo))
{
SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
//DataSet DSet = oCn.RunProcReturn("exec h_p_Sc_ICMOBill_AbandonCheckCtrl " + int.Parse(HInterID), "h_p_Sc_ICMOBill_AbandonCheckCtrl");
//if (DBUtility.ClsPub.isInt(DSet.Tables[0].Rows[0]["Hback"]) != 0)
//{
// objJsonResult.code = "0";
// objJsonResult.count = 1;
// objJsonResult.Message = "该任务单已下推流转卡,不允许反审核" + DBUtility.ClsPub.isStrNull(DSet.Tables[0].Rows[0]["HBackRemark"]);
// objJsonResult.data = null;
// return objJsonResult;
//}
}
else
{
objJsonResult.code = "0";
objJsonResult.count = 1;
objJsonResult.Message = "审核失败!原因:" + ClsPub.sExeReturnInfo;
objJsonResult.data = null;
return objJsonResult;
}
}
oCN.Commit();//提交事务
objJsonResult.code = "0";
objJsonResult.count = 1;
objJsonResult.Message = "执行成功!";
objJsonResult.data = null;
return objJsonResult; ;
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "执行失败!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
#endregion
#region 销售出库单关闭/反关闭功能
[Route("Kf_SellOutBill/CloseKf_SellOutBill")]
[HttpGet]
public object CloseKf_SellOutBill(string HInterID, int Type, string user)
{
try
{
//判断是否有删除权限
if (!DBUtility.ClsPub.Security_Log("Kf_SellOutBill_Close", 1, false, user))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "无权限关闭!";
objJsonResult.data = null;
return objJsonResult;
}
if (string.IsNullOrWhiteSpace(HInterID))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "HInterID为空!";
objJsonResult.data = null;
return objJsonResult;
}
ClsPub.CurUserName = user;
oCN.BeginTran();//开始事务
//Type 1 关闭 2 反关闭
if (Type == 1)
{
if (!BillOld.CloseBill(int.Parse(HInterID), ref ClsPub.sExeReturnInfo))
{
objJsonResult.code = "0";
objJsonResult.count = 1;
objJsonResult.Message = "关闭失败!原因:" + ClsPub.sExeReturnInfo;
objJsonResult.data = null;
return objJsonResult;
}
}
else
{
if (!BillOld.CancelClose(int.Parse(HInterID), ref ClsPub.sExeReturnInfo))
{
objJsonResult.code = "0";
objJsonResult.count = 1;
objJsonResult.Message = "反关闭失败!原因:" + ClsPub.sExeReturnInfo;
objJsonResult.data = null;
return objJsonResult;
}
}
oCN.Commit();//提交事务
objJsonResult.code = "0";
objJsonResult.count = 1;
objJsonResult.Message = "执行成功!";
objJsonResult.data = null;
return objJsonResult; ;
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "执行失败!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
#endregion
#region 销售出库单作废/反作废功能
[Route("Kf_SellOutBill/CancellKf_SellOutBill")]
[HttpGet]
public object CancellKf_SellOutBill(string HInterID, int Type, string user)
{
try
{
//判断是否有删除权限
if (!DBUtility.ClsPub.Security_Log("Kf_SellOutBill_Delete", 1, false, user))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "无权限作废!";
objJsonResult.data = null;
return objJsonResult;
}
if (string.IsNullOrWhiteSpace(HInterID))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "HInterID为空!";
objJsonResult.data = null;
return objJsonResult;
}
ClsPub.CurUserName = user;
oCN.BeginTran();//开始事务
//Type 1 作废 2 反作废
if (Type == 1)
{
if (!BillOld.Cancelltion(int.Parse(HInterID), ref ClsPub.sExeReturnInfo))
{
objJsonResult.code = "0";
objJsonResult.count = 1;
objJsonResult.Message = "作废失败!原因:" + ClsPub.sExeReturnInfo;
objJsonResult.data = null;
return objJsonResult;
}
}
else
{
if (!BillOld.AbandonCancelltion(int.Parse(HInterID), ref ClsPub.sExeReturnInfo))
{
objJsonResult.code = "0";
objJsonResult.count = 1;
objJsonResult.Message = "反作废失败!原因:" + ClsPub.sExeReturnInfo;
objJsonResult.data = null;
return objJsonResult;
}
}
oCN.Commit();//提交事务
objJsonResult.code = "0";
objJsonResult.count = 1;
objJsonResult.Message = "执行成功!";
objJsonResult.data = null;
return objJsonResult; ;
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "执行失败!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
#endregion
#region 销售出库
///
/// 保存销售出库单
///
///
///
[Route("Kf_SellOutBill/SaveSellOutBillList")]
[HttpPost]
public object SaveSellOutBillList([FromBody] JObject msg)
{
var _value = msg["msg"].ToString();
string msg1 = _value.ToString();
string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
string msg2 = sArray[0].ToString();
string msg3 = sArray[1].ToString();
string user = sArray[2].ToString();
string OperationType = sArray[3].ToString();
string UserName = "";
ListModels oListModels = new ListModels();
try
{
//判断权限
if (!DBUtility.ClsPub.Security_Log("Kf_SellOutBill_Edit", 1, false, user))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "无保存权限";
objJsonResult.data = null;
return objJsonResult;
}
DAL.ClsKf_SellOutBillForLayUI oBill = new DAL.ClsKf_SellOutBillForLayUI();
List lsmain = new List();
msg2 = msg2.Replace("\\", "");
msg2 = msg2.Replace("\n", ""); //\n
lsmain = oListModels.getSellOutBillMainByJson(msg2);
foreach (Model.ClsKf_SellOutBillMain oItem in lsmain)
{
//oItem.HMaker = "";
UserName = oItem.HMaker;
oItem.HMakeDate = DBUtility.ClsPub.isStrNull(DateTime.Now.ToString("yyyy-MM-dd"));
oItem.HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year);
oItem.HDate = DBUtility.ClsPub.isDate(DateTime.Now.ToString("yyyy-MM-dd"));
oItem.HBillType = "1205";
oItem.HBillSubType = "1205";
oItem.HBillStatus = 0;
oItem.HPeriod = 0;
oItem.HMaker = user;
oItem.HMainSourceInterID = oItem.HInterID;
//oItem.HInterID = DBUtility.ClsPub.CreateBillID_SRMProd("1103", ref DBUtility.ClsPub.sExeReturnInfo);
if (DBUtility.ClsPub.isStrNull(oItem.HDate) == "")
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "保存失败!没有单据日期,无法保存!";
objJsonResult.data = 1;
return objJsonResult;
}
oBill.omodel = oItem;
}
//表体数据
//按 },{来拆分数组 //去掉【和】
msg3 = msg3.Substring(1, msg3.Length - 2);
msg3 = msg3.Replace("\\", "");
msg3 = msg3.Replace("\n", ""); //\n
//msg2 = msg2.Replace("'", "’");
List ls = new List();
ls = oListModels.getSellOutBillSubByJson(msg3);
int i = 0;
foreach (Model.ClsKf_SellOutBillSub oItemSub in ls)
{
i++;
oItemSub.HSourceEntryID = 0;
oItemSub.HSourceInterID = 0;
oItemSub.HEntryID = i;
// DBUtility.ClsPub.isDate(DateTime.Now);
oItemSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now);
oItemSub.HCloseType = false;
oItemSub.HSourceBillNo = "";
oItemSub.HSourceBillType = "";
oItemSub.HRelationQty = 0;
oItemSub.HRelationMoney = 0;
oItemSub.HCloseMan = "";
//oItemSub.HRemark = "";
oBill.DetailColl.Add(oItemSub);
}
//保存
//保存完毕后处理
bool bResult;
if (Convert.ToInt32(OperationType) == 1)
{
// bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
}
else
{
bResult = oBill.ModifyBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo);
}
if (bResult)
{
objJsonResult.code = "0";
objJsonResult.count = 1;
objJsonResult.Message = "保存成功!";
//WebAPIController.Add_Log("送货单下推", UserName, "生成送货单");
objJsonResult.data = 1;
return objJsonResult;
}
else
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "保存失败!" + DBUtility.ClsPub.sExeReturnInfo;
objJsonResult.data = 1;
return objJsonResult;
}
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "保存失败!" + e.ToString();
objJsonResult.data = 1;
return objJsonResult;
}
}
#endregion
///
/// 根据ID 查找记录
///参数:string sql。
///返回值:object。
///
[Route("Kf_SellOutBill/cx")]
[HttpGet]
public object cx(long HInterID)
{
try
{
ds = oCN.RunProcReturn("select * from h_v_IF_SellOutBillList where hmainid=" + HInterID, "h_v_IF_SellOutBillList");
if (ds == null || ds.Tables[0].Rows.Count == 0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "false!";
objJsonResult.data = null;
return objJsonResult;
}
else
{
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message = "Sucess!";
objJsonResult.data = ds.Tables[0];
return objJsonResult;
}
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "Exception!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
}
}