예제 #1
0
        public async Task <IHttpActionResult> UpdateBusinessPartner(oBusinessPartner businessPartner)
        {
            try
            {
                if (!GlobalInstance.Instance.IsConnected)
                {
                    GlobalInstance.Instance.InitializeSboComObject();
                }
                var bp = await repo.GetByCardCode(businessPartner.CardCode);

                if (businessPartner == null)
                {
                    errMsg = string.Format("Business partner {0} does not exist.", businessPartner.CardCode);
                    var resp = new HttpResponseMessage(HttpStatusCode.NotFound);
                    resp.Content      = new StringContent(errMsg);
                    resp.ReasonPhrase = "Object not found.";
                    throw new HttpResponseException(resp);
                }

                if (repo.Update(businessPartner) < 0)
                {
                    errMsg = GlobalInstance.Instance.SBOErrorMessage;
                    var resp = new HttpResponseMessage(HttpStatusCode.Conflict);
                    resp.Content      = new StringContent(errMsg);
                    resp.ReasonPhrase = "SBO Error";
                    throw new HttpResponseException(resp);
                }

                return(Ok(string.Format("Business partner {0} succesfully added.", businessPartner.CardCode)));
            }
            catch (HttpResponseException ex)
            {
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }
        }
예제 #2
0
        public int Update(oBusinessPartner obj)
        {
            BusinessPartners _bp = (BusinessPartners)SboComObject.GetBusinessObject(BoObjectTypes.oBusinessPartners);

            try
            {
                SboComObject.StartTransaction();

                int retCode = 0;

                _bp.GetByKey(obj.CardCode);

                _bp.CardName      = obj.CardName;
                _bp.Address       = obj.Address;
                _bp.ContactPerson = obj.CntctPerson;
                _bp.Cellular      = obj.Cellular;
                _bp.Phone1        = obj.Phone1;
                _bp.Phone2        = obj.Phone2;
                _bp.EmailAddress  = obj.Email;

                retCode = _bp.Update();

                if (retCode != 0)
                {
                    int    errCode    = 0;
                    string errMessage = "";
                    SboComObject.GetLastError(out errCode, out errMessage);
                    GlobalInstance.Instance.SBOErrorCode    = errCode;
                    GlobalInstance.Instance.SBOErrorMessage = errMessage;

                    SboComObject.EndTransaction(BoWfTransOpt.wf_RollBack);
                }
                else
                {
                    SboComObject.EndTransaction(BoWfTransOpt.wf_Commit);
                }

                return(retCode);
            }
            catch (Exception ex)
            {
                System.Runtime.InteropServices.Marshal.ReleaseComObject(_bp);
                throw new Exception(GlobalInstance.Instance.SBOErrorMessage == null ? ex.Message : GlobalInstance.Instance.SBOErrorMessage);
            }
            finally
            {
                System.Runtime.InteropServices.Marshal.ReleaseComObject(_bp);
            }
        }
