예제 #1
0
        public IActionResult globalparam()
        {
            var model = new AppGlobalSettingsRepo(db).GetAll();

            return(View(model));
        }
        public async Task <IActionResult> MyReport(MoneyTransferMyReportDto param)
        {
            try
            {
                if (!Utility.IsValidDate(param.StartDate))
                {
                    return(BadRequest(new ApiResponse(-3011, $"Sorry, start date is invalid {param.StartDate}")));
                }
                if (!Utility.IsValidDate(param.EndDate))
                {
                    return(BadRequest(new ApiResponse(-3012, $"Sorry, end date is invalid {param.EndDate}")));
                }
                var startDate       = DateTime.ParseExact(param.StartDate, "dd/MM/yyyy", null); //DateTime.Parse(param.StartDate);
                var endDate         = DateTime.ParseExact(param.EndDate, "dd/MM/yyyy", null);   // DateTime.Parse(param.EndDate);
                var maxDaysSettings = new AppGlobalSettingsRepo(_db).GetSingle("API.MoneyTransfer.Report.MaxDays");
                if (maxDaysSettings != null)
                {
                    if ((endDate - startDate).TotalDays > int.Parse(maxDaysSettings.SettingValue) &&
                        int.Parse(maxDaysSettings.SettingValue) > 0)
                    {
                        return(BadRequest(new ApiResponse(-3013,
                                                          $"Sorry, The report period is greater than the limit {int.Parse(maxDaysSettings.SettingValue)} day(s)")));
                    }
                }

                var currentUser = _partnerManager.GetPartnerById(this.HttpContext.User.Identity.Name);
                if (currentUser == null)
                {
                    return(Unauthorized(new ApiResponse(-3003, "Sorry, re-login required")));
                }
                var permission = _partnerActivity.GetPartAct("MoneyTransfer.API.MyReport", currentUser.Role.Id);
                if (permission == null)
                {
                    return(Unauthorized(new ApiResponse(401)));
                }
                var maxRecordsSettings =
                    new AppGlobalSettingsRepo(_db).GetSingle("API.MoneyTransfer.Report.MaxResults");
                int maxRecords = maxRecordsSettings == null ? 200 : int.Parse(maxRecordsSettings.SettingValue);

                var results = await new MoneyTransferRepo(_db, _partnerManager, _partnerActivity).GetMoneyTransfers(
                    currentUser.Account, startDate, endDate, maxRecords);
                if (results == null || results.Count <= 0)
                {
                    return(Ok(
                               new
                    {
                        resultCode = 0,
                        resultDesc = "No data",
                        success = "yes",
                        queryTime = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"),
                        data = new object()
                    }));
                }
                var retResults = new List <object>();
                foreach (var obj in results)
                {
                    retResults.Add(new
                    {
                        transferTime    = obj.CreatedOn,
                        transferId      = obj.Id,
                        seq             = obj.ApiTransaction,
                        sourceAccount   = obj.CreatedBy.Account,
                        sourceMobile    = obj.CreatedBy.Id,
                        sourceName      = obj.CreatedBy.Name,
                        sourceBalance   = obj.CreatedBy.Balance,
                        targetAccount   = obj.Partner.Account,
                        targetMobile    = obj.Partner.Id,
                        targetName      = obj.Partner.Name,
                        targetBalance   = obj.Partner.Balance,
                        amount          = obj.Amount,
                        netAmount       = obj.NetAmount,
                        taxPercent      = obj.TaxPercent,
                        taxAmount       = obj.TaxAmount,
                        bonusPercent    = obj.BonusPercent,
                        bounsAmount     = obj.BounsAmount,
                        bounsTaxPercent = obj.BounsTaxPercent,
                        bounsTaxAmount  = obj.BounsTaxAmount,
                        note            = obj.Note
                    });
                }

                return(Ok(
                           new {
                    resultCode = 0,
                    resultDesc = "OK",
                    success = "yes",
                    queryTime = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"),
                    data = retResults
                }));
            }
            catch (Exception ex)
            {
                return(BadRequest(new ApiResponse(-9999, ex.Message)));
            }
        }