using DBUtility;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using WebAPI.Models;
namespace WebAPI.Controllers.MJGL
{
public class Sc_MouldRepairOutBillController : ApiController
{
public DBUtility.ClsPub.Enum_BillStatus BillStatus;//单据状态(新增,修改,浏览,更新单价,变更)
private json objJsonResult = new json();
public DataSet ds = new DataSet();
public SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
DAL.ClsSc_MouldRepairOutBill oBill = new DAL.ClsSc_MouldRepairOutBill();
public DLL.ClsSc_MouldRepairOutBill BillNew0 = new DLL.ClsSc_MouldRepairOutBill(); //模具改制出库对应单据类
public DLL.ClsSc_MouldRepairOutBill BillOld0 = new DLL.ClsSc_MouldRepairOutBill(); //模具改制出库对应单据类
#region 模具改制出库单列表
[Route("Sc_MouldRepairOutBill/Get_MouldRepairOutBillList")]
[HttpGet]
public object Get_MouldRepairOutBillList(string sWhere,string user, string Organization)
{
try
{
ds = Sc_GetMouldRepairOutHouseBill(sWhere, Organization);
//编辑权限
if (!DBUtility.ClsPub.Security_Log_second("Sc_MouldRepairOut_SingleBillList", 1, false, user))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "无查看权限!";
objJsonResult.data = null;
return objJsonResult;
}
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message = "返回记录成功!";
objJsonResult.data = ds.Tables[0];
return objJsonResult;
}
catch (Exception ex)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "查询数据异常,请与管理员联系!" + ex.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
public static DataSet Sc_GetMouldRepairOutHouseBill(string sWhere, string Organization)
{
string sql1 = string.Format(@"select * from h_v_Sc_MouldRepairOutBillList where 库存组织='" + Organization + "'");
if (sWhere == null || sWhere.Equals(""))
{
return new SQLHelper.ClsCN().RunProcReturn(sql1+ "order by 制单日期 desc", "h_v_Sc_MouldRepairOutBillList");
}
else
{
string sql = sql1 + sWhere+ "order by 制单日期 desc";
return new SQLHelper.ClsCN().RunProcReturn(sql, "h_v_Sc_MouldRepairOutBillList");
}
}
#endregion
#region [模具改制出库单删除功能]
///
/// 模具改制出库单删除功能
///
///
[Route("Sc_MouldRepairOutBill/set_DeleteBill")]
[HttpGet]
public object set_DeleteBill(string HInterID,string user)
{
//编辑权限
if (!DBUtility.ClsPub.Security_Log_second("Sc_MouldRepairOut_SingleBill_Delete", 1, false, user))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "无删除权限!";
objJsonResult.data = null;
return objJsonResult;
}
string s = "";
Int64 lngBillKey = 0;
lngBillKey = DBUtility.ClsPub.isLong(HInterID);
if (lngBillKey == 0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "单据ID为空!";
objJsonResult.data = null;
return objJsonResult;
}
DLL.ClsSc_MouldRepairOutBill oBill = new DLL.ClsSc_MouldRepairOutBill();
if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo))
{
if (oBill.omodel.HBillStatus > 1)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "单据当前处于不能删除状态,不能删除!";
objJsonResult.data = null;
return objJsonResult;
}
if (oBill.omodel.HChecker != ""&& oBill.omodel.HChecker != null)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "单据已经审核,不能删除!";
objJsonResult.data = null;
return objJsonResult;
}
if (!DBUtility.Xt_BaseBillFun.Fun_AllowDeleteBill(oBill, ref s))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = s + ",不允许删除";
objJsonResult.data = null;
return objJsonResult;
}
//删除前查找当前单据的所有器具ID
//string swhere = "";
//DataSet ds = oCn.RunProcReturn("select HMaterID from Sc_MouldStockBillSub where HinterID=" + HInterID, "Sc_MouldStockBillSub");
//for (var i = 0; i < ds.Tables[0].Rows.Count; i++)
//{
// swhere = swhere + ds.Tables[0].Rows[i]["HMaterID"].ToString() + ",";
//}
//swhere = swhere.Substring(0, swhere.Length - 1);
bool IsDete = oBill.DeleteBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo);
if (IsDete)
{
//删除成功修改器具档案位置
//string sql = string.Format($"exec h_p_Sc_MouldChangeNowWHID 0,0,'{swhere}' ");
string sql = string.Format($"exec h_p_Sc_MouldChangeNowWHID ");
oCn.RunProc(sql);
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message = DBUtility.ClsPub.sExeReturnInfo;
objJsonResult.data = null;
return objJsonResult;
}
else
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = DBUtility.ClsPub.sExeReturnInfo;
objJsonResult.data = null;
return objJsonResult;
}
}
else
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "单据未找到";
objJsonResult.data = null;
return objJsonResult;
}
}
#endregion
#region 模具改制出库保存/编辑 20240702作废
///
/// 保存模具采购入库单
///
///
///
//[Route("Sc_MouldRepairOutHouseBill/SaveGetMouldRepairOutHouseBillList")]
//[HttpPost]
//public object SaveGetMouldRepairOutHouseBillList([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 refSav = sArray[2].ToString();
// string msg4 = sArray[3].ToString();
// string UserName = "";
// string s = "";
// ListModels oListModels = new ListModels();
// try
// {
// //编辑权限
// if (!DBUtility.ClsPub.Security_Log_second("Sc_MouldRepairOut_SingleBill_Edit", 1, false, msg4))
// {
// objJsonResult.code = "0";
// objJsonResult.count = 0;
// objJsonResult.Message = "无保存权限!";
// objJsonResult.data = null;
// return objJsonResult;
// }
// DLL.ClsSc_MouldRepairOutBill oBill = new DLL.ClsSc_MouldRepairOutBill();
// List lsmain = new List();
// msg2 = msg2.Replace("\\", "");
// msg2 = msg2.Replace("\n", ""); //\n
// lsmain = oListModels.getObjectByJson_Gy_MouldRepairOutHouseBillMain(msg2);
// foreach (Models.ClsSc_MouldRepairOutBillMain oItem in lsmain)
// {
// if (refSav == "Add")
// {
// //单据号是否重复
// if (BillNew0.IsExistBillNo(ref ClsPub.sExeReturnInfo, oItem.HBillNo, BillStatus, BillOld0.omodel.HInterID))
// {
// objJsonResult.code = "0";
// objJsonResult.count = 0;
// objJsonResult.Message = "单据号重复!不允许保存!";
// objJsonResult.data = 1;
// return objJsonResult;
// }
// }
// if (refSav == "Update")
// {
// if (BillOld0.ShowBill(oItem.HInterID, ref s) == false)
// {
// objJsonResult.code = "0";
// objJsonResult.count = 0;
// objJsonResult.Message = "此单据有误!";
// objJsonResult.data = 1;
// return objJsonResult;
// }
// //判断是否可编辑
// if (BillOld0.omodel.HChecker != "" && BillOld0.omodel.HChecker != null)
// {
// objJsonResult.code = "0";
// objJsonResult.count = 0;
// objJsonResult.Message = "此单据已经被审核,不允许修改!";
// objJsonResult.data = 1;
// return objJsonResult;
// }
// if (BillOld0.omodel.HBillStatus > 1)
// {
// objJsonResult.code = "0";
// objJsonResult.count = 0;
// objJsonResult.Message = "此单据处于不可编辑状态,不允许修改!";
// objJsonResult.data = 1;
// return objJsonResult;
// }
// if (!DBUtility.Xt_BaseBillFun.Fun_AllowEditBill(BillOld0, ref s))
// {
// objJsonResult.code = "0";
// objJsonResult.count = 0;
// objJsonResult.Message = s + ",不允许修改";
// objJsonResult.data = 1;
// return objJsonResult;
// }
// }
// //oItem.HMaker = "";
// UserName = oItem.HMaker; //制单人
// oItem.HBillType = "3825";
// oItem.HBillSubType = "3825";
// //oItem.HBillNo = ""; //单据号
// //oItem.HDate = DBUtility.ClsPub.isDate(DateTime.Now.ToString("yyyy-MM-dd"));// --日期
// //oItem.HInnerBillNo = ""; // --内部单据号
// oItem.HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year);
// oItem.HMakeDate = DBUtility.ClsPub.isStrNull(DateTime.Now.ToString("yyyy-MM-dd"));
// //oItem.HEquipID = 0; //设备ID(Gy_EquipMent)
// //oItem.HPeriod = 0;
// //oItem.HCheckBeginDate = DBUtility.ClsPub.isDate(DateTime.Now.ToString("yyyy-MM-dd")); // --维修日期
// //oItem.HCheckResult = ""; //验收结论--(正常,异常)
// //oItem.HEmpID = 0; //验收人(Gy_Employee)
// //oItem.HManagerID = 0; //负责人(Gy_Employee)
// //oItem.HDeptID = 0; //验收部门(Gy_Department)
// //oItem.HExplanation = ""; //摘要(故障描述)
// //oItem.HRemark = ""; //备注
// //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.getObjectByJson_Gy_MouldRepairOutHouseBillSub(msg3);
// int i = 0;
// foreach (Models.ClsSc_MouldRepairOutBillSub oItemSub in ls)
// {
// i++;
// oItemSub.HEntryID = i;
// //oItemSub.HRepairCheckID = 0; //验收项目ID
// //oItemSub.HRepairCheckContent = ""; //验收内容
// //oItemSub.HManagerID = 0; //负责人ID
// //oItemSub.HCloseMan = ""; //行关闭
// oItemSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now);
// oItemSub.HCloseType = false; //关闭类型
// //oItemSub.HRemark = ""; //备注
// oItemSub.HSourceInterID = 0; // 源单主内码
// oItemSub.HSourceEntryID = 0; //源单子内码
// //oItemSub.HSourceBillNo = ""; //源单单号
// //oItemSub.HSourceBillType = ""; //源单类型
// //oItemSub.HRelationQty = 0; //关联数量
// //oItemSub.HRelationMoney = 0; //关联金额
// //oItemSub.HRepairID = 0; //维修项目
// //oItemSub.HRepairExplanation =""; //维修要求
// //oItemSub.HMoney = 0; //维修费用
// oBill.DetailColl.Add(oItemSub);
// }
// //保存
// //保存完毕后处理
// bool bResult;
// if (oBill.omodel.HInterID == 0)
// {
// // bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
// bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
// string sql = string.Format($"exec h_p_Sc_MouldChangeFileStatus 'out',{oBill.omodel.HInterID.ToString()} ");
// oCn.RunProc(sql);
// }
// else
// {
// bResult = oBill.ModifyBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo);
// //修改成功
// //string sql = string.Format($"exec h_p_Sc_MouldChangeNowWHID 1,{oBill.omodel.HInterID.ToString()},' ' ");
// string sql = string.Format($"exec h_p_Sc_MouldChangeNowWHID ");
// oCn.RunProc(sql);
// }
// 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
#region 模具改制出库保存/编辑 20240702
///
/// 保存模具采购入库单
///
///
///
[Route("Sc_MouldRepairOutHouseBill/SaveGetMouldRepairOutHouseBillList")]
[HttpPost]
public object SaveGetMouldRepairOutHouseBillList([FromBody] JObject msg)
{
var _value = msg["msg"].ToString();
string msg1 = _value.ToString();
string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
string sMainStr = sArray[0].ToString(); //主表数据
string sSubStr = sArray[1].ToString(); //子表数据
string OperationType = sArray[2].ToString(); //操作类型(Add新增、Update编辑)
string HMaker = sArray[3].ToString(); //制单人
try
{
//判断权限
if (OperationType == "Add")
{
BillStatus = DBUtility.ClsPub.Enum_BillStatus.BillStatus_AddNew;
//判断新增权限
if (!DBUtility.ClsPub.Security_Log("Sc_MouldRepairOut_SingleBill", 1, false, HMaker))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "您没有该模块新增权限,请与管理员联系!";
objJsonResult.data = null;
return objJsonResult;
}
}
else
{
BillStatus = DBUtility.ClsPub.Enum_BillStatus.BillStatus_Modify;
//判断编辑权限
if (!DBUtility.ClsPub.Security_Log("Sc_MouldRepairOut_SingleBill_Edit", 1, false, HMaker))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "您没有该模块编辑权限,请与管理员联系!";
objJsonResult.data = null;
return objJsonResult;
}
}
//表头赋值
sMainStr = sMainStr.Replace("\\", "");
sMainStr = sMainStr.Replace("\n", "");
sMainStr = "[" + sMainStr.ToString() + "]";
List lsmain = Newtonsoft.Json.JsonConvert.DeserializeObject>(sMainStr);
foreach (Model.ClsSc_MouldStockBillMain oItem in lsmain)
{
//单据号是否重复
if (oBill.IsExistBillNo(ref ClsPub.sExeReturnInfo, oItem.HBillNo, BillStatus, oItem.HInterID))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "单据号重复!不允许保存!";
objJsonResult.data = null;
return objJsonResult;
}
//判断会计期是否合理
string s = "";
int sYear = 0;
int sPeriod = 0;
if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(oItem.HDate, ref sYear, ref sPeriod, ref s) == false)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = s;
objJsonResult.data = null;
return objJsonResult;
}
oItem.HYear = sYear;
oItem.HPeriod = sPeriod;
DBUtility.ClsPub.CurUserName = oItem.HMaker;
oBill.omodel = oItem;
}
//表体赋值
//按 },{来拆分数组 //去掉【和】
sSubStr = sSubStr.Substring(1, sSubStr.Length - 2);
sSubStr = sSubStr.Replace("\\", "");
sSubStr = sSubStr.Replace("\n", "");
sSubStr = "[" + sSubStr.ToString() + "]";
List ls = Newtonsoft.Json.JsonConvert.DeserializeObject>(sSubStr);
int i = 0;
foreach (Model.ClsSc_MouldStockBillSub oItemSub in ls)
{
i++;
oItemSub.HEntryID = i;
oBill.DetailColl.Add(oItemSub);
}
string sErrMsg = "";
bool bResult;
//获取系统参数
if (oSystemParameter.ShowBill(ref sErrMsg) == true)
{
//保存
if (OperationType == "Add") //新增保存
{
bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
if (oSystemParameter.omodel.WMS_CampanyName == "四维尔") //系统参数 客户定制化名称 空白为通用
{
//修改器具档案位置
string sql = string.Format($"exec h_p_Sc_MouldChangeFileStatus 'out',{oBill.omodel.HInterID.ToString()} ");
oCn.RunProc(sql);
}
}
else //编辑保存
{
bResult = oBill.ModifyBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo);
if (oSystemParameter.omodel.WMS_CampanyName == "四维尔") //系统参数 客户定制化名称 空白为通用
{
//修改器具档案位置
string sql = string.Format($"exec h_p_Sc_MouldChangeNowWHID ");
oCn.RunProc(sql);
}
}
}
else
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "获取系统参数失败! " + sErrMsg;
objJsonResult.data = null;
return objJsonResult;
}
if (bResult)
{
objJsonResult.code = "0";
objJsonResult.count = 1;
objJsonResult.Message = DBUtility.ClsPub.sExeReturnInfo; //成功!
objJsonResult.data = null;
return objJsonResult;
}
else
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "保存失败!" + DBUtility.ClsPub.sExeReturnInfo;
objJsonResult.data = null;
return objJsonResult;
}
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "保存失败!" + e.Message;
objJsonResult.data = null;
return objJsonResult;
}
}
#endregion
#region 器具改制出库单审核/反审核
[Route("Sc_MouldRepairOutBill/AuditMouldRepairOutBill")]
[HttpGet]
public object AuditMouldRepairOutBill(string HInterID, string user, int flag)
{
//flag=1 审核; flag=2 反审核
//编辑权限
if (!DBUtility.ClsPub.Security_Log_second("Sc_MouldRepairOut_SingleBill_Check", 1, false, user))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "无审核权限!";
objJsonResult.data = null;
return objJsonResult;
}
Int64 lngBillKey = 0;
lngBillKey = DBUtility.ClsPub.isLong(HInterID);
if (lngBillKey == 0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "单据ID为空!";
objJsonResult.data = null;
return objJsonResult;
}
DLL.ClsSc_MouldProdOutBill oBill = new DLL.ClsSc_MouldProdOutBill();
if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo))
{
if (flag == 1)
{
if (oBill.omodel.HBillStatus == 2)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "当前单据已审核,无需再次审核";
objJsonResult.data = null;
return objJsonResult;
}
else
{
string HCheckDate = DateTime.Now.Date.ToString();
oCn.RunProc(" Update Sc_MouldStockBillMain set HChecker ='" + user + "',HCheckDate='" + HCheckDate + "',HBillStatus=2 Where HBillType='3825' and HInterID=" + HInterID);
objJsonResult.code = "0";
objJsonResult.count = 1;
objJsonResult.Message = "审核成功!";
objJsonResult.data = 1;
return objJsonResult;
}
}
else
{
if (oBill.omodel.HBillStatus == 1)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "当前单据未审核,无需反审核";
objJsonResult.data = null;
return objJsonResult;
}
else
{
string HCheckDate = DateTime.Now.Date.ToString();
oCn.RunProc(" Update Sc_MouldStockBillMain set HChecker=' ',HCheckDate=' ',HBillStatus=1 Where HBillType='3825' and HInterID=" + HInterID);
objJsonResult.code = "0";
objJsonResult.count = 1;
objJsonResult.Message = "反审核成功!";
objJsonResult.data = 1;
return objJsonResult;
}
}
}
else
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "单据未找到";
objJsonResult.data = null;
return objJsonResult;
}
}
#endregion
#region[模具改制出库单编辑时获取表头数据]
[Route("Sc_MouldRepairOutBill/Sc_MouldRepairOutHouseBillListCheckDetai")]
[HttpGet]
public ApiResult Sc_MouldRepairOutHouseBillListCheckDetai(string HID)
{
if (string.IsNullOrEmpty(HID))
return new ApiResult { code = -1, msg = "ID不能为空" };
SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
var dataSet = oCN.RunProcReturn("select top 1 * from h_v_Sc_MouldRepairOutBillList where hmainid= " + HID + " ", "h_v_Sc_MouldRepairOutBillList");
if (dataSet == null || dataSet.Tables[0].Rows.Count == 0)
return new ApiResult { code = -1, msg = "不存在单号" };
return new ApiResult { code = 1, msg = "查询成功", data = dataSet };
}
#endregion
#region[器具改制出库单编辑时获取表体数据]
[Route("Sc_MouldRepairOutBill/Sc_MouldRepairOutBillListCheckDetai1")]
[HttpGet]
public object Sc_MouldRepairOutBillListCheckDetai1(string sqlWhere)
{
DataSet ds;
DataSet ds1;
List