From 852cd93a3e65988a2354a0b96b79d5e2d05bf646 Mon Sep 17 00:00:00 2001
From: yangle <admin@YINMOU>
Date: 星期五, 14 四月 2023 09:23:25 +0800
Subject: [PATCH] 工序流转卡 工艺参数 应该 可编辑; 1.生产资源 有异常; 删除有问题,删除后出来 异常数据( ); 其他信息 里的 几个字段 输入 字符时 报错,应提示; 2.工序 : 9999的 转工序 , 有个 转工序 字段,是否没显示出来; 其他信息 里的 几个字段 输入 字符时 报错,应提示; 3.工作中心: 其他信息 里的 几个字段 输入 字符时 报错,应提示; 4.生产班组: 刷新出来 异常数据; 其他信息 里的 几个字段 输入 字符时 报错,应提示; 5.基础资料的 一些 复选框 标题不对; 6. ADMIN 的账号 工艺路线 的模块 无法进行 新增 编辑; 7.工艺路线查询;工序号,工序代码,工序,工艺参数,表体备注, 其他的放后面 子表 的 委外标记 放到最后面去; 并且 把 供应商代码和供应商 放出来(也放在最后几个); 8.部门有 很多异常数据; 选择的时候 出来了; 9.流转卡维护, 表头 很多没有用的列,单据号 日期 都没有显示; 转工序 是否要打印(跟客户确认); 10. 流转卡拆分时,一些 列的 排序;
---
WebAPI/Controllers/BaseSet/Gy_ProcessController.cs | 8 +++++---
WebAPI/Models/基础资料/Gy_Process.cs | 1 +
Model/生产管理/ClsSc_ICMOBillSub.cs | 1 +
Model/车间管理/ClsSc_ProcessExchangeBillMain.cs | 1 +
WebAPI/Controllers/CJGL/Sc_ProcessExchangeBillController.cs | 2 ++
WebAPI/Models/ClsGy_Material_Model.cs | 1 +
DAL/车间管理/ClsSc_ProcessExchangeBill.cs | 6 ++++--
WebAPI/Controllers/BaseSet/Gy_SourceController.cs | 14 +++-----------
WebAPI/Controllers/生产管理/生产任务单/Sc_ICMOBillController.cs | 4 ++--
WebAPI/DLL/ClsGy_Material_Ctl.cs | 5 +++--
10 files changed, 23 insertions(+), 20 deletions(-)
diff --git "a/DAL/\350\275\246\351\227\264\347\256\241\347\220\206/ClsSc_ProcessExchangeBill.cs" "b/DAL/\350\275\246\351\227\264\347\256\241\347\220\206/ClsSc_ProcessExchangeBill.cs"
index 5fc5c66..a9330f3 100644
--- "a/DAL/\350\275\246\351\227\264\347\256\241\347\220\206/ClsSc_ProcessExchangeBill.cs"
+++ "b/DAL/\350\275\246\351\227\264\347\256\241\347\220\206/ClsSc_ProcessExchangeBill.cs"
@@ -139,6 +139,7 @@
",HMaterTexture='" + omodel.HMaterTexture + "'" +
",HProductNum='" + omodel.HProductNum + "'" +
",HVerNum='" + omodel.HVerNum + "'" +
+ ",HColorRemark='" + omodel.HColorRemark + "'" +
",HWorkBillSortNo='" + omodel.HWorkBillSortNo + "'" +
//鍔犲叆鐢熶骇绫诲瀷
",HWorkTypeNum='" + omodel.HWorkTypeNum + "'" +
@@ -319,7 +320,7 @@
",HPicNumVer,HPicNumAssemble,HMaterTexture,HProductNum,HVerNum,HPRDORGID,HBLFlag,HCusNumber,HPickLabel,HPickLabelNumber,HXTNumber,HXTModel,HWorkBillSortNo" +
", HRoutingBillID,HMaterModel,HWidth,HWeight,HAuxQty,HAuxUnit,HSplitNo" +
",HHeight,HInches,HAl1Long,HDensity,HTela,HUnderTela,HSizing,HSellDate" +
- ",HRemark2,HRemark3,HEmpID,HCusID) " +
+ ",HRemark2,HRemark3,HEmpID,HCusID,HColorRemark) " +
" values('" + this.BillType + "','" + this.HBillSubType + "'," + omodel.HInterID.ToString() + ",'" + omodel.HBillNo + "','" + omodel.HDate + "','" + omodel.HMaker + "',getdate()," + "" + (omodel.HPrevMainSourceInterID == 0 ? omodel.HInterID : omodel.HPrevMainSourceInterID) +
"," + omodel.HYear.ToString() + "," + omodel.HPeriod.ToString() + ",'" + omodel.HRemark + "','" + omodel.HBatchNo + "'," + omodel.HMainMaterID.ToString() + "," + omodel.HKeyMaterID.ToString() + "," + omodel.HNo.ToString() + ",'" + omodel.HOrderProcNO + "'" +
"," + omodel.HWWOrderInterID.ToString() + "," + omodel.HWWOrderEntryID.ToString() + ",'" + omodel.HWWOrderBillNo + "'," + omodel.HICMOInterID.ToString() + "," + omodel.HEquipMentID.ToString() +
@@ -333,7 +334,7 @@
",'" + omodel.HPicNumVer + "','" + omodel.HPicNumAssemble + "','" + omodel.HMaterTexture + "','" + omodel.HProductNum + "','" + omodel.HVerNum + "','"+ omodel.HPRDORGID+ "','" + (omodel.HBLFlag ? 1 : 0) + "','" + omodel.HCusNumber + "','" + omodel.HPickLabel + "','" + omodel.HPickLabelNumber + "','" + omodel.HXTNumber + "','" + omodel.HXTModel + "','" + omodel.HWorkBillSortNo +
"',"+ omodel.HRoutingBillID + ",'"+ omodel.HMaterModel + "',"+ omodel.HWidth + ","+ omodel.HWeight + ","+ omodel.HAuxQty + ","+ omodel.HAuxUnit +","+ omodel.HSplitNo +"" +
",'" + omodel.HHeight + "','" + omodel.HInches + "','" + omodel.HAl1Long + "','" + omodel.HDensity + "','" + omodel.HTela + "','" + omodel.HUnderTela + "','" + omodel.HSizing + "','" + omodel.HSellDate + "'" +
- ",'"+ omodel.HRemark2 + "','"+ omodel.HRemark3 + "',"+ omodel.HEmpID + "," + omodel.HCusID + ")");
+ ",'"+ omodel.HRemark2 + "','"+ omodel.HRemark3 + "',"+ omodel.HEmpID + "," + omodel.HCusID + ",'"+ omodel.HColorRemark + "')");
sErr = sErr + "1;";
//鎻掑叆瀛愯〃
foreach (Model.ClsSc_ProcessExchangeBillSub oSub in DetailColl)
@@ -561,6 +562,7 @@
omodel.HSizing = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HSizing"]);
omodel.HSellDate = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HSellDate"]);
omodel.HCusID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HCusID"].ToString());
+ omodel.HColorRemark = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HColorRemark"].ToString());
//
//寰幆
DataSet DsSub;
diff --git "a/Model/\347\224\237\344\272\247\347\256\241\347\220\206/ClsSc_ICMOBillSub.cs" "b/Model/\347\224\237\344\272\247\347\256\241\347\220\206/ClsSc_ICMOBillSub.cs"
index e670b53..546334f 100644
--- "a/Model/\347\224\237\344\272\247\347\256\241\347\220\206/ClsSc_ICMOBillSub.cs"
+++ "b/Model/\347\224\237\344\272\247\347\256\241\347\220\206/ClsSc_ICMOBillSub.cs"
@@ -39,5 +39,6 @@
public int HAuxUnit; //辅助单位
public double HWidth; //幅宽
public double HWeight; //克重
+ public string HColorRemark; //染色要求
}
}
diff --git "a/Model/\350\275\246\351\227\264\347\256\241\347\220\206/ClsSc_ProcessExchangeBillMain.cs" "b/Model/\350\275\246\351\227\264\347\256\241\347\220\206/ClsSc_ProcessExchangeBillMain.cs"
index 875bfa7..e3d795e 100644
--- "a/Model/\350\275\246\351\227\264\347\256\241\347\220\206/ClsSc_ProcessExchangeBillMain.cs"
+++ "b/Model/\350\275\246\351\227\264\347\256\241\347\220\206/ClsSc_ProcessExchangeBillMain.cs"
@@ -41,6 +41,7 @@
public string HProjectNum;//项目号
public Int64 HEmpID;//职员
public Int64 HCusID;//客户
+ public string HColorRemark;//染色要求
public string HProdMaterCode;
public string HSeOrderBillNo;
public string HCusShortName;
diff --git a/WebAPI/Controllers/BaseSet/Gy_ProcessController.cs b/WebAPI/Controllers/BaseSet/Gy_ProcessController.cs
index d616eeb..4ee1994 100644
--- a/WebAPI/Controllers/BaseSet/Gy_ProcessController.cs
+++ b/WebAPI/Controllers/BaseSet/Gy_ProcessController.cs
@@ -323,6 +323,7 @@
long HDeptID = list[0].HDeptID;
long HProcID = list[0].HProcID;
int HUSEORGID = list[0].HUSEORGID;
+ bool HTProcessFlag = list[0].HTProcessFlag;
@@ -373,13 +374,13 @@
",HTypeFlow,HTypeCount,HDeptNumber,HSNo" +
",HLevel,HEndFlag,HStopflag,HRemark,HDeptID,HBarCodeForBase,HProcessID_K3,HBillSubType,HAutoTrunFlag" +
",HFixPrice,HOverFixPrice,HProcMulID,HProcCheckNote" +
- ",HUSEORGID,HWorkCenterID,HBadWHID,HWasterWHID,HBadCountDevelopWHID,HWWBadWHID,HWWWasterWHID,HWHID) " +
+ ",HUSEORGID,HWorkCenterID,HBadWHID,HWasterWHID,HBadCountDevelopWHID,HWWBadWHID,HWWWasterWHID,HWHID,HTProcessFlag) " +
" Values('" + HNumber + "','" + HName + "','" + HHelpCode + "','" + HShortNumber + "'," + HParentID.ToString() +
"," + Convert.ToString(HTypeFlow ? 1 : 0) + "," + Convert.ToString(HTypeCount ? 1 : 0) + ",'" + HDeptNumber + "','" + HSNo.ToString() +
"'," + HLevel.ToString() + "," + Convert.ToString(HEndFlag ? 1 : 0) + "," + Convert.ToString(HStopflag ? 1 : 0) + ",'" + HRemark + "'," + HDeptID +
- ",'" + HBarCode + "'," + HProcessID_K3 + ",'" +HBillSubType + "'," + Convert.ToString(HAutoTrunFlag ? 1 : 0) +
+ ",'" + HBarCode + "'," + HProcessID_K3 + ",'" + HBillSubType + "'," + Convert.ToString(HAutoTrunFlag ? 1 : 0) +
",'" + HFixPrice.ToString() + "'," + HOverFixPrice.ToString() + "," + HProcMulID.ToString() + ",'" + HProcCheckNote.ToString() + "'" +
- ","+ HUSEORGID + "," + HWorkCenterID + "," + HBadWHID + "," + HWasterWHID + "," + HBadCountDevelopWHID + "," + HWWBadWHID + "," + HWWWasterWHID + "," + HWHID + ")", ref DBUtility.ClsPub.sExeReturnInfo);
+ "," + HUSEORGID + "," + HWorkCenterID + "," + HBadWHID + "," + HWasterWHID + "," + HBadCountDevelopWHID + "," + HWWBadWHID + "," + HWWWasterWHID + "," + HWHID + "," + Convert.ToString(HTProcessFlag ? 1 : 0) + ")", ref DBUtility.ClsPub.sExeReturnInfo);
//淇敼涓婄骇涓洪潪鏈骇浠g爜
oCN.RunProc("Update Gy_Process set HEndflag=0 where HItemID=" + HParentID, ref DBUtility.ClsPub.sExeReturnInfo);
oCN.Commit();
@@ -400,6 +401,7 @@
",HSNo= " + HSNo +
",HLevel= " + HLevel +
",HEndFlag= '" + HEndFlag + "'" +
+ ",HTProcessFlag= '" + HTProcessFlag + "'" +
",HStopflag= '" + HStopflag + "'" +
",HRemark='" + HRemark + "'" +
",HDeptID= " + HDeptID +
diff --git a/WebAPI/Controllers/BaseSet/Gy_SourceController.cs b/WebAPI/Controllers/BaseSet/Gy_SourceController.cs
index 28dfdea..91b5f1d 100644
--- a/WebAPI/Controllers/BaseSet/Gy_SourceController.cs
+++ b/WebAPI/Controllers/BaseSet/Gy_SourceController.cs
@@ -347,18 +347,9 @@
objJsonResult.data = null;
return objJsonResult; ;
}
- var HStopflag = Convert.ToBoolean(ds.Tables[0].Rows[0]["HStopflag"]);
- if (HStopflag)
- {
- oCN.RollBack();//鍥炴粴浜嬪姟
- objJsonResult.code = "0";
- objJsonResult.count = 0;
- objJsonResult.Message = "鏁版嵁宸插垹闄ゆ棤娉曞啀娆″垹闄わ紒";
- objJsonResult.data = null;
- return objJsonResult;
- }
- oCN.RunProc("update Gy_Source set HStopflag=1 where HItemID=" + HItemID);
+ oCN.RunProc("delete from Gy_Source where HItemID=" + HItemID);
+
oCN.Commit();//鎻愪氦浜嬪姟
objJsonResult.code = "0";
objJsonResult.count = 1;
@@ -369,6 +360,7 @@
}
catch (Exception e)
{
+ oCN.RollBack();
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "鍒犻櫎澶辫触锛�" + e.ToString();
diff --git a/WebAPI/Controllers/CJGL/Sc_ProcessExchangeBillController.cs b/WebAPI/Controllers/CJGL/Sc_ProcessExchangeBillController.cs
index fd7de8a..94d7038 100644
--- a/WebAPI/Controllers/CJGL/Sc_ProcessExchangeBillController.cs
+++ b/WebAPI/Controllers/CJGL/Sc_ProcessExchangeBillController.cs
@@ -1006,6 +1006,8 @@
oBill.DetailColl[i].HBackProc = oItemSub.HBackProc;
oBill.DetailColl[i].HPrevSourceInterID = oItemSub.HPrevSourceInterID;
oBill.DetailColl[i].HPrevSourceEntryID = oItemSub.HPrevSourceEntryID;
+ oBill.DetailColl[i].HRemark = oItemSub.HRemark;
+ oBill.DetailColl[i].HTechnologyParameter = oItemSub.HTechnologyParameter;
i++;
}
diff --git "a/WebAPI/Controllers/\347\224\237\344\272\247\347\256\241\347\220\206/\347\224\237\344\272\247\344\273\273\345\212\241\345\215\225/Sc_ICMOBillController.cs" "b/WebAPI/Controllers/\347\224\237\344\272\247\347\256\241\347\220\206/\347\224\237\344\272\247\344\273\273\345\212\241\345\215\225/Sc_ICMOBillController.cs"
index 28f469b..af6a9ba 100644
--- "a/WebAPI/Controllers/\347\224\237\344\272\247\347\256\241\347\220\206/\347\224\237\344\272\247\344\273\273\345\212\241\345\215\225/Sc_ICMOBillController.cs"
+++ "b/WebAPI/Controllers/\347\224\237\344\272\247\347\256\241\347\220\206/\347\224\237\344\272\247\344\273\273\345\212\241\345\215\225/Sc_ICMOBillController.cs"
@@ -554,14 +554,14 @@
,HMaterID,HUnitID,HRemark,HSourceID,HDeptID,HSTATUS
,HBomID,HEntryCusID,HSTOCKINORGID
,HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HRelationQty,HRelationMoney
- ,HAuxQty,HAuxUnit,HWidth,HWeight)
+ ,HAuxQty,HAuxUnit,HWidth,HWeight,HColorRemark)
values({HInterID},{HEntryID},{(oSub.HQty == null ? 0 : oSub.HQty)}
,'{(oSub.HPlanBeginDate == null ? DateTime.Now.ToString("yyyy-MM-dd") : oSub.HPlanBeginDate.ToString())}','{(oSub.HPlanEndDate == null ? DateTime.Now.AddDays(1).ToString("yyyy-MM-dd") : oSub.HPlanEndDate.ToString())}'
,'{(oSub.HBeginDate == null ? DateTime.Now.ToString("yyyy-MM-dd") : oSub.HBeginDate.ToString())}','{(oSub.HEndDate == null ? DateTime.Now.AddDays(1).ToString("yyyy-MM-dd") : oSub.HEndDate.ToString())}'
,{oSub.HMaterID},{oSub.HUnitID},'{oSub.HRemark}',{oSub.HSourceID},{oSub.HDeptID},{oSub.HSTATUS}
,{oSub.HBomID} ,{oSub.HCusID} ,{oSub.HSTOCKINORGID}
,0,0,'','',0,0
- ,{oSub.HAuxQty},{oSub.HAuxUnit},{oSub.HWidth},{oSub.HWeight})");
+ ,{oSub.HAuxQty},{oSub.HAuxUnit},{oSub.HWidth},{oSub.HWeight},'{oSub.HColorRemark}')");
objJsonResult.code = "1";
diff --git a/WebAPI/DLL/ClsGy_Material_Ctl.cs b/WebAPI/DLL/ClsGy_Material_Ctl.cs
index 2adb5fb..053c895 100644
--- a/WebAPI/DLL/ClsGy_Material_Ctl.cs
+++ b/WebAPI/DLL/ClsGy_Material_Ctl.cs
@@ -26,14 +26,14 @@
",HKeepDays,HPlanPrice,HstdPrice,HQtyMin,HQtyMax" +
",HSubjoin,HSubjoin2,HColor,HVersion,HEngName,HEngModel,HPropertyTypeID,HSPGroupID,HSPID,HMinPickQty,HUSEORGID,HERPItemID" +
",HSALEUNITID,HSALEPRICEUNITID,HBASEUNITID,HSTOREUNITID,HCHECKINCOMING,HCHECKPRODUCT,HPERUNITSTANDHOUR" +
- ",HSTDLABORPREPARETIME,HSTDMACHINEPREPARETIME,HWidth,HWeight) " +
+ ",HSTDLABORPREPARETIME,HSTDMACHINEPREPARETIME,HWidth,HWeight,HColorRemark) " +
" Values('" + oModel.HNumber + "','" + oModel.HName + "','" + oModel.HHelpCode + "','" + oModel.HShortNumber + "'," + oModel.HParentID.ToString() +
", " + oModel.HLevel.ToString() + "," + Convert.ToString(oModel.HEndFlag ? 1 : 0) + "," + Convert.ToString(oModel.HStopflag ? 1 : 0) + ",'" + oModel.HRemark + "'" +
",'" + oModel.HModel + "'," + oModel.HUnitID.ToString() + "," + oModel.HMaterClsID.ToString() + "," + oModel.HMaterTypeID.ToString() + "," + oModel.HUnitGroupID.ToString() +
", " + oModel.HWhID.ToString() + "," + oModel.HRoutingID.ToString() + "," + oModel.HBomID.ToString() + "," + oModel.HSecUnitID.ToString() + "," + oModel.HSecUnitRate.ToString() +
", " + oModel.HHighStock.ToString() + "," + oModel.HLowStock.ToString() + "," + oModel.HSafeStock.ToString() + "," + oModel.HOrderPrice.ToString() + ",'" + oModel.HSalePrice + "'" +
", " + oModel.HKeepDays.ToString() + "," + oModel.HPlanPrice.ToString() + "," + oModel.HstdPrice.ToString() + "," + oModel.HQtyMin.ToString() + "," + oModel.HQtyMax.ToString() +
- ",'" + oModel.HSubjoin + "','" + oModel.HSubjoin2 + "','" + oModel.HColor + "','" + oModel.HVersion + "','" + oModel.HEngName + "','" + oModel.HEngModel + "'," + oModel.HPropertyTypeID.ToString() + "," + oModel.HSPGroupID.ToString() + "," + oModel.HSPID.ToString() + "," + oModel.HMinPickQty.ToString() + "," + oModel.HUSEORGID + "," + oModel.HERPItemID + "," + oModel.HSALEUNITID + "," + oModel.HSALEPRICEUNITID + "," + oModel.HBASEUNITID + "," + oModel.HSTOREUNITID + "," + oModel.HCHECKINCOMING + "," + oModel.HCHECKPRODUCT + "," + oModel.HPERUNITSTANDHOUR + "," + oModel.HSTDLABORPREPARETIME + "," + oModel.HSTDMACHINEPREPARETIME + ","+ oModel.HWidth + "," + oModel.HWeight + ")", ref DBUtility.ClsPub.sExeReturnInfo);
+ ",'" + oModel.HSubjoin + "','" + oModel.HSubjoin2 + "','" + oModel.HColor + "','" + oModel.HVersion + "','" + oModel.HEngName + "','" + oModel.HEngModel + "'," + oModel.HPropertyTypeID.ToString() + "," + oModel.HSPGroupID.ToString() + "," + oModel.HSPID.ToString() + "," + oModel.HMinPickQty.ToString() + "," + oModel.HUSEORGID + "," + oModel.HERPItemID + "," + oModel.HSALEUNITID + "," + oModel.HSALEPRICEUNITID + "," + oModel.HBASEUNITID + "," + oModel.HSTOREUNITID + "," + oModel.HCHECKINCOMING + "," + oModel.HCHECKPRODUCT + "," + oModel.HPERUNITSTANDHOUR + "," + oModel.HSTDLABORPREPARETIME + "," + oModel.HSTDMACHINEPREPARETIME + ","+ oModel.HWidth + "," + oModel.HWeight + ",'"+ oModel.HColorRemark + "')", ref DBUtility.ClsPub.sExeReturnInfo);
//淇敼涓婄骇涓洪潪鏈骇浠g爜
oCn.RunProc("Update " + MvarItemKey + " set HEndflag=0 where HItemID=" + oModel.HParentID, ref DBUtility.ClsPub.sExeReturnInfo);
oCn.Commit();
@@ -139,6 +139,7 @@
",HSTDLABORPREPARETIME=" + oModel.HSTDLABORPREPARETIME.ToString() +
",HWeight=" + oModel.HWeight.ToString() +
",HWidth=" + oModel.HWidth.ToString() +
+ ",HColorRemark='" + oModel.HColorRemark.ToString() + "'" +
",HSTDMACHINEPREPARETIME=" + oModel.HSTDMACHINEPREPARETIME.ToString() + "Where HItemID=" + sItemID, ref DBUtility.ClsPub.sExeReturnInfo);
//淇敼瀛愰」鐩唬鐮�
oCn.RunProc("exec h_p_Gy_UpdateNumber '" + MvarItemKey + "','" + oModel.HNumber + ".','" + this.HOldNumber + ".'", ref DBUtility.ClsPub.sExeReturnInfo);
diff --git a/WebAPI/Models/ClsGy_Material_Model.cs b/WebAPI/Models/ClsGy_Material_Model.cs
index 1daed48..7271bc3 100644
--- a/WebAPI/Models/ClsGy_Material_Model.cs
+++ b/WebAPI/Models/ClsGy_Material_Model.cs
@@ -46,6 +46,7 @@
public string HOldMaterNumber;
public double HWidth; //骞呭
public double HWeight; //鍏嬮噸
+ public string HColorRemark; //鏌撹壊瑕佹眰
public int HSALEUNITID; //閿�鍞閲忓崟浣�(gy_unit)
public int HSALEPRICEUNITID; //閿�鍞浠疯閲忓崟浣�(gy_unit)
diff --git "a/WebAPI/Models/\345\237\272\347\241\200\350\265\204\346\226\231/Gy_Process.cs" "b/WebAPI/Models/\345\237\272\347\241\200\350\265\204\346\226\231/Gy_Process.cs"
index a7dc37b..44a6c82 100644
--- "a/WebAPI/Models/\345\237\272\347\241\200\350\265\204\346\226\231/Gy_Process.cs"
+++ "b/WebAPI/Models/\345\237\272\347\241\200\350\265\204\346\226\231/Gy_Process.cs"
@@ -34,6 +34,7 @@
public long HEmpQty { get; set; }
public long HProcID { get; set; }
public int HUSEORGID { get; set; }
+ public bool HTProcessFlag { get; set; }
public string HBarCodeForBase { get; set; }
--
Gitblit v1.9.1