Ejemplo n.º 1
0
 public DBMoHeader(MoHeader header):base(header){ }
Ejemplo n.º 2
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);
            }

           
        }
Ejemplo n.º 3
0
 public MoHeader(MoHeader header)
 {
     ObjectTool.CopyObject(header, this);
  
 }
Ejemplo n.º 4
0
        //4.Build Response message structure
        public static MoReleaseResponse BuildResponseMsg(MoHeader moheader, bool isOK, string errMsg)
        {

            string methodName = MethodBase.GetCurrentMethod().Name;
            BaseLog.LoggingBegin(logger, methodName);            
            try
            {
                MoReleaseResponse response = new MoReleaseResponse();
                      
                if (isOK)
                {
                    response.FailDescr = "";
                    response.MoNumber = moheader.MoNumber;
                    response.Result = "T";
                }
                else
                {
                    response.FailDescr = errMsg;
                    response.MoNumber = moheader.MoNumber;
                    response.Result = "F";
                }
                BaseLog.LoggingInfo(logger,"ResponseMsg: \r\n{0}", ObjectTool.ObjectTostring(response));

               
                //SQL.InsertTxnDataLog("Send", "MoReleaseResponse", moheader.MoNumber, moheader.BuildOutMtl, moheader.TxnId, "", errMsg, "Sending","");
                return response;


            }
            catch (Exception e)
            {

                BaseLog.LoggingError(logger, MethodBase.GetCurrentMethod(), e);
                //SQL.InsertTxnDataLog("Send", "MoReleaseResponse", moheader.MoNumber, moheader.BuildOutMtl, moheader.TxnId, "",e.Message, "Fail","");
                throw e;

            }

            finally
            {
                BaseLog.LoggingEnd(logger, methodName);
            }        

        }