Ejemplo n.º 1
0
 //2.檢查資料內容
 public static void CheckData(DBMoHeader moheader,DBMoItemDetail[] lstItemdetail)
 {
     string HPPlantCode = WebConfigurationManager.AppSettings["HPPlantCode"];
     if (moheader.Plant != HPPlantCode)
     {
         string errMsg = "This Plant :[" + moheader.Plant + "]  is not HP Plant Code";
         throw new Exception(errMsg);
     }
 }
Ejemplo n.º 2
0
        //3.執行DB insert 
        public static void Process(DBMoHeader dbheader, DBMoItemDetail[] moitems, string connectionDB)
        {

            string methodName = MethodBase.GetCurrentMethod().Name;
            BaseLog.LoggingBegin(logger, methodName);
            try
            {
               using (TransactionScope txn = UTL.CreateDbTxn())
               {

                    dbheader.IsProduct = "Y";
                    //檢查 MO 的 Model是否存在於 DockMOMaterialPreFix 設定中。
                    string DockMoMtlPreFixList = WebConfigurationManager.AppSettings["DockMOMaterialPreFix"];
                    string[] DockMOMaterialPreFix = DockMoMtlPreFixList.Split(new char[] { ',', ';' });
                    int stringCnt = 0;
                    for (int i = 0; i < DockMOMaterialPreFix.Length; i++)
                    {
                        if (DockMOMaterialPreFix[i].Trim() != "")
                        {
                            bool b = dbheader.BuildOutMtl.StartsWith(DockMOMaterialPreFix[i]);
                            //not match
                            if (!b)
                            {
                                 stringCnt++;
                            }
                        }
                    }
                    if (stringCnt == DockMOMaterialPreFix.Length)
                    {
                        //Model不符合 Docking的Model,則將MO insert 到HP DB
                        //insert MO to HP
                        int dbIndex = 1;
                        SQL.InsertMO(connectionDB, dbIndex, dbheader, "N", "", "");
                    }
                    else
                    {
                        //Model有符合 Dock的Model,則將MO insert 到Docking DB
                        //insert MO to Docking
                        int dbIndex = 0;
                        SQL.InsertMO(connectionDB, dbIndex, dbheader, "N", "", "");
                    }
                    txn.Complete();
               }
            }

            catch (Exception e)
            {
                BaseLog.LoggingError(logger, MethodBase.GetCurrentMethod(), e);
                //SQL.InsertTxnDataLog("Receive", "MoRelease", dbheader.MoNumber, dbheader.BuildOutMtl, dbheader.TxnId,"",e.Message, "Fail","");
                throw e;
            }
            finally
            {
                BaseLog.LoggingEnd(logger, methodName);
            } 
        }
Ejemplo n.º 3
0
        //1.檢查必要的input parameter
        public static void ValidateParameter(DBMoHeader header, DBMoItemDetail[] itemList)
        {

            string methodName = MethodBase.GetCurrentMethod().Name;
            BaseLog.LoggingBegin(logger, methodName);
            try
            {
                logger.DebugFormat("Header: \r\n{0}", ObjectTool.ObjectTostring(header));


                ObjectTool.CheckNullData(header.NotNullItemList, header);           

            }
            catch (Exception e)
            {
                BaseLog.LoggingError(logger, MethodBase.GetCurrentMethod(), e);
                throw e;
            }
            finally
            {
                BaseLog.LoggingEnd(logger, methodName);
            }                       
        }     
Ejemplo n.º 4
0
        private static void SetBOMGroup(DBMoItemDetail[] moitems)
        {
          
            int groupNo = 1;
            for (int i = 0; i < moitems.Length; i++)
            {
                if (moitems[i].Group == 0)
                { 
                    moitems[i].Group = groupNo; 
                }
                else
                { 
                    continue; 
                }

                 for (int k = i + 1; k < moitems.Length; k++)
                {
                    if (moitems[i].AltGroup == moitems[k].AltGroup && 
                        moitems[i].ParentMaterial == moitems[k].ParentMaterial &&
                        !string.IsNullOrEmpty(moitems[i].AltGroup ) &&
                        !string.IsNullOrEmpty(moitems[k].AltGroup))
                    {
                        moitems[i].Group = groupNo;
                        moitems[k].Group = groupNo;
                    }

                }
                groupNo++;
            }
        }
