Example #1
0
 public MoItemDetail(MoItemDetail itemdetail)
 { ObjectTool.CopyObject(itemdetail, this); }
Example #2
0
 public DBMoItemDetail(MoItemDetail itemdetail): base(itemdetail)
 {  }
Example #3
0
        public MoReleaseResponse MoRelease(MoHeader moheader, MoItemDetail[] moitems)
        {
            string connectionDB = "PP_DBServer";
            int dbIndex = 0;
            string methodName = MethodBase.GetCurrentMethod().Name;
            BaseLog.LoggingBegin(logger, methodName);
            string msgName = "MORelease";
            string responseMsg = "MOReleaseResponse";

            if (string.IsNullOrEmpty(moheader.TCode) || 
                moheader.TCode == "CO02" || 
                moheader.TCode == "BADI")
            {
                msgName = "MOChange";
                responseMsg = "MOChangeResponse";
            }
           
            DBMoHeader dbheader = new DBMoHeader(moheader);
            try
            {
                string BuildOutMtl = "";
                string MaterialGroup = "";
                string TotalQty = "";
                string Status = "";
                BuildOutMtl = string.IsNullOrEmpty(moheader.BuildOutMtl) ? "" : moheader.BuildOutMtl;
                MaterialGroup = string.IsNullOrEmpty(moheader.MaterialGroup) ? "" : moheader.MaterialGroup;
                TotalQty = string.IsNullOrEmpty(moheader.TotalQty) ? "" : moheader.TotalQty;
                Status = string.IsNullOrEmpty(moheader.Status) ? "" : moheader.Status;

                WS.Common.SQL.InsertTxnDataLog_DB(connectionDB, dbIndex, 
                                                        EnumMsgCategory.Receive,
                                                        msgName,
                                                        string.IsNullOrEmpty(moheader.MoNumber) ? "" : moheader.MoNumber,
                                                        string.IsNullOrEmpty(moheader.Status) ? "" : moheader.Status,                                                                              
                                                        string.IsNullOrEmpty(moheader.SerialNumber) ? "" : moheader.SerialNumber,
                                                        "",
                                                        "",
                                                        EnumMsgState.Received,
                                                        BuildOutMtl + ";" + MaterialGroup + ";" + TotalQty + ";" + Status);
               
                List<DBMoItemDetail> lstdbItemdetail = new List<DBMoItemDetail>();
                foreach (MoItemDetail item in moitems)
                {
                    lstdbItemdetail.Add(new DBMoItemDetail(item));
                }
                //1.檢查必要的input parameter
                DBMoItemDetail[] dbitemsArr = lstdbItemdetail.ToArray();
                Execute.ValidateParameter(dbheader, lstdbItemdetail.ToArray());

                //2.檢查資料內容 
                Execute.CheckData(dbheader, dbitemsArr);

                //3.執行DB insert 
                Execute.Process(dbheader, dbitemsArr, connectionDB);

                //4.Build Response Message
                MoReleaseResponse mrealease = Execute.BuildResponseMsg(moheader, true, "");
                WS.Common.SQL.InsertTxnDataLog_DB(connectionDB, dbIndex,
                                                    EnumMsgCategory.Send,
                                                    responseMsg,
                                                    string.IsNullOrEmpty(moheader.MoNumber) ? "" : moheader.MoNumber,
                                                    string.IsNullOrEmpty(moheader.Status) ? "" : moheader.Status,
                                                    string.IsNullOrEmpty(moheader.SerialNumber) ? "" : moheader.SerialNumber,
                                                    "",
                                                    "",
                                                    EnumMsgState.Success,
                                                    "");
                return mrealease;
            }
            catch (Exception e)
            {
                BaseLog.LoggingError(logger, MethodBase.GetCurrentMethod(), e);
                
                MoReleaseResponse mrealease = Execute.BuildResponseMsg(moheader, false, e.Message);
                WS.Common.SQL.InsertTxnDataLog_DB(connectionDB, dbIndex,
                                                        EnumMsgCategory.Receive,
                                                        responseMsg,
                                                        string.IsNullOrEmpty(moheader.MoNumber) ? "" : moheader.MoNumber,
                                                        string.IsNullOrEmpty(moheader.Status) ? "" : moheader.Status,
                                                        string.IsNullOrEmpty(moheader.SerialNumber) ? "" : moheader.SerialNumber,
                                                        "",
                                                        e.Message,
                                                        EnumMsgState.Fail,
                                                        "");
                return mrealease;
            }
            finally
            {
                BaseLog.LoggingEnd(logger, methodName);
            }

           
        }