public async Task <CourseSubscribeInputModel> CapturePaymentAsync(string token)
        {
            PayPalEnvironment env    = GetPayPalEnvironment(options.CurrentValue);
            PayPalHttpClient  client = new PayPalHttpClient(env);

            OrdersCaptureRequest request = new(token);

            request.RequestBody(new OrderActionRequest());
            request.Prefer("return=representation");

            try
            {
                HttpResponse response = await client.Execute(request);

                Order result = response.Result <Order>();

                PurchaseUnit purchaseUnit = result.PurchaseUnits.First();
                Capture      capture      = purchaseUnit.Payments.Captures.First();

                // $"{inputModel.CourseId}/{inputModel.UserId}"
                string[] customIdParts = purchaseUnit.CustomId.Split('/');
                int      courseId      = int.Parse(customIdParts[0]);
                string   userId        = customIdParts[1];

                return(new CourseSubscribeInputModel
                {
                    CourseId = courseId,
                    UserId = userId,
                    Paid = new(Enum.Parse <Currency>(capture.Amount.CurrencyCode), decimal.Parse(capture.Amount.Value, CultureInfo.InvariantCulture)),
                    TransactionId = capture.Id,
                    PaymentDate = DateTime.Parse(capture.CreateTime, CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal | DateTimeStyles.AdjustToUniversal),
                    PaymentType = "Paypal"
                });
            }
Beispiel #2
0
        public ActionResult _AddPurchaseUnit(int id)
        {
            PurchaseBasket basket = GetPurchaseBasket();
            Stock          stock  = _stockService.GetStock(id);
            var            ru     = new PurchaseUnit
            {
                Stock         = stock,
                StockId       = id,
                PurchasedDate = basket.StartDate,
                //UnitId = basket.PurchasedUnits.NextIndex(c => c.UnitId),
                RetailCost        = stock.Model.RetailPrice,
                CustomerAccountId = basket.CustomerAccountId
            };

            if ((ru.Stock.ProductLifeCycleStatus.ProductLifeCycleActions & ProductLifeCycleActions.CanBeSold) != ProductLifeCycleActions.CanBeSold)
            {
                return(ReturnJsonError("Unit selected is not available. Status is : " + ru.Stock.ProductLifeCycleStatus.Description));
            }
            if (basket.PurchasedUnits.Any(u => u.StockId == id))
            {
                return(ReturnJsonFormSuccess());
            }
            basket.PurchasedUnits.Add(ru);
            AddContractsToUnits(basket);
            UpdateBasket(basket);
            return(ReturnJsonFormSuccess());
        }
        /// <summary>
        /// 采购商的经营范围的Code集合
        /// </summary>
        /// <param name="purchaseUnit"></param>
        /// <returns></returns>
        public List <string> GetBusinessScopeCodesByPurchaseUnit(PurchaseUnit purchaseUnit)
        {
            try
            {
                if (purchaseUnit != null)
                {
                    var gSPLicense = BusinessHandlerFactory.GSPLicenseBusinessHandler
                                     .Get(purchaseUnit.GSPLicenseId);
                    if (gSPLicense == null)
                    {
                        return(new List <string>());
                    }

                    var ids    = gSPLicense.GMSPLicenseBusinessScopes.Select(p => p.BusinessScopeId).AsQueryable();
                    var result = from i in BusinessHandlerFactory.BusinessScopeBusinessHandler.Queryable
                                 join j in ids on i.Id equals j
                                 select i.Name;

                    //var ids = gSPLicense.GMSPLicenseBusinessScopes.Where(r => r.GSPLicenseId.Equals(gSPLicense.Id)).Select(p => p.BusinessScopeId).AsQueryable();

                    //var result = from id in ids join j in BusinessHandlerFactory.BusinessScopeBusinessHandler.Queryable on id equals j.Id select j.Name;

                    return(result.ToList());
                }
                else
                {
                    return(BusinessHandlerFactory.BusinessScopeBusinessHandler.Queryable.Select(p => p.Name).ToList());
                }
            }
            catch (Exception ex)
            {
                return(this.HandleException <List <string> >("获取采购商经营范围失败", ex));
            }
        }
Beispiel #4
0
        public bool DeletePurchaseUnit(int unitId)
        {
            PurchaseUnit pu = GetPurchaseUnit(unitId);

            TempAccountAsAddPurchaseAccountVM().PurchasedUnits.Remove(pu);
            return(true);
        }
 /// <summary>
 /// 采购商的管理分类的Code集合
 /// </summary>
 /// <param name="purchaseUnit"></param>
 /// <returns></returns>
 public List <string> GetManageCategoryDetailByPurchaseUnit(PurchaseUnit purchaseUnit)
 {
     try
     {
         if (purchaseUnit != null)
         {
             var gSPLicense = BusinessHandlerFactory.GSPLicenseBusinessHandler
                              .Get(purchaseUnit.GSPLicenseId);
             if (gSPLicense == null)
             {
                 return(new List <string>());
             }
             if (gSPLicense.BusinessType != null)
             {
                 return(gSPLicense.BusinessType.BusinessTypeManageCategoryDetails.Select(p => p.PurchaseManageCategoryDetail.Name).ToList());
             }
             else
             {
                 return(new List <string>());
             }
         }
         else
         {
             return(BusinessHandlerFactory.PurchaseManageCategoryDetailBusinessHandler.Queryable.Select(p => p.Name).ToList());
         }
     }
     catch (Exception ex)
     {
         return(this.HandleException <List <string> >("获取采购商经营范围失败", ex));
     }
 }
 /// <summary>
 ///  修改一条采购商和审批流程记录
 /// </summary>
 /// <param name="userId"></param>
 /// <returns></returns
 public void ModifyPurchaseUnitApproveFlow(PurchaseUnit su, Guid approvalFlowTypeID, Guid userID, string changeNote)
 {
     try
     {
         if (changeNote.Contains("审批后修改"))
         {
             ApprovalFlow af = BusinessHandlerFactory.ApprovalFlowBusinessHandler.GetApproveFlowInstance(approvalFlowTypeID, su.FlowID, userID, changeNote);
             BusinessHandlerFactory.ApprovalFlowBusinessHandler.Add(af);
             ApprovalFlowRecord afr = BusinessHandlerFactory.ApprovalFlowRecordBusinessHandler.GetApproveFlowRecordInstance(af, userID, changeNote);
             BusinessHandlerFactory.ApprovalFlowRecordBusinessHandler.Add(afr);
         }
         if (changeNote.Contains("审批前修改"))
         {
             var c = BusinessHandlerFactory.ApprovalFlowBusinessHandler.GetApproveFlowsByFlowID(su.FlowID);
             if (c.ApprovalFlowTypeId != approvalFlowTypeID || c == null || c.ApprovalFlowTypeId == Guid.Empty)
             {
                 su.FlowID = Guid.NewGuid();
                 ApprovalFlow af = BusinessHandlerFactory.ApprovalFlowBusinessHandler.GetApproveFlowInstance(approvalFlowTypeID, su.FlowID, userID, changeNote);
                 BusinessHandlerFactory.ApprovalFlowBusinessHandler.Add(af);
                 ApprovalFlowRecord afr = BusinessHandlerFactory.ApprovalFlowRecordBusinessHandler.GetApproveFlowRecordInstance(af, userID, changeNote);
                 BusinessHandlerFactory.ApprovalFlowRecordBusinessHandler.Add(afr);
             }
         }
         this.Save(su);
         this.Save();
     }
     catch (Exception ex)
     {
         this.HandleException("修改一条采购商和审批流程记录失败", ex);
     }
 }
Beispiel #7
0
        /// <summary>
        /// 采购商的经营范围的Code集合
        /// </summary>
        /// <param name="purchaseUnit"></param>
        /// <returns></returns>
        public List <string> GetBusinessScopeCodesByPurchaseUnit(PurchaseUnit purchaseUnit)
        {
            try
            {
                if (purchaseUnit != null)
                {
                    var gSPLicense = BusinessHandlerFactory.GSPLicenseBusinessHandler
                                     .Get(purchaseUnit.GSPLicenseId);
                    if (gSPLicense == null)
                    {
                        return(new List <string>());
                    }

                    var codes = gSPLicense.GMSPLicenseBusinessScopes.Select(p => p.BusinessScopeCode).AsQueryable();

                    return(codes.ToList());
                }
                else
                {
                    return(BusinessHandlerFactory.BusinessScopeBusinessHandler.Queryable.Select(p => p.Name).ToList());
                }
            }
            catch (Exception ex)
            {
                return(this.HandleException <List <string> >("获取采购商经营范围失败", ex));
            }
        }
Beispiel #8
0
 public ucPurchaseUnit(PurchaseUnit purchaseUnit, bool isEdit)
     : this()
 {
     _purchaseUnit = purchaseUnit;
     InitEditControl(_purchaseUnit);
     this._isEditable = isEdit;
     SetControlIsEdit(isEdit);
 }
 public PurchaseUnitViewModel(PurchaseUnit purchaseUnit) : base(purchaseUnit)
 {
     Product     = new NameId(purchaseUnit.Product);
     Status      = purchaseUnit.Status;
     StorePrice  = purchaseUnit.StorePrice;
     UpdatedDate = purchaseUnit.UpdatedDate;
     Count       = purchaseUnit.Count;
 }
Beispiel #10
0
        public bool DeletePurchaseUnitContract(int contractId)
        {
            Tuple <ServiceContract, PurchaseUnit> tempContratTuple = GetTempPurchaseAccountUnitContractTuple(contractId);
            ServiceContract contract = tempContratTuple.Item1;
            PurchaseUnit    unit     = tempContratTuple.Item2;

            unit.Contracts.Remove(contract);
            return(true);
        }
Beispiel #11
0
        public void DeletePurchaseUnit(PurchaseUnit purchaseUnit, int toProductLifeCycle, bool refundAmount)
        {
            var account = GetAccount(purchaseUnit.CustomerAccountId) as PurchaseAccount;

            purchaseUnit.Stock.ProductLifeCycleId = toProductLifeCycle;
            if (refundAmount)
            {
                _accountTransactionService.AddAccountTransaction(account.CustomerAccountId, AccountTransactionType.Refund,
                                                                 -purchaseUnit.Total, AccountTransactionInputType.Charge, purchaseUnit.StockId, purchaseUnit.Stock.ManufacturerModel);
            }
            _customerAccountRepository.Update(account);
        }
Beispiel #12
0
        public void AddContractToPurchaseUnit(PurchaseUnit purhaseUnit, ServiceContract serviceContract)
        {
            purhaseUnit.Contracts.Add(serviceContract);
            if (serviceContract.Charge > 0)
            {
                _accountTransactionService.AddAccountTransaction(purhaseUnit.CustomerAccountId, AccountTransactionType.Service,
                                                                 serviceContract.Charge, AccountTransactionInputType.Charge, 0, "Service Contract :" + serviceContract.ContractType.Description);
            }

            var account = GetAccount(purhaseUnit.CustomerAccountId);

            UpdateAccount(account);
        }
 private void dgvUserList_KeyDown(object sender, KeyEventArgs e)
 {
     if (dgvUserList.CurrentRow == null)
     {
         return;
     }
     if (e.KeyCode == Keys.Return)
     {
         this.DialogResult = DialogResult.OK;
         this.Result       = purchaseunits[this.dgvUserList.CurrentRow.Index];//返回的数据
         this.Close();
     }
 }
Beispiel #14
0
        public ucPurchaseUnit(Guid flowID)
            : this()
        {
            string msg = string.Empty;

            if (!DesignMode)
            {
                _purchaseUnit = PharmacyDatabaseService.GetPurchaseUnitByFlowID(out msg, flowID);
            }
            InitEditControl(_purchaseUnit);
            this._isEditable = false;
            SetControlIsEdit(false);
            //this.textBoxPurchaseDelegater.Text = "CGWTS...";
        }
        /// <summary>
        /// 根据Name更新购买单位
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        public bool UpdatePurchaseUnitByName(string name, PurchaseUnit item)
        {
            try
            {
                PurchaseUnit a = this.Fetch(r => r.Name == name).FirstOrDefault();
                if (a != null)
                {
                    a.Code          = item.Code;
                    a.PinyinCode    = item.PinyinCode;
                    a.ContactName   = item.ContactName;
                    a.ContactTel    = item.ContactTel;
                    a.Description   = item.Description;
                    a.LegalPerson   = item.LegalPerson;
                    a.BusinessScope = item.BusinessScope;
                    a.SalesAmount   = item.SalesAmount;
                    a.Fax           = item.Fax;
                    a.Email         = item.Email;
                    a.WebAddress    = item.WebAddress;
                    a.OutDate       = item.OutDate;
                    //a.GSPGMPLicCode = item.GSPGMPLicCode;
                    //a.GSPGMPLicOutdate = item.GSPGMPLicOutdate;
                    //a.BusinessLicCode = item.BusinessLicCode;
                    //a.BusinessLicOutdate = item.BusinessLicOutdate;
                    //a.PharmaceuticalTradingLicCode = item.PharmaceuticalTradingLicCode;
                    //a.PharmaceuticalTradingLicOutdate = item.PharmaceuticalTradingLicOutdate;

                    a.GSPLicenseOutDate                   = item.GSPLicenseOutDate;
                    a.GMPLicenseOutDate                   = item.GMPLicenseOutDate;
                    a.BusinessLicenseeOutDate             = item.BusinessLicenseeOutDate;
                    a.MedicineProductionLicenseOutDate    = item.MedicineProductionLicenseOutDate;
                    a.MedicineBusinessLicenseOutDate      = item.MedicineBusinessLicenseOutDate;
                    a.InstrumentsProductionLicenseOutDate = item.InstrumentsProductionLicenseOutDate;
                    a.InstrumentsBusinessLicenseOutDate   = item.InstrumentsBusinessLicenseOutDate;

                    a.TaxRegistrationCode = item.TaxRegistrationCode;
                    a.LastAnnualDte       = item.LastAnnualDte;
                    this.Save();
                    return(true);
                }
                else
                {
                    throw new BusinessException("不存在单位名称为'" + name + "'的采购商");
                }
            }
            catch (Exception ex)
            {
                this.HandleException("根据名称更新购买单位失败", ex);
                return(false);
            }
        }
 /// <summary>
 /// 采购商的经营范围的Code集合
 /// </summary>
 /// <param name="purchaseUnitGuid"></param>
 /// <returns></returns>
 public List <string> GetBusinessScopeCodesByPurchaseUnitGuid(Guid purchaseUnitGuid)
 {
     try
     {
         PurchaseUnit purchaseUnit = this.Get(purchaseUnitGuid);
         if (purchaseUnit == null)
         {
             throw new Exception("采购商不存在");
         }
         return(GetBusinessScopeCodesByPurchaseUnit(purchaseUnit));
     }
     catch (Exception ex)
     {
         return(this.HandleException <List <string> >("根据采购商编号获取采购商经营范围失败", ex));
     }
 }
Beispiel #17
0
        private Tuple <ServiceContract, PurchaseUnit> GetTempPurchaseAccountUnitContractTuple(int id)
        {
            ServiceContract contract    = null;
            PurchaseUnit    holdingUnit = null;

            foreach (PurchaseUnit unit in TempAccountAsAddPurchaseAccountVM().PurchasedUnits)
            {
                if (unit.Contracts.Any(c => c.ContractId == id))
                {
                    contract    = unit.Contracts.Single(c => c.ContractId == id);
                    holdingUnit = unit;
                    break;
                }
            }
            return(new Tuple <ServiceContract, PurchaseUnit>(contract, holdingUnit));
        }
        /// <summary>
        /// 选中采购商
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void dgvUserList_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            var grid = sender as DataGridView;

            if (e.RowIndex < 0 || grid == null)
            {
                return;
            }

            //点击选择按钮
            if ("选择".Equals(grid.Columns[e.ColumnIndex].Name))
            {
                this.DialogResult = DialogResult.OK;
                this.Result       = purchaseunits[e.RowIndex];//返回的数据
                this.Close();
            }
        }
 /// <summary>
 /// 根据Name获取购买单位
 /// </summary>
 /// <param name="name"></param>
 /// <returns></returns>
 public PurchaseUnit GetPurchaseUnitByName(string name)
 {
     try
     {
         PurchaseUnit a = this.Fetch(r => r.Name == name).FirstOrDefault();
         if (a != null)
         {
             return(a);
         }
         else
         {
             return(null);
         }
     }
     catch (Exception ex)
     {
         this.HandleException("根据名称获取采购商失败 ", ex);
         return(null);
     }
 }
 /// <summary>
 /// 查找购买单位名称是否已存在
 /// </summary>
 /// <param name="name"></param>
 /// <returns></returns>
 public bool IsExistPurchaseUnitByName(string name)
 {
     try
     {
         PurchaseUnit a = this.Fetch(r => r.Name == name).FirstOrDefault();
         if (a != null)
         {
             return(true);
         }
         else
         {
             return(false);
         }
     }
     catch (Exception ex)
     {
         this.HandleException("根据名称检查采购商是否存在失败", ex);
         return(false);
     }
 }