Ejemplo n.º 5
0
        private static SqlParameter[] BuildBOMItemsSqlParams(DBMoItemDetail[] moitems, ref string strSQL,string strOneSQL)
        {
             SetBOMGroup(moitems);
             List<SqlParameter> sqlparams = new List<SqlParameter>();
             int i = 0; //items count
             sqlparams.Add(SQLHelper.CreateSqlParameter("@MO", 20, moitems[0].MoNumber.Trim()));
             sqlparams.Add(SQLHelper.CreateSqlParameter("@ID", 0));

             foreach (DBMoItemDetail item in moitems)
            {

                 // SAP delete material flag don't insert MoBOM 
                 if (string.IsNullOrEmpty( item.Delete))
                 {
                    string[] col = new string[16];
                    col[0] = "@MO" + i.ToString();
                    sqlparams.Add(SQLHelper.CreateSqlParameter(col[0], 20, item.MoNumber.Trim()));
                    col[1] = "@PartNo" + i.ToString();
                    sqlparams.Add(SQLHelper.CreateSqlParameter(col[1], 20, item.Component.Trim()));
                    col[2] = "@Qty" + i.ToString();
                    //double qty = Math.Ceiling(float.Parse(item.ReqQty));
                    double qty = Math.Ceiling(float.Parse(item.UnitReqQty));
                    sqlparams.Add(SQLHelper.CreateSqlParameter(col[2], (int)qty));
                    col[3] = "@Group" + i.ToString();
                    sqlparams.Add(SQLHelper.CreateSqlParameter(col[3], item.Group));//group
                    col[4] = "@TxnId" + i.ToString();
                    sqlparams.Add(SQLHelper.CreateSqlParameter(col[4], 32, item.SerialNumber.Trim()));
                    col[5] = "@MOItem" + i.ToString();
                    sqlparams.Add(SQLHelper.CreateSqlParameter(col[5], 8, item.MoItem.Trim()));
                    col[6] = "@Reservation" + i.ToString();
                    sqlparams.Add(SQLHelper.CreateSqlParameter(col[6], 16, item.Reservation.Trim()));
                    col[7] = "@ResvItem" + i.ToString();
                    sqlparams.Add(SQLHelper.CreateSqlParameter(col[7], 8, item.ResvItem.Trim()));
                    col[8] = "@WithdrawQty" + i.ToString();
                    double wqty = Math.Ceiling(float.Parse(item.WithdrawQty));
                    sqlparams.Add(SQLHelper.CreateSqlParameter(col[8], (int)wqty));
                    col[9] = "@Unit" + i.ToString();
                    sqlparams.Add(SQLHelper.CreateSqlParameter(col[9], 8, item.Unit));
                    col[10] = "@AltGroup" + i.ToString();
                    sqlparams.Add(SQLHelper.CreateSqlParameter(col[10], 8, item.AltGroup == null ? "" : item.AltGroup.Trim()));
                    col[11] = "@IsPhantom" + i.ToString();
                    sqlparams.Add(SQLHelper.CreateSqlParameter(col[11], 1, item.Pantom == null ? "" : item.Pantom.Trim()));
                    col[12] = "@IsBulk" + i.ToString();
                    sqlparams.Add(SQLHelper.CreateSqlParameter(col[12], 1, item.Bulk == null ? "" : item.Bulk.Trim()));
                    col[13] = "@SpecialStock" + i.ToString();
                    sqlparams.Add(SQLHelper.CreateSqlParameter(col[13], 1, item.SpecialStock == null ? "" : item.SpecialStock.Trim()));
                    col[14] = "@MN" + i.ToString();
                    sqlparams.Add(SQLHelper.CreateSqlParameter(col[14], 16, item.MN == null ? "" : item.MN.Trim()));
                    col[15] = "@ParentMaterial" + i.ToString();
                    sqlparams.Add(SQLHelper.CreateSqlParameter(col[15], 16, item.ParentMaterial == null ? "" : item.ParentMaterial.Trim()));
                    strSQL = strSQL + string.Format
                                      (strOneSQL, col[0], col[1], col[2], col[3], col[4], col[5], col[6], col[7], col[8], col[9], col[10],
                                                                         col[11], col[12], col[13], col[14], col[15]) + "\r\n";

                    i++;
                 }
            }
             return sqlparams.ToArray();
        }