From 385da37de94758dfe8befb0635307409869ec68a Mon Sep 17 00:00:00 2001
From: yangle <admin@YINMOU>
Date: 星期二, 08 四月 2025 11:06:07 +0800
Subject: [PATCH] 还样获取取样单数据
---
WebAPI/Controllers/SCGL/QC_OutCompCheckBillController.cs | 772 ++++++++++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 660 insertions(+), 112 deletions(-)
diff --git a/WebAPI/Controllers/SCGL/QC_OutCompCheckBillController.cs b/WebAPI/Controllers/SCGL/QC_OutCompCheckBillController.cs
index baed541..d79645e 100644
--- a/WebAPI/Controllers/SCGL/QC_OutCompCheckBillController.cs
+++ b/WebAPI/Controllers/SCGL/QC_OutCompCheckBillController.cs
@@ -1,6 +1,7 @@
锘縰sing Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Pub_Class;
+using SyntacticSugar.constant;
using System;
using System.Collections;
using System.Collections.Generic;
@@ -20,17 +21,12 @@
public DataSet ds = new DataSet();
public WebServer webserver = new WebServer();
SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
+ public DAL.ClsQC_FirstPieceCheckBill BillOld = new DAL.ClsQC_FirstPieceCheckBill();
-
-
- /// <summary>
- /// 杩斿洖鍑哄巶妫�楠屽崟鍒楄〃
- ///鍙傛暟锛歴tring sql銆�
- ///杩斿洖鍊硷細object銆�
- /// </summary>
+ #region 鍑哄巶妫�楠屽崟鍒楄〃
[Route("QC_OutCompCheckBill/GetOutCompCheckBillList")]
[HttpGet]
- public object GetOutCompCheckBillList(string sWhere,string user)
+ public object GetOutCompCheckBillList(string sWhere, string user)
{
try
{
@@ -52,33 +48,23 @@
else
{
string sql1 = "select * from h_v_QC_OutCompCheckBillList where 1 = 1 ";
- string sql = sql1 + sWhere+ " order by hmainid desc ";
+ string sql = sql1 + sWhere + " order by hmainid desc ";
ds = oCN.RunProcReturn(sql, "h_v_QC_OutCompCheckBillList");
}
- foreach (DataColumn col in ds.Tables[0].Columns)//閬嶅巻ds涓涓�涓〃锛圱ables[0]锛夌殑鎵�鏈夊垪锛圕olumns锛夋瘡娆″惊鐜腑锛宑ol鍙橀噺浼氭寔鏈夊綋鍓嶅垪鐨勫紩鐢�
- {
- Type dataType = col.DataType; //鑾峰彇褰撳墠鏁版嵁绫诲瀷浼犲叆 鑷畾涔夊彉閲廳atadataType
- string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}"; //瀛楃涓叉嫾鎺� // 灏嗗垪鍚嶅拰鏁版嵁绫诲瀷淇℃伅鎷兼帴鎴愪竴涓狫SON鏍煎紡鐨勫瓧绗︿覆
- a.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
- }
+ foreach (DataColumn col in ds.Tables[0].Columns)//閬嶅巻ds涓涓�涓〃锛圱ables[0]锛夌殑鎵�鏈夊垪锛圕olumns锛夋瘡娆″惊鐜腑锛宑ol鍙橀噺浼氭寔鏈夊綋鍓嶅垪鐨勫紩鐢�
+ {
+ Type dataType = col.DataType; //鑾峰彇褰撳墠鏁版嵁绫诲瀷浼犲叆 鑷畾涔夊彉閲廳atadataType
+ string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}"; //瀛楃涓叉嫾鎺� // 灏嗗垪鍚嶅拰鏁版嵁绫诲瀷淇℃伅鎷兼帴鎴愪竴涓狫SON鏍煎紡鐨勫瓧绗︿覆
+ a.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
+ }
- //if (ds.Tables[0].Rows.Count != 0 || ds != null)
- //{
+
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message = "Sucess锛�";
objJsonResult.data = ds.Tables[0];
objJsonResult.list = a;
return objJsonResult;
- //}
- //else
- //{
- //objJsonResult.code = "0";
- //objJsonResult.count = 0;
- //objJsonResult.Message = "鏃犳暟鎹�";
- //objJsonResult.data = null;
- //return objJsonResult;
- //}
}
catch (Exception e)
{
@@ -89,59 +75,116 @@
return objJsonResult;
}
}
- #region[缂栬緫鏃惰幏鍙栬〃澶存暟鎹甝
- [Route("QC_OutCompCheckBill/QC_OutCompCheckBillListCheckDetail")]
+ #endregion
+
+ #region 鍑哄巶妫�楠屽崟鍒嗛〉鍒楄〃
+ [Route("QC_OutCompCheckBill/QC_OutCompCheckBillListPage")]
[HttpGet]
- public ApiResult<DataSet> QC_OutCompCheckBillListCheckDetail(string HID)
+ public json QC_OutCompCheckBillListPage(string sWhere, string user, int page, int size)
{
- if (string.IsNullOrEmpty(HID))
- return new ApiResult<DataSet> { code = -1, msg = "ID涓嶈兘涓虹┖" };
- SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
+ DataSet ds;
+ json res = new json();
+ try
+ {
+ List<object> columnNameList = new List<object>();
+ //鍒ゆ柇鏉冮檺
+ if (!DBUtility.ClsPub.Security_Log("QC_OutCompCheckBill_Query", 1, false, user))
+ {
+ objJsonResult.code = "0";
+ objJsonResult.count = 0;
+ objJsonResult.Message = "鎮ㄦ病鏈夎妯″潡鏉冮檺,璇蜂笌绠$悊鍛樿仈绯伙紒";
+ objJsonResult.data = null;
+ return objJsonResult;
+ }
+ sWhere = sWhere.Replace("'", "''");
+ if (sWhere == null || sWhere.Equals(""))
+ {
+ ds = oCN.RunProcReturn("exec h_p_QC_OutCompCheckBillList " + page + "," + size + ",''", "h_p_QC_OutCompCheckBillList");
+ }
+ else
+ {
+ ds = oCN.RunProcReturn("exec h_p_QC_OutCompCheckBillList " + page + "," + size + ",'" + sWhere + "'", "h_p_QC_OutCompCheckBillList");
+ }
- var dataSet = oCN.RunProcReturn("select top 1 * from h_v_QC_OutCompCheckBillList where hmainid= " + HID + " ", "h_v_QC_OutCompCheckBillList");
- if (dataSet == null || dataSet.Tables[0].Rows.Count == 0)
- return new ApiResult<DataSet> { code = -1, msg = "涓嶅瓨鍦ㄧ粨绠楀崟鍙�" };
+ //娣诲姞鍒楀悕
+ foreach (DataColumn col in ds.Tables[0].Columns)
+ {
+ Type dataType = col.DataType;
+ string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
+ columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
+ }
- return new ApiResult<DataSet> { code = 1, msg = "鏌ヨ鎴愬姛", data = dataSet };
+ res.code = CodeConstant.SUCCEED;
+ res.count = int.Parse(ds.Tables[1].Rows[0]["count"].ToString());
+ res.Message = "Sucess锛�";
+ res.list = columnNameList;
+ res.data = ds.Tables[0];
+ return res;
+ }
+ catch (Exception e)
+ {
+ res.code = CodeConstant.FAIL;
+ res.count = CountConstant.FAIL;
+ res.Message = "Exception锛�" + e.ToString();
+ res.data = null;
+ return res;
+ }
}
#endregion
- #region[缂栬緫鏃惰幏鍙栬〃浣撴暟鎹甝
- [Route("QC_OutCompCheckBill/QC_OutCompCheckBillListProjectDetai")]
+ #region[缂栬緫鏃惰幏鍙栨暟鎹甝
+ [Route("QC_OutCompCheckBill/QC_OutCompCheckBill_Edit")]
[HttpGet]
- public object QC_OutCompCheckBillListProjectDetai(string sqlWhere)
+ public object QC_OutCompCheckBill_Edit(string sWhere, string user)
{
- DataSet ds;
try
{
- SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
- string sql1 = "SELECT 鏃ユ湡,鍗曟嵁鍙�,琛ㄥご澶囨敞,瀹㈡埛鍚嶇О" +
- ",瀹㈡埛浠g爜,浜у搧鍐呯爜, 浜у搧鍚嶇О, 浜у搧鍨嬪彿, 妫�楠屽憳浠g爜" +
- ", 妫�楠屽憳鍚嶇О, 鍒跺崟浜�, 鍒跺崟鏃ユ湡, 瀹℃牳浜�, 瀹℃牳鏃ユ湡" +
- ", 淇敼浜�, 淇敼鏃ユ湡, 鍏抽棴浜�, 鍏抽棴鏃ユ湡,鍗曟嵁绫诲瀷 FROM h_v_QC_OutCompCheckBillList where 1 = 1 ";
- string sql = sql1 + sqlWhere;
- ds = oCN.RunProcReturn(sql, "h_v_QC_OutCompCheckBillList");
- objJsonResult.code = "0";
- objJsonResult.count = 1;
- objJsonResult.Message = "鑾峰彇淇℃伅鎴愬姛锛�";
- objJsonResult.data = ds.Tables[0];
+ List<object> columnNameList = new List<object>();
+
+ string sql1 = "select * from h_v_QC_OutCompCheckBillList_Edit where 1 = 1 ";
+ string sql = sql1 + sWhere + " order by hmainid desc";
+ ds = oCN.RunProcReturn(sql, "h_v_QC_OutCompCheckBillList_Edit");
+
+ //娣诲姞鍒楀悕
+ foreach (DataColumn col in ds.Tables[0].Columns)
+ {
+ Type dataType = col.DataType;
+ string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
+ columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
+ }
+
+ if (ds.Tables[0].Rows.Count > 0)
+ {
+ objJsonResult.code = "1";
+ objJsonResult.count = 1;
+ objJsonResult.Message = "Sucess锛�";
+ objJsonResult.list = columnNameList;
+ objJsonResult.data = ds.Tables[0];
+ return objJsonResult;
+ }
+ else
+ {
+ objJsonResult.code = "0";
+ objJsonResult.count = 0;
+ objJsonResult.Message = "娌℃湁鏌ヨ鍒版暟鎹�";
+ objJsonResult.list = columnNameList;
+ objJsonResult.data = ds.Tables[0];
+ return objJsonResult;
+ }
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
- objJsonResult.Message = "娌℃湁杩斿洖浠讳綍璁板綍锛�" + e.ToString();
+ objJsonResult.Message = "Exception锛�" + e.ToString();
objJsonResult.data = null;
+ return objJsonResult;
}
- return objJsonResult;
}
+
#endregion
- /// <summary>
- /// 鏂板鍗曟嵁-淇濆瓨鎸夐挳
- ///鍙傛暟锛歴tring sql銆�
- ///杩斿洖鍊硷細object銆�
- /// </summary>
+ #region 鍑哄巶妫�楠屽崟 涓诲瓙琛ㄤ繚瀛�
[Route("QC_OutCompCheckBill/AddBill")]
[HttpPost]
public object AddBill([FromBody] JObject sMainSub)
@@ -172,7 +215,8 @@
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[2].ToString();
+ string user = sArray[3].ToString();
try
{
//鍒ゆ柇鏉冮檺
@@ -187,47 +231,98 @@
msg2 = "[" + msg2.ToString() + "]";
List<QC_OutCompCheckBillMain> mainList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<QC_OutCompCheckBillMain>>(msg2);
- int HYear = 2021;
- double HPeriod = 1;
+ int HYear = DateTime.Now.Year; ;
+ double HPeriod = DateTime.Now.Month; ;
string HBillType = "7504";
string HBillSubType = "7504";
long HInterID = mainList[0].HInterID;//閫掑叆type寰楀埌鐨勫崟鎹甀D
DateTime HDate = mainList[0].HDate;//鏃ユ湡
string HBillNo = mainList[0].HBillNo;//閫掑叆type寰楀埌鐨勫崟鎹彿
long HBillStatus = mainList[0].HBillStatus;
- string HRemark = mainList[0].HRemark;//澶囨敞
- string HBacker = mainList[0].HBacker;
- DateTime HBackDate = mainList[0].HBackDate;
- string HBackRemark = mainList[0].HBackRemark;
- string HChecker = mainList[0].HChecker;
- DateTime HCheckDate = mainList[0].HCheckDate;
- string HMaker = mainList[0].HMaker;
- DateTime HMakeDate = mainList[0].HMakeDate;
+ string HRemark = mainList[0].HRemark;//澶囨敞
+ string HMaker = user;
+
long HCusID = mainList[0].HCusID;
long HMaterID = mainList[0].HMaterID;
long HFirstCheckEmp = mainList[0].HFirstCheckEmp;
- string HCheckerResult = mainList[0].HCheckerResult;
+ bool HCheckerResult = ClsPub.isBool(mainList[0].HCheckerResult);
double HInStockQty = mainList[0].HInStockQty;
double HCheckQty = mainList[0].HCheckQty;
double HRightQty = mainList[0].HRightQTy;
double HBadQty = mainList[0].HBadQty;
+
+ long HICMOInterID = ClsPub.isLong(mainList[0].HICMOInterID);
+ string HICMOBillNo = ClsPub.isStrNull(mainList[0].HICMOBillNo);
+ long HICMOEntryID = ClsPub.isLong(mainList[0].HICMOEntryID);
+ long HICMOQty = ClsPub.isLong(mainList[0].HICMOQty);
+ long HProcExchInterID = ClsPub.isLong(mainList[0].HProcExchInterID);
+ long HProcExchEntryID = ClsPub.isLong(mainList[0].HProcExchEntryID);
+ string HProcExchBillNo = ClsPub.isStrNull(mainList[0].HProcExchBillNo);
+ long HProcExchQty = ClsPub.isLong(mainList[0].HProcExchQty);
+ long HSourceID = ClsPub.isLong(mainList[0].HSourceID);
+ long HProcID = ClsPub.isLong(mainList[0].HProcID);
+ long HMainSourceInterID = ClsPub.isLong(mainList[0].HMainSourceInterID);
+ long HMainSourceEntryID = ClsPub.isLong(mainList[0].HMainSourceEntryID);
+ string HMainSourceBillNo = ClsPub.isStrNull(mainList[0].HMainSourceBillNo);
+ string HMainSourceBillType = ClsPub.isStrNull(mainList[0].HMainSourceBillType);
+ long HQCSchemeID = ClsPub.isLong(mainList[0].HQCSchemeID);
+ long HShiftsID = ClsPub.isLong(mainList[0].HShiftsID);
+ string HErrTreatment = ClsPub.isStrNull(mainList[0].HErrTreatment);
+ string HBatchNo = ClsPub.isStrNull(mainList[0].HBatchNo);
+ long HSourceOrgID = ClsPub.isLong(mainList[0].HSourceOrgID);
+ long HInspectOrgID = ClsPub.isLong(mainList[0].HInspectOrgID);
- //涓昏〃
- oCN.RunProc("Insert Into QC_OutCompCheckBillMain " +
- "(HBillType,HBillSubType,HInterID,HBillNo,HBillStatus,HDate,HMaker,HMakeDate" +
- ",HYear,HPeriod,HRemark" +
- ",HCusID,HMaterID,HInStockQty,HCheckQty,HRightQty" +
- ",HBadQty,HFirstCheckEmp,HCheckerResult" +
- ") " +
- " values('" + HBillType + "','" + HBillSubType + "'," + HInterID.ToString() + ",'" + HBillNo + "'," + HBillStatus.ToString() + ",'" + HDate + "','" + DBUtility.ClsPub.CurUserName + "',getdate()" +
- "," + HYear.ToString() + "," + HPeriod.ToString() + ",'" + HRemark + "'" +
- "," + HCusID.ToString() + "," + HMaterID.ToString() + "," + HInStockQty.ToString() + "," + HCheckQty.ToString() + "," + HRightQty.ToString() +
- "," + HBadQty.ToString() + "," + HFirstCheckEmp.ToString() + ",'" + HCheckerResult + "'" +
- ") ");
+ if (OperationType=="1" || OperationType=="2")
+ {
+ //涓昏〃
+ oCN.RunProc("Insert Into QC_OutCompCheckBillMain " +
+ "(HBillType,HBillSubType,HInterID,HBillNo,HBillStatus,HDate,HMaker,HMakeDate" +
+ ",HYear,HPeriod,HRemark,HMainSourceInterID,HMainSourceEntryID,HMainSourceBillNo,HMainSourceBillType" +
+ ",HCusID,HMaterID,HInStockQty,HCheckQty,HRightQty,HBadQty,HFirstCheckEmp,HCheckerResult" +
+ ",HICMOInterID,HICMOEntryID,HICMOBillNo,HICMOQty,HProcExchInterID,HProcExchEntryID,HProcExchBillNo,HProcExchQty" +
+ ",HSourceID,HProcID,HQCSchemeID,HShiftsID,HErrTreatment,HBatchNo,HSourceOrgID,HInspectOrgID" +
+ ") " +
+ " values('" + HBillType + "','" + HBillSubType + "'," + HInterID.ToString() + ",'" + HBillNo + "'," + HBillStatus.ToString() + ",'" + HDate + "','" + user + "',getdate()" +
+ "," + HYear.ToString() + "," + HPeriod.ToString() + ",'" + HRemark + "','" + HMainSourceInterID + "','" + HMainSourceEntryID + "','" + HMainSourceBillNo + "','" + HMainSourceBillType + "'" +
+ ",'" + HCusID.ToString() + "','" + HMaterID.ToString() + "','" + HInStockQty.ToString() + "','" + HCheckQty.ToString() + "','" + HRightQty.ToString() + "','" + HBadQty.ToString() + "','" + HFirstCheckEmp.ToString() + "','" + DBUtility.ClsPub.BoolToString(HCheckerResult) + "'" +
+ ",'" + HICMOInterID.ToString() + "','" + HICMOEntryID.ToString() + "','" + HICMOBillNo.ToString() + "','" + HICMOQty.ToString() + "','" + HProcExchInterID.ToString() + "','" + HProcExchEntryID.ToString() + "','" + HProcExchBillNo.ToString() + "','" + HProcExchQty + "'" +
+ ",'" + HSourceID.ToString() + "','" + HProcID.ToString() + "','" + HQCSchemeID.ToString() + "','" + HShiftsID.ToString() + "','" + HErrTreatment.ToString() + "','" + HBatchNo.ToString() + "','" + HSourceOrgID.ToString() + "','" + HInspectOrgID.ToString() + "') ");
+ }
+ else if (OperationType == "3")
+ {
+ oCN.RunProc("UpDate QC_OutCompCheckBillMain set " +
+ " HBillNo='" + HBillNo + "'" +
+ ",HDate='" + HDate + "'" +
+ ",HYear='" + HYear.ToString() + "'" +
+ ",HPeriod='" + HPeriod.ToString() + "'" +
+ ",HBillStatus='" + HBillStatus + "'" +
+ ",HRemark='" + HRemark + "'" +
+ ",HUpDater='" +user + "'" +
+ ",HUpDateDate=getdate()" +
+ //========================================
+ ",HSourceID=" + HSourceID.ToString() +
+ ",HQCSchemeID=" + HQCSchemeID.ToString() +
+ ",HICMOInterID=" + HICMOInterID.ToString() +
+ ",HICMOBillNo='" + HICMOBillNo + "'" +
+ ",HICMOQty=" + HICMOQty.ToString() +
+ ",HProcExchInterID=" + HProcExchInterID.ToString() +
+ ",HProcExchEntryID=" + HProcExchEntryID.ToString() +
+ ",HProcExchBillNo='" + HProcExchBillNo + "'" +
+ ",HProcExchQty=" + HProcExchQty.ToString() +
+ ",HProcID=" + HProcID.ToString() +
+ ",HMaterID=" + HMaterID.ToString() +
+ ",HFirstCheckEmp=" + HFirstCheckEmp.ToString() +
+ ",HCheckerResult=" + DBUtility.ClsPub.BoolToString(HCheckerResult) +
+ ",HShiftsID=" + HShiftsID.ToString() +
+ ",HErrTreatment='" + HErrTreatment + "'" +
+ ",HBatchNo='" + HBatchNo + "'" +
+ " where HInterID=" + HInterID.ToString());
+ oCN.RunProc("Delete From QC_OutCompCheckBillSub where HInterID = " + HInterID);
+ }
//淇濆瓨瀛愯〃
- objJsonResult = AddBillSub(msg3, HInterID);
+ objJsonResult = AddBillSub(msg3, HInterID, HBillNo);
if (objJsonResult.code == "0")
{
objJsonResult.code = "0";
@@ -253,37 +348,66 @@
}
}
- public json AddBillSub(string msg3, long HInterID)
+ public json AddBillSub(string msg3, long HInterID, string HBillNo)
{
List<QC_OutCompCheckBillSub> subList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<QC_OutCompCheckBillSub>>(msg3);
- for (int i = 0; i < subList.ToArray().Length; i++)
- {
- string HBillNo_bak = subList[0].HBillNo_bak;
- long HEntryID = subList[0].HEntryID;//宸ユID
- string HCloseMan = subList[0].HCloseMan;
- long HCloseType = subList[0].HCloseType;
- string HRemark = subList[0].HRemark;
- long HSourceInterID = subList[0].HSourceInterID;
- long HSourceEntryID = subList[0].HSourceEntryID;
- string HSourceBillNo = subList[0].HSourceBillNo;
- string HSourceBillType = subList[0].HSourceBillType;
- double HRelationQty = subList[0].HRelationQty;
- double HRelationMoney = subList[0].HRelationMoney;
+ for (int i = 0; i < subList.Count; i++)
+ {
+
+ int HEntryID = i + 1;
+ string HRemark = ClsPub.isStrNull(subList[i].HRemark);
+ long HSourceInterID = ClsPub.isLong(subList[i].HSourceInterID);
+ long HSourceEntryID = ClsPub.isLong(subList[i].HSourceEntryID);
+ string HSourceBillType = ClsPub.isStrNull(subList[i].HSourceBillType);
+ string HSourceBillNo = ClsPub.isStrNull(subList[i].HSourceBillNo);
+ double HRelationQty = DBUtility.ClsPub.isDoule(subList[i].HRelationQty);
+ double HRelationMoney = DBUtility.ClsPub.isDoule(subList[i].HRelationMoney);
+ string HCloseMan = DBUtility.ClsPub.isStrNull(subList[i].HCloseMan);
+ DateTime HEntryCloseDate = DBUtility.ClsPub.isDate(subList[i].HEntryCloseDate);
+ bool HCloseType = DBUtility.ClsPub.isBool(subList[i].HCloseType);
+
+
long HQCCheckClassID = subList[0].HQCCheckClassID;
- long HQCCheckItemID = subList[0].HQCCheckItemID;
- string HQCStd = subList[0].HQCStd;
- string HResult = subList[0].HResult;
+ long HQCCheckItemID = DBUtility.ClsPub.isLong(subList[i].HQCCheckItemID);
+ string HQCStd = DBUtility.ClsPub.isStrNull(subList[i].HQCStd);
+ string HUnit = DBUtility.ClsPub.isStrNull(subList[i].HUnit);
+ string HQCNote = DBUtility.ClsPub.isStrNull(subList[i].HQCNote);
+ string HResult = DBUtility.ClsPub.isStrNull(subList[i].HResult);
+ string HMax = DBUtility.ClsPub.isStrNull(subList[i].HMax);
+ string HMin = DBUtility.ClsPub.isStrNull(subList[i].HMin);
+ string HAvg = DBUtility.ClsPub.isStrNull(subList[i].HAvg);
+ long HSampleSchemeID = DBUtility.ClsPub.isLong(subList[i].HSampleSchemeID);
+ long HSampleQty = DBUtility.ClsPub.isLong(subList[i].HSampleQty);
+ double HSampleDamageQty = DBUtility.ClsPub.isDoule(subList[i].HSampleDamageQty);
+ long HAcceptQty = DBUtility.ClsPub.isLong(subList[i].HAcceptQty);
+ long HRejectQty = DBUtility.ClsPub.isLong(subList[i].HRejectQty);
+ double HSampleUnRightQty = DBUtility.ClsPub.isDoule(subList[i].HSampleUnRightQty);
+ string HStatus = DBUtility.ClsPub.isStrNull(subList[i].HStatus);
+ long HUnitID = DBUtility.ClsPub.isLong(subList[i].HUnitID);
+ string HInspectVal = DBUtility.ClsPub.isStrNull(subList[i].HInspectVal);
+ string HTargetVal = DBUtility.ClsPub.isStrNull(subList[i].HTargetVal);
+ string HUpLimit = DBUtility.ClsPub.isStrNull(subList[i].HUpLimit);
+ string HDownLimit = DBUtility.ClsPub.isStrNull(subList[i].HDownLimit);
+ string HUpOffSet = DBUtility.ClsPub.isStrNull(subList[i].HUpOffSet);
+ string HDownOffSet = DBUtility.ClsPub.isStrNull(subList[i].HDownOffSet);
+ string HAnalysisMethod = DBUtility.ClsPub.isStrNull(subList[i].HAnalysisMethod);
+ long HKeyInspect = DBUtility.ClsPub.isLong(subList[i].HKeyInspect);
+ long HInspectInstruMentID = DBUtility.ClsPub.isLong(subList[i].HInspectInstruMentID);
+ string HInspectResult = DBUtility.ClsPub.isStrNull(subList[i].HResult);
+
oCN.RunProc("Insert into QC_OutCompCheckBillSub " +
- " (HInterID,HBillNo_bak,HEntryID,HCloseMan" +
- ",HEntryCloseDate,HCloseType,HRemark,HSourceInterID" +
+ " (HInterID,HBillNo_bak,HEntryID,HCloseMan,HEntryCloseDate,HCloseType,HRemark,HSourceInterID" +
",HSourceEntryID,HSourceBillNo,HSourceBillType,HRelationQty,HRelationMoney" +
- ",HQCCheckClassID,HQCCheckItemID,HQCStd,HResult" +
+ ",HQCCheckClassID,HQCCheckItemID,HQCStd,HQCNote,HResult,HMax,HMin,HAvg,HSampleSchemeID,HSampleQty" +
+ ",HSampleDamageQty,HAcceptQty,HRejectQty,HSampleUnRightQty,HStatus,HUnitID,HInspectVal,HTargetVal,HUpLimit,HDownLimit" +
+ ",HUpOffSet,HDownOffSet,HAnalysisMethod,HKeyInspect,HInspectInstruMentID,HInspectResult" +
") values("
- + HInterID.ToString() + ",'" + HBillNo_bak + "'," + HEntryID.ToString() + ",'" + HCloseMan + "'" +
- ",getdate()," + HCloseType + ",'" + HRemark + "'," + HSourceInterID.ToString() +
+ + HInterID.ToString() + ",'" + HBillNo + "'," + HEntryID.ToString() + ",'" + HCloseMan + "',getdate()," + DBUtility.ClsPub.BoolToString(HCloseType) + ",'" + HRemark + "'," + HSourceInterID.ToString() +
"," + HSourceEntryID.ToString() + ",'" + HSourceBillNo + "','" + HSourceBillType + "'," + HRelationQty.ToString() + "," + HRelationMoney.ToString() +
- "," + HQCCheckClassID.ToString() + "," + HQCCheckItemID.ToString() + ",'" + HQCStd + "','" + HResult + "'" + ") ");
+ "," + HQCCheckClassID.ToString() + "," + HQCCheckItemID.ToString() + ",'" + HQCStd + "','" + HQCNote + "','" + HResult + "','" + HMax + "','" + HMin + "','" + HAvg + "','" + HSampleSchemeID + "','" + HSampleQty + "'" +
+ "," + HSampleDamageQty.ToString() + "," + HAcceptQty.ToString() + ",'" + HRejectQty + "','" + HSampleUnRightQty + "','" + HStatus + "','" + HUnitID + "','" + HInspectVal + "','" + HTargetVal + "','" + HUpLimit + "','" + HDownLimit + "'" +
+ ",'" + HUpOffSet.ToString() + "','" + HDownOffSet.ToString() + "','" + HAnalysisMethod + "','" + DBUtility.ClsPub.BoolToString(HKeyInspect) + "','" + HInspectInstruMentID + "','" + HInspectResult + "' ) ");
}
objJsonResult.code = "1";
@@ -292,13 +416,62 @@
objJsonResult.data = null;
return objJsonResult;
}
- /// <summary>
- ///鍒犻櫎鍔熻兘
- /// </summary>
- /// <returns></returns>
+
+ #endregion
+
+ #region 妫�楠屽�间繚瀛�
+ [Route("QC_OutCompCheckBill/set_SaveValue")]
+ [HttpPost]
+ public object set_SaveValue([FromBody] JObject msg)
+ {
+ ListModels oListModels = new ListModels();
+ try
+ {
+ var _value = msg["msg"].ToString();
+ string msg1 = _value.ToString();
+ string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
+
+ string Value = sArray[0].ToString(); //妫�楠屽�艰〃鏍�
+ Int64 HInterID = Convert.ToInt64(sArray[1]); //涓籌D
+ Int64 HEntryID = Convert.ToInt64(sArray[2]); //瀛怚D
+
+ List<QC_OutCompCheckBillSub_ValueGrid> valueList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<QC_OutCompCheckBillSub_ValueGrid>>(Value);
+
+
+ for (int i = 0; i < valueList.ToArray().Length; i++)
+ {
+ int HSEQ = i + 1;
+ string HInSpectResult = ClsPub.isStrNull(valueList[i].HInSpectResult);
+ double HInSpectValue = ClsPub.isDoule(valueList[i].HInSpectValue);
+ long HInSpectValueB = ClsPub.isLong(valueList[i].HInSpectValueB);
+ string HInSpectValueT = ClsPub.isStrNull(valueList[i].HInSpectValueT);
+
+ oCN.RunProc("Insert into QC_OutCompCheckBillSub_ValueGrid " +
+ " (HInterID,HEntryID,HSEQ,HInSpectResult,HInSpectValue,HInSpectValueB,HInSpectValueT) " +
+ "values("+ HInterID + "," + HEntryID + "," + HSEQ + ",'" + HInSpectResult + "'," +HInSpectValue + "," + HInSpectValueB + ",'" + HInSpectValueT + "'" +") ");
+ }
+
+ objJsonResult.code = "1";
+ objJsonResult.count = 1;
+ objJsonResult.Message = null;
+ objJsonResult.data = null;
+ return objJsonResult;
+ }
+ catch (Exception e)
+ {
+ objJsonResult.code = "0";
+ objJsonResult.count = 0;
+ objJsonResult.Message = "Exception锛�" + e.ToString();
+ objJsonResult.data = null;
+ return objJsonResult;
+ }
+ }
+ #endregion
+
+ #region 鍑哄巶妫�楠屽崟 鍒犻櫎
[Route("QC_OutCompCheckBill/DeltetOutCompCheckBill")]
[HttpGet]
- public object DeltetOutCompCheckBill(string HInterID,string user)
+ public object DeltetOutCompCheckBill(string HInterID, string user)
{
try
{
@@ -315,6 +488,7 @@
oCN.BeginTran();
oCN.RunProc("Delete From QC_OutCompCheckBillMain where HInterID = " + HInterID);
oCN.RunProc("Delete From QC_OutCompCheckBillSub where HInterID = " + HInterID);
+ oCN.RunProc("Delete From QC_OutCompCheckBillSub_ValueGrid where HInterID = " + HInterID);
oCN.Commit();
objJsonResult.code = "1";
objJsonResult.count = 1;
@@ -332,6 +506,380 @@
return objJsonResult;
}
}
- //
+
+ #endregion
+
+ #region 鍑哄巶妫�楠屽崟缁存姢 瀹℃牳 鍙嶅鏍� 鍏抽棴 鍙嶅叧闂� 浣滃簾 鍙嶄綔搴�
+ /// <summary>
+ /// 鍑哄巶妫�楠屽崟缁存姢 瀹℃牳銆佸弽瀹℃牳
+ /// </summary>
+ /// <param name="HInterID">鍗曟嵁ID</param>
+ /// <param name="IsAudit">瀹℃牳(0),鍙嶅鏍�(1)</param>
+ /// <param name="CurUserName">瀹℃牳浜�</param>
+ /// <returns></returns>
+ [Route("QC_OutCompCheckBill/CheckQC_OutCompCheckBill")]
+ [HttpGet]
+ public object CheckQC_OutCompCheckBill(int HInterID, int IsAudit, string CurUserName)
+ {
+ try
+ {
+ //瀹℃牳鏉冮檺
+ if (!DBUtility.ClsPub.Security_Log_second("QC_OutCompCheckBill_Check", 1, false, CurUserName))
+ {
+ objJsonResult.code = "0";
+ objJsonResult.count = 0;
+ objJsonResult.Message = "瀹℃牳澶辫触锛佹棤鏉冮檺锛�";
+ objJsonResult.data = null;
+ return objJsonResult;
+ }
+
+ var ds = oCN.RunProcReturn("select * from QC_OutCompCheckBillMain where HInterID=" + HInterID, "QC_OutCompCheckBillMain");
+ if (ds.Tables[0].Rows.Count > 0)
+ {
+ if (IsAudit == 0) //瀹℃牳鍒ゆ柇
+ {
+ if (ds.Tables[0].Rows[0]["HChecker"].ToString() != "")
+ {
+ objJsonResult.code = "0";
+ objJsonResult.count = 0;
+ objJsonResult.Message = "鍗曟嵁宸插鏍�!涓嶈兘鍐嶆瀹℃牳锛�";
+ objJsonResult.data = null;
+ return objJsonResult;
+ }
+ }
+ if (IsAudit == 1) //鍙嶅鏍稿垽鏂�
+ {
+ if (ds.Tables[0].Rows[0]["HChecker"].ToString() == "")
+ {
+ objJsonResult.code = "0";
+ objJsonResult.count = 0;
+ objJsonResult.Message = "鍗曟嵁鏈鏍�!涓嶉渶瑕佸弽瀹℃牳!";
+ objJsonResult.data = null;
+ return objJsonResult;
+ }
+ }
+ }
+ else
+ {
+ objJsonResult.code = "0";
+ objJsonResult.count = 0;
+ objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦�!";
+ objJsonResult.data = null;
+ return objJsonResult;
+ }
+
+ oCN.BeginTran();
+
+ if (IsAudit == 0) //瀹℃牳鍒ゆ柇
+ {
+
+ oCN.RunProc("update QC_OutCompCheckBillMain set HChecker='" + CurUserName + "',HCheckDate=getdate() where HInterID=" + HInterID);
+
+
+ objJsonResult.code = "1";
+ objJsonResult.count = 1;
+ objJsonResult.Message = "瀹℃牳鎴愬姛";
+ objJsonResult.data = null;
+ }
+ if (IsAudit == 1) //鍙嶅鏍稿垽鏂�
+ {
+
+ oCN.RunProc("update QC_OutCompCheckBillMain set HChecker='',HCheckDate=null where HInterID=" + HInterID);
+
+ objJsonResult.code = "1";
+ objJsonResult.count = 1;
+ objJsonResult.Message = "鍙嶅鏍告垚鍔�";
+ objJsonResult.data = null;
+ }
+ oCN.Commit();
+
+ return objJsonResult;
+ }
+ catch (Exception e)
+ {
+ oCN.RollBack();
+ objJsonResult.code = "0";
+ objJsonResult.count = 0;
+ objJsonResult.Message = "瀹℃牳澶辫触鎴栬�呭弽瀹℃牳澶辫触锛�" + e.ToString();
+ objJsonResult.data = null;
+ return objJsonResult;
+ }
+ }
+
+ /// <summary>
+ /// 鍑哄巶妫�楠屽崟缁存姢 鍏抽棴 鍙嶅叧闂�
+ /// </summary>
+ /// <param name="HInterID"></param>
+ /// <param name="Type"></param>
+ /// <param name="user"></param>
+ /// <returns></returns>
+ [Route("QC_OutCompCheckBill/CloseQC_OutCompCheckBill")]
+ [HttpGet]
+ public object CloseQC_FirstPieceCheckBill(string HInterID, int Type, string user)
+ {
+ try
+ {
+ //鍒ゆ柇鏄惁鏈夊垹闄ゆ潈闄�
+ if (!DBUtility.ClsPub.Security_Log("QC_OutCompCheckBill_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;
+ BillOld.MvarItemKey = "QC_OutCompCheckBillMain";
+ oCN.BeginTran();//寮�濮嬩簨鍔�
+
+ //Type 1 鍏抽棴 2 鍙嶅叧闂�
+ if (Type == 1)
+ {
+ //鍒ゆ柇鍗曟嵁鏄惁宸茬粡鍏抽棴
+ DataSet ds;
+ string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
+ ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
+ if (ds == null || ds.Tables[0].Rows.Count == 0)
+ {
+ objJsonResult.code = "0";
+ objJsonResult.count = 0;
+ objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦紒";
+ objJsonResult.data = null;
+ return objJsonResult;
+ }
+ if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
+ {
+ if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
+ {
+ objJsonResult.code = "0";
+ objJsonResult.count = 0;
+ objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍏抽棴!";
+ objJsonResult.data = null;
+ return objJsonResult;
+ }
+
+
+ if (ds.Tables[0].Rows[0]["HCloseMan"] != null && ds.Tables[0].Rows[0]["HCloseMan"].ToString() != "")
+ {
+ objJsonResult.code = "0";
+ objJsonResult.count = 0;
+ objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘鍐嶆鍏抽棴!";
+ objJsonResult.data = null;
+ return objJsonResult;
+ }
+ //鍏抽棴鍗曟嵁
+ if (!BillOld.CloseBill(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
+ {
+ objJsonResult.code = "0";
+ objJsonResult.count = 1;
+ objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + ClsPub.sExeReturnInfo;
+ objJsonResult.data = null;
+ return objJsonResult;
+ }
+ }
+ }
+ else
+ {
+ //鍒ゆ柇鍗曟嵁鏄惁宸茬粡鍙嶅叧闂�
+ DataSet ds;
+ string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
+ ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
+ if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
+ {
+ if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
+ {
+ objJsonResult.code = "0";
+ objJsonResult.count = 0;
+ objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍏抽棴!";
+ objJsonResult.data = null;
+ return objJsonResult;
+ }
+
+ if (ds.Tables[0].Rows[0]["HCloseMan"] == null || ds.Tables[0].Rows[0]["HCloseMan"].ToString() == "")
+ {
+ objJsonResult.code = "0";
+ objJsonResult.count = 0;
+ objJsonResult.Message = "鍗曟嵁鏈叧闂�!涓嶉渶瑕佸啀鍙嶅叧闂�!";
+ objJsonResult.data = null;
+ return objJsonResult;
+ }
+ //鍙嶅叧闂崟鎹�
+ if (!BillOld.CancelClose(Int64.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;
+ }
+ }
+
+
+ /// <summary>
+ /// 鍑哄巶妫�楠屽崟缁存姢 浣滃簾 鍙嶄綔搴�
+ /// </summary>
+ /// <param name="HInterID"></param>
+ /// <param name="Type"></param>
+ /// <param name="user"></param>
+ /// <returns></returns>
+ [Route("QC_OutCompCheckBill/DropQC_OutCompCheckBill")]
+ [HttpGet]
+ public object DropQC_FirstPieceCheckBills(string HInterID, int Type, string user)
+ {
+ try
+ {
+ //鍒ゆ柇鏄惁鏈変綔搴熸潈闄�
+ if (!DBUtility.ClsPub.Security_Log("QC_OutCompCheckBill_Drop", 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;
+ BillOld.MvarItemKey = "QC_OutCompCheckBillMain";
+ oCN.BeginTran();//寮�濮嬩簨鍔�
+
+ //Type 1 浣滃簾 2 鍙嶄綔搴�
+ if (Type == 1)
+ {
+ //鍒ゆ柇鍗曟嵁鏄惁宸茬粡浣滃簾
+ DataSet ds;
+ string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
+ ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
+ if (ds == null || ds.Tables[0].Rows.Count == 0)
+ {
+ objJsonResult.code = "0";
+ objJsonResult.count = 0;
+ objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦紒";
+ objJsonResult.data = null;
+ return objJsonResult;
+ }
+ if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
+ {
+ if (ds.Tables[0].Rows[0]["HChecker"] != null && ds.Tables[0].Rows[0]["HChecker"].ToString() != "")
+ {
+ objJsonResult.code = "0";
+ objJsonResult.count = 0;
+ objJsonResult.Message = "鍗曟嵁宸插鏍�!涓嶈兘杩涜浣滃簾!";
+ objJsonResult.data = null;
+ return objJsonResult;
+ }
+ if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
+ {
+ objJsonResult.code = "0";
+ objJsonResult.count = 0;
+ objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶉渶瑕佸啀浣滃簾!";
+ objJsonResult.data = null;
+ return objJsonResult;
+ }
+ //浣滃簾鍗曟嵁
+ if (!BillOld.Cancelltion(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
+ {
+ objJsonResult.code = "0";
+ objJsonResult.count = 1;
+ objJsonResult.Message = "浣滃簾澶辫触!鍘熷洜:" + ClsPub.sExeReturnInfo;
+ objJsonResult.data = null;
+ return objJsonResult;
+ }
+ }
+ }
+ else
+ {
+ //鍒ゆ柇鍗曟嵁鏄惁宸茬粡鍙嶄綔搴�
+ DataSet ds;
+ string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
+ ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
+ if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
+ {
+ if (ds.Tables[0].Rows[0]["HChecker"] != null && ds.Tables[0].Rows[0]["HChecker"].ToString() != "")
+ {
+ objJsonResult.code = "0";
+ objJsonResult.count = 0;
+ objJsonResult.Message = "鍗曟嵁宸插鏍�!涓嶈兘杩涜浣滃簾!";
+ objJsonResult.data = null;
+ return objJsonResult;
+ }
+ if (ds.Tables[0].Rows[0]["HDeleteMan"] == null || ds.Tables[0].Rows[0]["HDeleteMan"].ToString() == "")
+ {
+ objJsonResult.code = "0";
+ objJsonResult.count = 0;
+ objJsonResult.Message = "鍗曟嵁鏈綔搴�!涓嶉渶瑕佸啀鍙嶄綔搴�!";
+ objJsonResult.data = null;
+ return objJsonResult;
+ }
+ //鍙嶄綔搴熷崟鎹�
+ if (!BillOld.AbandonCancelltion(Int64.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
+
}
}
\ No newline at end of file
--
Gitblit v1.9.1