Beispiel #21
0
        private void UpdatePurchaseAccountFromBasket(PurchaseBasket basket)
        {
            var account = _accountService.GetAccount(basket.CustomerAccountId) as PurchaseAccount;

            foreach (var unit in basket.PurchasedUnits)
            {
                var newUnit = new PurchaseUnit
                {
                    PurchasedDate     = unit.PurchasedDate,
                    RetailCost        = unit.RetailCost,
                    DiscountedAmount  = unit.DiscountedAmount,
                    StockId           = unit.StockId,
                    CustomerAccountId = unit.CustomerAccountId,
                    Contracts         = unit.Contracts.Select(c => new ServiceContract
                    {
                        ContractTypeId         = c.ContractTypeId,
                        ContractLengthInMonths = c.ContractLengthInMonths,
                        StartDate       = c.StartDate,
                        Charge          = c.Charge,
                        ExpiryDate      = c.ExpiryDate,
                        PaymentPeriodId = c.PaymentPeriodId,
                    }).ToList(),
                };
                account.PurchasedUnits.Add(newUnit);
            }
            foreach (var oneOffItem in basket.OneOffItems)
            {
                var newOneOffItem = new OneOffItem
                {
                    Description  = oneOffItem.Description,
                    Charge       = oneOffItem.Charge,
                    Date         = basket.StartDate,
                    Quantity     = oneOffItem.Quantity,
                    OneOffTypeId = oneOffItem.OneOffTypeId
                };
                account.OneOffItems.Add(newOneOffItem);
            }

            _accountService.UpdateAccount(account);
        }
