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 Sc_ProcessExchangeBillController : ApiController
{
public DBUtility.ClsPub.Enum_BillStatus BillStatus;
private json objJsonResult = new json();
SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
DataSet ds;
///
/// 新增单据-保存按钮
///参数:string sql。
///返回值:object。
///
[Route("Sc_ProcessExchangeBill/AddBill")]
[HttpPost]
public object AddBill([FromBody] JObject sMainSub)
{
var _value = sMainSub["sMainSub"].ToString();
string msg1 = _value.ToString();
//保存单据
return objJsonResult = AddBillMain(msg1);
}
public json AddBillMain(string msg1)
{
string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
string msg2 = sArray[0].ToString();
string msg3 = sArray[1].ToString();
bool bResult;
try
{
msg2 = "[" + msg2.ToString() + "]";
List mainList = Newtonsoft.Json.JsonConvert.DeserializeObject>(msg2);
DAL.ClsSc_ProcessExchangeBill BillNew = new DAL.ClsSc_ProcessExchangeBill();
//判断会计期是否合理
string s = "";
int sYear = 0;
int sPeriod = 0;
DateTime HDate = mainList[0].HDate;//日期
if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(HDate, ref sYear, ref sPeriod, ref s) == false)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = s;
objJsonResult.data = null;
return objJsonResult;
}
BillNew.omodel.HInterID = mainList[0].HInterID;//递入type得到的单据ID
BillNew.omodel.HYear = sYear;
BillNew.omodel.HPeriod = sPeriod;
BillNew.omodel.HBillNo = mainList[0].HBillNo;//递入type得到的单据号
BillNew.omodel.HDate = HDate;
BillNew.omodel.HRemark = mainList[0].HRemark;//备注
BillNew.omodel.HMaker = mainList[0].HMaker;
BillNew.omodel.HWWOrderInterID = ClsPub.isLong(mainList[0].HWWOrderInterID);
BillNew.omodel.HWWOrderEntryID = ClsPub.isLong(mainList[0].HWWOrderEntryID);
BillNew.omodel.HWWOrderBillNo = ClsPub.isStrNull(mainList[0].HWWOrderBillNo);
BillNew.omodel.HICMOInterID = ClsPub.isLong(mainList[0].HICMOInterID);
BillNew.omodel.HICMOEntryID = ClsPub.isLong(mainList[0].HICMOEntryID);
BillNew.omodel.HICMOBillNo = ClsPub.isStrNull(mainList[0].HICMOBillNo);
BillNew.omodel.HMaterID2 = ClsPub.isLong(mainList[0].HMaterID2);
BillNew.omodel.HMaterID = ClsPub.isLong(mainList[0].HMaterID);
BillNew.omodel.HMaterNumber = ClsPub.isStrNull(mainList[0].HMaterNumber);
BillNew.omodel.HBatchNo = ClsPub.isStrNull(mainList[0].HBatchNo);
BillNew.omodel.HUnitID = ClsPub.isLong(mainList[0].HUnitID);
BillNew.omodel.HUnitNumber = ClsPub.isStrNull(mainList[0].HUnitNumber);
BillNew.omodel.HPlanQty = ClsPub.isDoule(mainList[0].HPlanQty);
BillNew.omodel.HQty = ClsPub.isDoule(mainList[0].HQty);
BillNew.omodel.HPlanBeginDate = ClsPub.isDate(mainList[0].HPlanBeginDate);
BillNew.omodel.HPlanEndDate = ClsPub.isDate(mainList[0].HPlanEndDate);
BillNew.omodel.HExplanation = ClsPub.isStrNull(mainList[0].HExplanation);
BillNew.omodel.HInnerBillNo = ClsPub.isStrNull(mainList[0].HInnerBillNo);
BillNew.omodel.HWorkShopID = ClsPub.isLong(mainList[0].HWorkShopID);
BillNew.omodel.HSupID = ClsPub.isLong(mainList[0].HSupID);
BillNew.omodel.HBLFlag = mainList[0].HBLFlag;
BillNew.omodel.HMainMaterID = ClsPub.isLong(mainList[0].HMainMaterID);
BillNew.omodel.HKeyMaterID = ClsPub.isLong(mainList[0].HKeyMaterID);
BillNew.omodel.HOrderProcNO = ClsPub.isStrNull(mainList[0].HOrderProcNO);
BillNew.omodel.HEquipMentID = ClsPub.isLong(mainList[0].HEquipMentID);
BillNew.omodel.HMateOutBatchNo = ClsPub.isStrNull(mainList[0].HMateOutBatchNo);
BillNew.omodel.HProjectNum = ClsPub.isStrNull(mainList[0].HProjectNum);
BillNew.omodel.HProdMaterCode = ClsPub.isStrNull(mainList[0].HProdMaterCode);
BillNew.omodel.HSeOrderBillNo = ClsPub.isStrNull(mainList[0].HSeOrderBillNo);
BillNew.omodel.HCusShortName = ClsPub.isStrNull(mainList[0].HCusShortName);
BillNew.omodel.HCusNeedMaterial = ClsPub.isStrNull(mainList[0].HCusNeedMaterial);
BillNew.omodel.HPlanSendGoodsDate = ClsPub.isStrNull(mainList[0].HPlanSendGoodsDate);
BillNew.omodel.HProdMaterName = ClsPub.isStrNull(mainList[0].HProdMaterName);
BillNew.omodel.HCusName = ClsPub.isStrNull(mainList[0].HCusName);
BillNew.omodel.HWorkRemark = ClsPub.isStrNull(mainList[0].HWorkRemark);
BillNew.omodel.HImportNote = ClsPub.isStrNull(mainList[0].HImportNote);
BillNew.omodel.HMaterNumber_A = ClsPub.isStrNull(mainList[0].HMaterNumber_A);
BillNew.omodel.HMaterNumber_B = ClsPub.isStrNull(mainList[0].HMaterNumber_B);
BillNew.omodel.HMaterNumber_C = ClsPub.isStrNull(mainList[0].HMaterNumber_C);
BillNew.omodel.HMaterNumber_D = ClsPub.isStrNull(mainList[0].HMaterNumber_D);
BillNew.omodel.HProdType = ClsPub.isStrNull(mainList[0].HProdType);
BillNew.omodel.HMaterShortName = ClsPub.isStrNull(mainList[0].HMaterShortName);
BillNew.omodel.HMaterIDA = ClsPub.isStrNull(mainList[0].HMaterIDA);
BillNew.omodel.HMaterIDB = ClsPub.isStrNull(mainList[0].HMaterIDB);
BillNew.omodel.HMaterIDC = ClsPub.isStrNull(mainList[0].HMaterIDC);
BillNew.omodel.HMaterIDD = ClsPub.isStrNull(mainList[0].HMaterIDD);
List subList = Newtonsoft.Json.JsonConvert.DeserializeObject>(msg3);
BillNew.DetailColl = new List();
if (BillNew.omodel.HICMOInterID == 0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "请选择任务单!";
objJsonResult.data = null;
return objJsonResult;
}
for (int i = 0; i < subList.ToArray().Length; i++)
{
if (DBUtility.ClsPub.isInt(subList[i].HProcID) != 0)//HQty
{
Model.ClsSc_ProcessExchangeBillSub oSub = new Model.ClsSc_ProcessExchangeBillSub();
oSub.HEntryID = i+1;
oSub.HRemark = DBUtility.ClsPub.isStrNull(subList[i].HRemark);
oSub.HSourceInterID = ClsPub.isLong(mainList[0].HICMOInterID);
oSub.HSourceEntryID = ClsPub.isLong(mainList[0].HICMOEntryID);
oSub.HSourceBillType = "85";
oSub.HSourceBillNo = ClsPub.isStrNull(mainList[0].HICMOBillNo);
oSub.HRelationQty = DBUtility.ClsPub.isDoule(subList[i].HRelationQty);
//oSub.HRelationQty_In = DBUtility.ClsPub.isDoule(subList[i].HRelationQty_In);
//oSub.HRelationQty_Out = DBUtility.ClsPub.isDoule(subList[i].HRelationQty_Out);
//oSub.HRelationQty_WWOrder = DBUtility.ClsPub.isDoule(subList[i].HRelationQty_WWOrder);
//oSub.HRelationQty_Bad = DBUtility.ClsPub.isDoule(subList[i].HRelationQty_Bad);
oSub.HRelationMoney = DBUtility.ClsPub.isDoule(subList[i].HRelationMoney);
oSub.HCloseMan = DBUtility.ClsPub.isStrNull(subList[i].HCloseMan);
oSub.HEntryCloseDate = DBUtility.ClsPub.isDate(subList[i].HEntryCloseDate);
oSub.HCloseType = DBUtility.ClsPub.isBool(subList[i].HCloseType);
oSub.HQty = DBUtility.ClsPub.isDoule(subList[i].HQty);
if (oSub.HQty <= 0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "第" + ClsPub.isStrNull(i + 1) + "行,流转卡数量不能为0或者小于0";
objJsonResult.data = null;
return objJsonResult;
}
oSub.HProcNo = DBUtility.ClsPub.isLong(subList[i].HProcNo);
if (oSub.HProcNo <= 0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "第" + ClsPub.isStrNull(i + 1) + "行,流水号不能为0或者小于0";
objJsonResult.data = null;
return objJsonResult;
}
oSub.HProcID = DBUtility.ClsPub.isLong(subList[i].HProcID);
oSub.HProcNumber = DBUtility.ClsPub.isStrNull(subList[i].HProcNumber);
oSub.HWorkRemark = DBUtility.ClsPub.isStrNull(subList[i].HWorkRemark);
oSub.HCenterID = DBUtility.ClsPub.isLong(subList[i].HCenterID);
oSub.HDeptID = DBUtility.ClsPub.isLong(subList[i].HDeptID);
oSub.HDeptNumber = DBUtility.ClsPub.isStrNull(subList[i].HDeptNumber);
////oSub.HGroupID = DBUtility.ClsPub.isLong(grdMain.Rows[i].Cells[HGroupIDCol].Value);
oSub.HGroupNumber = DBUtility.ClsPub.isStrNull(subList[i].HGroupNumber);
oSub.HWorkerID = DBUtility.ClsPub.isLong(subList[i].HWorkerID);
oSub.HWorkerNumber = DBUtility.ClsPub.isStrNull(subList[i].HWorkerNumber);
oSub.HSourceID = DBUtility.ClsPub.isLong(subList[i].HSourceID);
oSub.HTimeUnit = DBUtility.ClsPub.isStrNull(subList[i].HTimeUnit);
oSub.HPlanWorkTimes = DBUtility.ClsPub.isSingle(subList[i].HPlanWorkTimes);
oSub.HPlanBeginDate = DBUtility.ClsPub.isDate(subList[i].HPlanBeginDate);
oSub.HPlanEndDate = DBUtility.ClsPub.isDate(subList[i].HPlanEndDate);
oSub.HRelBeginDate = DBUtility.ClsPub.isDate(subList[i].HRelBeginDate);
oSub.HRelEndDate = DBUtility.ClsPub.isDate(subList[i].HRelEndDate);
oSub.HReadyTime = 0;
oSub.HQueueTime = 0;
oSub.HMoveTime = 0;
oSub.HBeginDayQty = DBUtility.ClsPub.isSingle(subList[i].HBeginDayQty);
oSub.HBeginFixQty = DBUtility.ClsPub.isSingle(subList[i].HBeginFixQty);
oSub.HFixWorkDays = DBUtility.ClsPub.isSingle(subList[i].HFixWorkDays);
oSub.HTrunWorkDays = DBUtility.ClsPub.isSingle(subList[i].HTrunWorkDays);
oSub.HReadyTimes = DBUtility.ClsPub.isSingle(subList[i].HReadyTimes);
oSub.HMyWorkDays = DBUtility.ClsPub.isSingle(subList[i].HMyWorkDays);
oSub.HOutPrice = DBUtility.ClsPub.isSingle(subList[i].HOutPrice);
oSub.HOutMoney = DBUtility.ClsPub.isSingle(subList[i].HOutMoney);
oSub.HLastProc = "否";
oSub.HFstProc = "否";
oSub.HKeyProc = DBUtility.ClsPub.isStrNull(subList[i].HKeyProc);
oSub.HSupID = DBUtility.ClsPub.isLong(subList[i].HSupID);
oSub.HSupFlag = DBUtility.ClsPub.isBool(subList[i].isEntrust);
oSub.HBackProc = DBUtility.ClsPub.isBool(subList[i].HBackProc);
oSub.HEdit = DBUtility.ClsPub.isBool(subList[i].HEdit);
if (oSub.HCenterID == 0 && oSub.HSupFlag == false)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "第" + ClsPub.isStrNull(i + 1) + "行,工作中心或委外标记不能同时为空";
objJsonResult.data = null;
return objJsonResult;
}
oSub.HICMOBillNo = DBUtility.ClsPub.isStrNull(subList[i].HICMOBillNo);
oSub.HICMOInterID = DBUtility.ClsPub.isLong(subList[i].HICMOInterID);
oSub.HSeOrderInterID = DBUtility.ClsPub.isLong(subList[i].HSeOrderInterID);
oSub.HSeOrderEntryID = DBUtility.ClsPub.isLong(subList[i].HSeOrderEntryID);
oSub.HSeOrderBillNo = DBUtility.ClsPub.isStrNull(subList[i].HSeOrderBillNo);
oSub.HWWOrderInterID = DBUtility.ClsPub.isLong(subList[i].HWWOrderInterID);
oSub.HWWOrderEntryID = DBUtility.ClsPub.isLong(subList[i].HWWOrderEntryID);
oSub.HWWOrderBillNo = DBUtility.ClsPub.isStrNull(subList[i].HWWOrderBillNo);
oSub.HSumPassRate = DBUtility.ClsPub.isSingle(subList[i].HSumPassRate);
oSub.HPassRate = DBUtility.ClsPub.isSingle(subList[i].HPassRate);
oSub.HOverRate = DBUtility.ClsPub.isDoule(subList[i].HOverRate);
oSub.HMaxQty = DBUtility.ClsPub.isDoule(subList[i].HMaxQty);
oSub.HTechnologyParameter = DBUtility.ClsPub.isStrNull(subList[i].HTechnologyParameter);
oSub.HPicNum = DBUtility.ClsPub.isStrNull(subList[i].HPicNum);
oSub.HProcCheckNote = DBUtility.ClsPub.isStrNull(subList[i].HProcCheckNote);
oSub.HMouldNo = "";
oSub.HProcWorkNum = "";
BillNew.DetailColl.Add(oSub);
}
}
//保存完毕后处理
//if (BillStatus == DBUtility.ClsPub.Enum_BillStatus.BillStatus_AddNew)
//{
// bResult = BillNew.AddBill(ref ClsPub.sExeReturnInfo);
//}
//else
//{
// bResult = BillNew.ModifyBill(BillNew.omodel.HInterID, ref ClsPub.sExeReturnInfo);
//}
bResult = BillNew.AddBill(ref ClsPub.sExeReturnInfo);
//提示
if (bResult == true)
{
objJsonResult.code = "1";
objJsonResult.count = 1;
//objJsonResult.Message = "单据存盘完毕!单据号:" + mainList[0].HBillNo.Trim();
objJsonResult.Message = ClsPub.sExeReturnInfo+"单据号:" + mainList[0].HBillNo.Trim();
objJsonResult.data = null;
return objJsonResult;
}
else
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "保存失败!原因:" + ClsPub.sExeReturnInfo;
objJsonResult.data = null;
return objJsonResult;
}
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "Exception!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
///
/// 返回生产任务单明细行
///
/// 生产任务单ID
/// object
[Route("Sc_ProcessExchangeBill/GetICMOBillList")]
[HttpGet]
public object GetICMOBillList(int hmainid,int OrganizationID)
{
try
{
if (hmainid == 0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "生产任务单ID为0!";
objJsonResult.data = null;
return objJsonResult;
}
ds = oCN.RunProcReturn("select * from h_v_Sc_ICMOBillListDetail where hmainid=" + hmainid, "h_v_Sc_ICMOBillListDetail");
if (ds == null || ds.Tables[0].Rows.Count == 0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "此生产任务单无明细行!";
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;
}
}
///
/// 返回生产任务单明细行
///
/// 生产任务单ID
/// object
[Route("Sc_ProcessExchangeBill/GetICMOBillDetail")]
[HttpGet]
public object GetICMOBillDetail(int hmainid, int OrganizationID)
{
try
{
if (hmainid == 0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "生产任务单ID为0!";
objJsonResult.data = null;
return objJsonResult;
}
ds = oCN.RunProcReturn("select * from h_v_S_Sc_ICMOBillList where hmainid=" + hmainid, "h_v_S_Sc_ICMOBillList");
if (ds == null || ds.Tables[0].Rows.Count == 0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "此生产任务单无明细行!";
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;
}
}
//
}
}