예제 #3
0
 public void LogBPTransaction(oBusinessPartner obj, bool isPosted, ErrorLog errLog = null)
 {
     try
     {
         log.TransactionNo     = obj.CardCode;
         log.Origin            = string.Format("{0}-{1}", HttpContext.Current.Request.UserHostAddress, HttpContext.Current.Request.UserHostName);
         log.Type              = TransactionLog.SBOType.BP;
         log.LogDate           = DateTime.Now;
         log.IsPosted          = isPosted;
         log.TransactionDataID = log.RawData.ID;
         log.RawData.PostedOn  = obj.CreateDate;
         log.RawData.RawData   = JsonConvert.SerializeObject(obj);
         repo.AddOrUpdate(log);
     }
     catch (Exception ex)
     {
         throw new Exception(ex.Message);
     }
 }
        public void LogBPTransaction(oBusinessPartner obj, bool isPosted, string action, string origin, ErrorLog errLog = null)
        {
            try
            {
                log.TransactionNo = obj.CardCode;
                log.Origin        = origin;
                log.Type          = TransactionLog.SBOType.BP;
                log.LogDate       = DateTime.Now;
                log.IsPosted      = isPosted;
                TransactionData rawData = new TransactionData();
                rawData.PostedOn = obj.CreateDate;
                rawData.RawData  = JsonConvert.SerializeObject(obj);

                log.RawData   = rawData;
                log.Action    = action;
                log.CreatedBy = obj.CreatedBy;
                log.CreatedOn = obj.CreateDate;
                repo.AddOrUpdate(log);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
예제 #5
0
        public int Add(oBusinessPartner obj)
        {
            BusinessPartners _bp = (BusinessPartners)SboComObject.GetBusinessObject(BoObjectTypes.oBusinessPartners);
            SeriesRepository s   = new SeriesRepository();

            s.InitRepository(GlobalInstance.Instance.SqlObject);
            var     tempList = s.GetList(null);
            oSeries _s       = new oSeries();

            _s = tempList.Result.FirstOrDefault(x => x.ObjectCode == ((int)SboTransactionType.BP).ToString() && x.Series == obj.Series && x.DocSubType == obj.CardType);

            try
            {
                SboComObject.StartTransaction();

                int retCode = 0;

                if (_s != null)
                {
                    if (_s.SeriesName.ToLower() == "manual")
                    {
                        _bp.CardCode = obj.CardCode;
                    }
                }

                _bp.Series        = obj.Series;
                _bp.GroupCode     = obj.GroupCode;
                _bp.CardName      = obj.CardName;
                _bp.Address       = obj.Address;
                _bp.CardType      = obj.CardType == "C" ? BoCardTypes.cCustomer : BoCardTypes.cSupplier;
                _bp.ContactPerson = obj.CntctPerson;
                _bp.Cellular      = obj.Cellular;
                _bp.Phone1        = obj.Phone1;
                _bp.Phone2        = obj.Phone2;
                _bp.EmailAddress  = obj.Email;

                retCode = _bp.Add();

                if (retCode != 0)
                {
                    int    errCode    = 0;
                    string errMessage = "";
                    SboComObject.GetLastError(out errCode, out errMessage);
                    GlobalInstance.Instance.SBOErrorCode    = errCode;
                    GlobalInstance.Instance.SBOErrorMessage = errMessage;

                    SboComObject.EndTransaction(BoWfTransOpt.wf_RollBack);
                }
                else
                {
                    SboComObject.EndTransaction(BoWfTransOpt.wf_Commit);
                }

                return(retCode);
            }
            catch (Exception ex)
            {
                System.Runtime.InteropServices.Marshal.ReleaseComObject(_bp);
                throw new Exception(GlobalInstance.Instance.SBOErrorMessage == null ? ex.Message : GlobalInstance.Instance.SBOErrorMessage);
            }
            finally
            {
                System.Runtime.InteropServices.Marshal.ReleaseComObject(_bp);
            }
        }
        public async Task <IHttpActionResult> UpdateBusinessPartner(oBusinessPartner businessPartner)
        {
            try
            {
                if (!GlobalInstance.Instance.IsConnected)
                {
                    GlobalInstance.Instance.InitializeSboComObject();
                }
                var bp = await repo.GetByCardCode(businessPartner.CardCode);

                string validationStr = ModelValidator.ValidateModel(businessPartner);

                if (!string.IsNullOrEmpty(validationStr))
                {
                    errMsg = string.Format(validationStr);
                    var resp = new HttpResponseMessage(HttpStatusCode.Conflict);
                    resp.Content      = new StringContent(errMsg);
                    resp.ReasonPhrase = "Object property validation error";
                    var err = ErrorLogger.Log(new ErrorLog
                    {
                        ErrorCode  = (int)HttpStatusCode.Conflict,
                        Message    = errMsg,
                        StackTrace = Environment.StackTrace
                    });

                    transactionLogger.LogBPTransaction(businessPartner, false, "U", this.Request.Headers.Host, err);
                    throw new HttpResponseException(resp);
                }

                if (businessPartner == null)
                {
                    errMsg = string.Format("Business partner {0} does not exist.", businessPartner.CardCode);
                    var resp = new HttpResponseMessage(HttpStatusCode.NotFound);
                    resp.Content      = new StringContent(errMsg);
                    resp.ReasonPhrase = "Object not found.";
                    var err = ErrorLogger.Log(new ErrorLog
                    {
                        ErrorCode  = (int)HttpStatusCode.Conflict,
                        Message    = errMsg,
                        StackTrace = Environment.StackTrace
                    });

                    transactionLogger.LogBPTransaction(businessPartner, false, "U", this.Request.Headers.Host, err);
                    throw new HttpResponseException(resp);
                }

                if (repo.Update(businessPartner) < 0)
                {
                    errMsg = GlobalInstance.Instance.SBOErrorMessage;
                    var resp = new HttpResponseMessage(HttpStatusCode.Conflict);
                    resp.Content      = new StringContent(errMsg);
                    resp.ReasonPhrase = "SBO Error";
                    var err = ErrorLogger.Log(new ErrorLog
                    {
                        ErrorCode  = (int)HttpStatusCode.Conflict,
                        Message    = errMsg,
                        StackTrace = Environment.StackTrace
                    });

                    transactionLogger.LogBPTransaction(businessPartner, false, "U", this.Request.Headers.Host, err);
                    throw new HttpResponseException(resp);
                }

                transactionLogger.LogBPTransaction(businessPartner, true, "U", this.Request.Headers.Host);
                return(Ok(string.Format("Business partner {0} succesfully added.", businessPartner.CardCode)));
            }
            catch (HttpResponseException ex)
            {
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }
        }