Beispiel #22
0
        public ActionResult _AddPurchaseUnit(int id)
        {
            var purchaseAccount = TempAccountAsAddPurchaseAccountVM();
            var ru = new PurchaseUnit();

            ru.Stock         = _stockService.GetStock(id);
            ru.StockId       = id;
            ru.PurchasedDate = purchaseAccount.StartDate;
            ru.UnitId        = purchaseAccount.PurchasedUnits.NextIndex(c => c.UnitId);
            ru.RetailCost    = ru.Stock.Model.RetailPrice;
            if (ru.Stock.CustomerAccountId > 0)
            {
                return(ReturnJsonError("Unit selected is attached to another account!"));
            }
            if (purchaseAccount.PurchasedUnits.Any(u => u.StockId == id))
            {
                return(ReturnJsonFormSuccess());
            }
            purchaseAccount.PurchasedUnits.Add(ru);
            AddContractsToUnits(purchaseAccount);
            return(ReturnJsonFormSuccess());
        }
        /// <summary>
        ///  新增一条采购商和审批流程记录
        /// </summary>
        /// <param name="userId"></param>
        /// <returns></returns
        public void AddPurchaseUnitApproveFlow(PurchaseUnit su, Guid approvalFlowTypeID, Guid userID, string changeNote)
        {
            try
            {
                //增加采购商记录
                this.Add(su);

                //增加审批流程
                ApprovalFlow af = BusinessHandlerFactory.ApprovalFlowBusinessHandler.GetApproveFlowInstance(approvalFlowTypeID, su.FlowID, userID, changeNote);
                BusinessHandlerFactory.ApprovalFlowBusinessHandler.Add(af);

                //增加审批流程记录
                ApprovalFlowRecord afr = BusinessHandlerFactory.ApprovalFlowRecordBusinessHandler.GetApproveFlowRecordInstance(af, userID, changeNote);
                BusinessHandlerFactory.ApprovalFlowRecordBusinessHandler.Add(afr);

                this.Save();
            }
            catch (Exception ex)
            {
                this.HandleException("新增一条采购商和审批流程记录失败", ex);
            }
        }