コード例 #1
1
        /// <summary>
        /// Gets a collection of PointsLog objects by a Voucher object.
        /// </summary>
        /// <param name="voucher_">voucher_</param>
        /// <returns>A collection PointsLog objects.</returns>
        public static EntityList<PointsLog> GetPointsLogsByvoucher_(Voucher @voucher_)
        {
            string commandText = "PointsLogGetByVoucher";

            List<SqlParameter> parameters = new List<SqlParameter>();
            parameters.Add(new SqlParameter("@voucher_id", @voucher_.voucher_id));

            return GetList<PointsLog>(@voucher_, commandText, parameters);
        }
コード例 #2
0
ファイル: tagging.cs プロジェクト: slyzius/draft
        public void Initialize(Voucher[] inVouchers, FeatureManager ftm)
        {
            _ftm = ftm;

            var vouchers = ftm.ReadUniqueVouchers(inVouchers);

            _totalVouchers = vouchers.Length;

            // feature per category likellihood
            _categCounts = vouchers.GroupBy(x => x.TagName).ToDictionary(x => x.Key, x => x.Count());

            _featureLikellihood = vouchers.GroupBy(g => g.TagName)
                    .SelectMany(y =>y.SelectMany(c => _ftm.ReadFeatures(c.OcrFeatures.ToList()).Select(f=>new Tuple<string,int>(y.Key,f.Item1))))
                    .GroupBy(x=>x.Item1)
                    .ToDictionary(x=>x.Key,x=>x.GroupBy(y=>y.Item2).ToDictionary(z =>/*_ftm._featureById[*/z.Key/*]*/, z=> ((double)z.Count() + 1) / (x.Count() + _ftm._featureById.Count)));


            // user per category likellihood: p(categ,user) = p(categ|user)*p(user)
            int totalUsers = vouchers.Select(x => x.OrganizationId).Distinct().Count();
            _userPrior = vouchers.GroupBy(x => x.OrganizationId).ToDictionary(x => x.Key, x => ((double)x.Count() + 1) / (_totalVouchers + totalUsers));

            _categUserLikellihood = vouchers.GroupBy(g => g.OrganizationId)
                .ToDictionary(x => x.Key, x => x.GroupBy(y => y.TagName).ToDictionary(y => y.Key, y => ((double)y.Count() + 1) / (_categCounts[y.Key] + totalUsers)));

            //var tmp = vouchers.Where(x => x.OrganizationId == 3634).GroupBy(x => x.TagName).Select(x => new Tuple<string, double>(x.Key, ((double)x.Count() + 1) / (categCounts[x.Key] + totalUsers))).ToList();
        }
コード例 #3
0
ファイル: VoucherDTO.cs プロジェクト: nlavu/muachung-a4
 public VoucherDTO(Voucher vc)
 {
     this.MAVOUCHER1 = vc.MAVOUCHER;
     this.TENVOUCHER1 = vc.TENVOUCHER;
     this.THOIGIANBDKM1 = vc.THOIGIANBDKM;
     this.THOIGIANKTKM1 = vc.THOIGIANKTKM;
     this.NOIDUNG1 = vc.NOIDUNG;
     this.GIAGOC1 = vc.GIAGOC;
     this.GIAKHUYENMAI1 = vc.GIAKHUYENMAI;
     this.SOLUONGTRONGKHO1 = vc.SOLUONGTRONGKHO;
     this.SOLUONGDAMUA1 = vc.SOLUONGDAMUA;
     this.THUOCTINHVIP1 = vc.THUOCTINHVIP;
     this.TONGSOGIOBAN1 = vc.TONGSOGIOBAN;
     this.TRANGTHAIDUYET1 = vc.TRANGTHAIDUYET;
     this.MAHINH1 = vc.MAHINH;
     this.MALOAIVOUCHER1 = vc.MALOAIVOUCHER;
     this.MAKHUVUC1 = vc.MAKHUVUC;
     this.MADOANHNGHIEP1 = vc.MADOANHNGHIEP;
     this.ISAVAILABLE1 = vc.ISAVAILABLE;
 }
コード例 #4
0
        /// <summary>
        ///     判断记账凭证是否符合记账凭证过滤器
        /// </summary>
        /// <param name="voucher">记账凭证</param>
        /// <param name="filter">记账凭证过滤器</param>
        /// <returns>是否符合</returns>
        public static bool IsMatch(this Voucher voucher, Voucher filter)
        {
            if (filter?.ID != null)
            {
                if (filter.ID != voucher.ID)
                {
                    return(false);
                }
            }

            if (filter?.Date != null)
            {
                if (filter.Date != voucher.Date)
                {
                    return(false);
                }
            }

            if (filter?.Type != null)
            {
                switch (filter.Type)
                {
                case VoucherType.Ordinary:
                case VoucherType.Amortization:
                case VoucherType.AnnualCarry:
                case VoucherType.Carry:
                case VoucherType.Depreciation:
                case VoucherType.Devalue:
                case VoucherType.Uncertain:
                    if (filter.Type != voucher.Type)
                    {
                        return(false);
                    }

                    break;

                case VoucherType.General:
                    if (voucher.Type == VoucherType.Carry ||
                        voucher.Type == VoucherType.AnnualCarry)
                    {
                        return(false);
                    }

                    break;
                }
            }

            if (filter?.Remark != null)
            {
                if (filter.Remark == string.Empty)
                {
                    if (!string.IsNullOrEmpty(voucher.Remark))
                    {
                        return(false);
                    }
                }
                else if (filter.Remark != voucher.Remark)
                {
                    return(false);
                }
            }

            return(true);
        }
コード例 #5
0
        void LoadVoucher(long id, LINKED linked = LINKED.CURRENT)
        {
            Voucher       v      = DataFactory.Instance.GetVoucherExecuter().Find(id, linked);
            VoucherHeader header = v.header;

            if (v.udefenties != null)
            {
                mUserDefineDataSource = v.udefenties;
            }
            mid = header.id;

            lblStatus.Visibility = Visibility.Hidden;
            UnLock();

            txtBBillNo.Text   = "";
            txtAgent.Text     = header.agent;
            txtCashier.Text   = header.cashier;
            txtReference.Text = header.reference;

            lblCreater.Tag     = header.creater;
            lblCreater.Content = DataFactory.Instance.GetUserExecuter().FindName(header.creater);

            dateBusinessDate.SelectedDate = header.businessDate;
            dateDate.SelectedDate         = header.date;
            cmbWords.SelectedValue        = header.word;
            intSn.Value = (int)header.serialNo;
            intNo.Value = (int)header.no;

            lblPeriod.Content = string.Format("{0}年第{1}期", header.date.Year, header.date.Month);

            List <VoucherGridItem> items = new List <VoucherGridItem>();

            v.entries.ForEach(entry => {
                var item              = new VoucherGridItem();
                item.UniqueKey        = entry.uniqueKey;
                item.AccountSubjectId = entry.accountSubjectId;
                item.Content          = entry.explanation;
                if (entry.direction == 1)
                {
                    item.DebitsAmount = entry.amount;
                }
                else
                {
                    item.CreditAmount = entry.amount;
                }
                items.Add(item);
            });
            voucherGrid.DataSource = items;
            logger.Debug("LoadVoucher:[{0}]", items.Count);
            voucherGrid.Refresh();

            lblChecker.Tag     = header.checker;
            lblChecker.Content = DataFactory.Instance.GetUserExecuter().FindName(header.checker);

            lblPoster.Tag     = header.poster;
            lblPoster.Content = DataFactory.Instance.GetUserExecuter().FindName(header.poster);

            if (header.status > 0)
            {
                ShowStatusLable((VoucherStatus)(header.status));
                Lock();
            }
        }
コード例 #6
0
 /// <inheritdoc />
 public string PresentVoucher(Voucher voucher)
 => voucher == null
         ? $"{VoucherToken}{{\n\n}}"
         : VoucherToken + PresentJson(voucher).ToString(Formatting.Indented);
コード例 #7
0
        public List <Models.AppVPO06View> GetData()
        {
            var model = Services.GridHelper.GetResults(this._request, this._metaname, Voucher.RoleFilter(this._db.AppVPO06Views));

            return(model);
        }
コード例 #8
0
        public static string GenerateVCObject()
        {
            VoucherSpend vc = new VoucherSpend();

            Entities.MerchantStaff ms = new Entities.MerchantStaff();

            ms.MerchantGuid = "043e7e84-a1a4-4c85-bece-c0d8ad8f2ca6";
            ms.MerchantName = "Fair price";
            ms.StaffGuid    = "lkjsadoi098";

            VoucherType vt = new VoucherType();

            vt.Id          = 1;
            vt.Name        = "MyRewards";
            vt.Description = "$10 Party now";
            vt.Amount      = 10;

            VoucherType vt2 = new VoucherType();

            vt2.Id          = 2;
            vt2.Name        = "MyRewards";
            vt2.Description = "$20 Party now";
            vt2.Amount      = 20;

            Guid guid    = Guid.NewGuid();
            var  voucher = new Voucher
            {
                Id            = 1,
                VoucherType   = vt,
                Guid          = guid.ToString(),
                Sender_Id     = 1,
                Receiver_Id   = 1,
                ActionType_Id = 0,
                SpendFlag     = false,
                CreatedOn     = DateTime.UtcNow,
                UpdatedOn     = DateTime.UtcNow
            };

            Guid guid2    = Guid.NewGuid();
            var  voucher2 = new Voucher
            {
                Id            = 2,
                VoucherType   = vt,
                Guid          = guid2.ToString(),
                Sender_Id     = 1,
                Receiver_Id   = 1,
                ActionType_Id = 0,
                SpendFlag     = false,
                CreatedOn     = DateTime.UtcNow,
                UpdatedOn     = DateTime.UtcNow
            };

            vc.MerchantStaff = ms;
            vc.VoucherList.Add(voucher);
            vc.VoucherList.Add(voucher2);

            List <VoucherSpend> list = new List <VoucherSpend>();

            list.Add(vc);
            var content = JsonConvert.SerializeObject(list);

            return(content);
        }
コード例 #9
0
        /// <summary>
        /// Gets a collection of PointsLog objects by a Voucher object.
        /// </summary>
        /// <param name="voucher">voucher</param>
        /// <param name="orderBy"></param>
        /// <param name="startRowIndex"></param>
        /// <param name="pageSize"></param>
        /// <param name="totalRows"></param>
        /// <returns>A collection PointsLog objects.</returns>
        protected static EntityList<PointsLog> GetPointsLogsByvoucher_(Voucher @voucher_, string orderBy, long startRowIndex, int pageSize, out long totalRows)
        {
            string commandText = @"
            FROM
            [dbo].[PointsLog]
            WHERE
            [PointsLog].[voucher_id] = @voucher_id ";

            List<SqlParameter> parameters = new List<SqlParameter>();

            parameters.Add(new SqlParameter("@voucher_id", @voucher_.voucher_id));

            return GetList<PointsLog>(SelectFieldList, commandText, parameters, orderBy, startRowIndex, pageSize, out totalRows);
        }
コード例 #10
0
ファイル: VoucherController.cs プロジェクト: Deson621/demo
 public ActionResult AddUpdate(Voucher model)
 {
     new VoucherService().AddUpdate(model);
     return Json(new AjaxResult("保存成功", AjaxResultType.Success, null));
 }
コード例 #11
0
        void frmVoucher_Edit_KeyDown(object sender, KeyEventArgs e)
        {
            switch (e.KeyCode)
            {
            case Keys.F12:
            {
                if (e.Control)
                {
                    Epoint.Systems.Customizes.frmView frm = new Epoint.Systems.Customizes.frmView();
                    frm.Text = "Detail";

                    SplitContainer splc = new SplitContainer();
                    splc.Orientation      = Orientation.Horizontal;
                    splc.SplitterDistance = splc.Height / 3;
                    splc.Dock             = DockStyle.Fill;

                    DataGridView dgvPh = new DataGridView();
                    dgvPh.Dock               = DockStyle.Fill;
                    dgvPh.DataSource         = dtEditPh;
                    dgvPh.BackgroundColor    = Color.White;
                    dgvPh.AllowUserToAddRows = false;
                    splc.Panel1.Controls.Add(dgvPh);

                    DataGridView dgvCt = new DataGridView();
                    dgvCt.Dock               = DockStyle.Fill;
                    dgvCt.DataSource         = dtEditCt;
                    dgvCt.BackgroundColor    = Color.White;
                    dgvCt.AllowUserToAddRows = false;
                    splc.Panel2.Controls.Add(dgvCt);

                    frm.Controls.Add(splc);
                    frm.WindowState = FormWindowState.Maximized;
                    frm.Show();
                }
                break;
            }

            case Keys.F6:
                if ((e.Alt || e.Control) || e.Shift)
                {
                    if ((!e.Alt && e.Control) && !e.Shift)
                    {
                        Voucher.CopyNewRow(this);
                    }
                    break;
                }
                Voucher.AddRow(this);
                break;

            case Keys.S:
                if (e.Control)
                {
                    if (!btgAccept.btAccept.Enabled)
                    {
                        this.Close();
                        base.ShowSuccessMessage("Không lưu được thay đổi !");
                    }
                    else if (this.Save())
                    {
                        isAccept = true;

                        if ((enuNew_Edit == enuEdit.New || enuNew_Edit == enuEdit.Copy) && drDmCt.Table.Columns.Contains("Auto_New_Voucher") && (bool)drDmCt["Auto_New_Voucher"])
                        {
                            this.Load(enuEdit.New, drEdit, dsVoucher);
                        }
                        else
                        {
                            this.Close();
                        }
                        base.ShowSuccessMessage("Thành công !");
                    }
                }
                break;
            }
        }
コード例 #12
0
        protected void CopyTo <T>(T dataItem) where T : BasePNRDataItem
        {
            dataItem.ID      = ID;
            dataItem.IDInPNR = IDInPNR;
            dataItem.Type    = Type;

            if (TravellerRef != null)
            {
                dataItem.TravellerRef = new RefList <int>(TravellerRef);
            }
            if (ServiceRef != null)
            {
                dataItem.ServiceRef = new RefList <int>(ServiceRef);
            }
            if (SegmentRef != null)
            {
                dataItem.SegmentRef = new RefList <int>(SegmentRef);
            }

            #region Клонирование внутренних элементов
            switch (Type)
            {
            case PNRDataItemType.Remark:
                dataItem.Remark = Remark?.Copy();
                break;

            case PNRDataItemType.TL:
                dataItem.TimeLimits = TimeLimits?.Copy();
                break;

            case PNRDataItemType.SSR:
                dataItem.SSR = SSR?.DeepCopy();
                break;

            case PNRDataItemType.Commission:
                dataItem.Commission = Commission?.Copy();
                break;

            case PNRDataItemType.FOP:
                dataItem.FOPInfo = FOPInfo?.Copy();
                break;

            case PNRDataItemType.SourceInfo:
                dataItem.SourceInfo = SourceInfo?.Copy();
                break;

            case PNRDataItemType.IDDocument:
                dataItem.Document = Document?.Copy();
                break;

            case PNRDataItemType.ContactInfo:
                dataItem.ContactInfo = ContactInfo?.Copy();
                break;

            case PNRDataItemType.LoyaltyCard:
                dataItem.LoyaltyCard = LoyaltyCard?.Copy();
                break;

            case PNRDataItemType.Meal:
                dataItem.Meal = Meal?.DeepCopy();
                break;

            case PNRDataItemType.ED:
                dataItem.ElectronicDocument = ElectronicDocument?.DeepCopy();
                break;

            case PNRDataItemType.PD:
                dataItem.PaperDocument = PaperDocument?.Copy();
                break;

            case PNRDataItemType.FE:
                dataItem.Endorsements = Endorsements?.Copy();
                break;

            case PNRDataItemType.Visa:
                dataItem.Visa = Visa?.Copy();
                break;

            case PNRDataItemType.ArrivalAddress:
                dataItem.ArrivalAddress = ArrivalAddress?.Copy();
                break;

            case PNRDataItemType.BookedSeat:
                dataItem.BookedSeat = BookedSeat?.Copy();
                break;

            case PNRDataItemType.ValidatingCompany:
                dataItem.ValidatingCompany = ValidatingCompany?.Copy();
                break;

            case PNRDataItemType.TourCode:
                dataItem.TourCode = TourCode?.Copy();
                break;

            case PNRDataItemType.Discount:
                dataItem.Discount = Discount?.Copy();
                break;

            case PNRDataItemType.FareSourceCode:
                dataItem.FareSourceCode = FareSourceCode?.Copy();
                break;

            case PNRDataItemType.AdditionalLocators:
                dataItem.AdditionalLocators = AdditionalLocators?.Copy();
                break;

            case PNRDataItemType.OSI:
                dataItem.OSI = OSI?.Copy();
                break;

            case PNRDataItemType.ReferencedBooks:
                dataItem.ReferencedBooks = ReferencedBooks?.Copy();
                break;

            case PNRDataItemType.FareInfo:
                dataItem.FareInfo = FareInfo?.Copy();
                break;

            case PNRDataItemType.DiscountDocument:
                dataItem.DiscountDocument = DiscountDocument?.Copy();
                break;

            case PNRDataItemType.VoucherFile:
                dataItem.Voucher = Voucher?.Copy();
                break;

            case PNRDataItemType.LinkedBooks:
                dataItem.LinkedBooks = LinkedBooks?.Copy();
                break;
            }
            #endregion
        }
コード例 #13
0
 /// <inheritdoc />
 public bool Upsert(Voucher entity) => Upsert(m_Vouchers, entity, new VoucherSerializer());
コード例 #14
0
        /// <summary>
        /// Deletes PointsLog objects by a Voucher object.
        /// </summary>
        /// <param name="voucher">voucher</param>
        public static void DeletePointsLogsByvoucher_(Voucher voucher)
        {
            string commandText = "PointsLogDeleteByVoucher";

            System.Collections.Generic.List<SqlParameter> parameters = new System.Collections.Generic.List<SqlParameter>();
            parameters.Add(new SqlParameter("@voucher_id", voucher.voucher_id));

            using (SqlHelper helper = new SqlHelper())
            {
                helper.Execute(commandText, CommandType.StoredProcedure, parameters);
            }
        }
コード例 #15
0
        /// <summary>
        /// Create a new PointsLog object from a Voucher object.
        /// </summary>
        /// <param name="voucher_">voucher_</param>
        /// <returns>The newly created PointsLog object.</returns>
        public static PointsLog CreatePointsLogByvoucher_(Voucher @voucher_)
        {
            PointsLog pointsLog = InitializeNew<PointsLog>();

            pointsLog.voucher_id = @voucher_.voucher_id;

            pointsLog.voucher_ = @voucher_;

            return pointsLog;
        }
コード例 #16
0
 public Voucher Create(Voucher p)
 {
     VoucherService.Create(p);
     return(p);
 }
コード例 #17
0
 public void AtribuirVoucher(Voucher voucher)
 {
     VoucherUtilizado = true;
     VoucherId        = voucher.Id;
     Voucher          = voucher;
 }
コード例 #18
0
 public static int InsertVouchers(Voucher theVoucher)
 {
     return(VoucherDataAccess.GetInstance.InsertVouchers(theVoucher));
 }
 partial void UpdateVoucher(Voucher instance);
コード例 #20
0
 private async Task PublishVoucherSoldEvent(Guid?paymentRequestId, VoucherCampaign voucherCampaign, Voucher voucher)
 {
     await _voucherSoldPublisher.PublishAsync(new SmartVoucherSoldEvent
     {
         Amount           = voucherCampaign.VoucherPrice,
         Currency         = voucherCampaign.Currency,
         CustomerId       = voucher.OwnerId.Value,
         PartnerId        = voucherCampaign.PartnerId,
         Timestamp        = DateTime.UtcNow,
         CampaignId       = voucher.CampaignId,
         VoucherShortCode = voucher.ShortCode,
         PaymentRequestId = paymentRequestId?.ToString(),
     });
 }
コード例 #21
0
 public ActionResult Edit(Voucher v)
 {
     service.Update(v);
     return(RedirectToAction("ManageVoucher"));
 }
コード例 #22
0
        public async Task <VoucherReservationResult> ReserveVoucherAsync(Guid voucherCampaignId, Guid ownerId)
        {
            var campaign = await _campaignsRepository.GetByIdAsync(voucherCampaignId, false);

            if (campaign == null)
            {
                return new VoucherReservationResult {
                           ErrorCode = ProcessingVoucherError.VoucherCampaignNotFound
                }
            }
            ;

            if (campaign.State != CampaignState.Published ||
                DateTime.UtcNow < campaign.FromDate ||
                campaign.ToDate.HasValue && campaign.ToDate.Value < DateTime.UtcNow)
            {
                return new VoucherReservationResult {
                           ErrorCode = ProcessingVoucherError.VoucherCampaignNotActive
                }
            }
            ;

            if (campaign.VouchersTotalCount <= campaign.BoughtVouchersCount)
            {
                return new VoucherReservationResult {
                           ErrorCode = ProcessingVoucherError.NoAvailableVouchers
                }
            }
            ;

            var voucherPriceIsZero   = campaign.VoucherPrice == 0;
            var voucherCampaignIdStr = voucherCampaignId.ToString();

            for (int i = 0; i < MaxAttemptsCount; ++i)
            {
                var locked = await _redisLocksService.TryAcquireLockAsync(
                    voucherCampaignIdStr,
                    ownerId.ToString(),
                    _lockTimeOut);

                if (!locked)
                {
                    await Task.Delay(_lockTimeOut);

                    continue;
                }

                var vouchers = await _vouchersRepository.GetByCampaignIdAndStatusAsync(voucherCampaignId, VoucherStatus.InStock);

                Voucher voucher = null;
                if (vouchers.Any())
                {
                    try
                    {
                        voucher = vouchers.First();
                        if (voucherPriceIsZero)
                        {
                            voucher.Status       = VoucherStatus.Sold;
                            voucher.OwnerId      = ownerId;
                            voucher.PurchaseDate = DateTime.UtcNow;
                            await _vouchersRepository.UpdateAsync(voucher);
                        }
                        else
                        {
                            await _vouchersRepository.ReserveAsync(voucher, ownerId);
                        }
                    }
                    catch (Exception e)
                    {
                        _log.Error(e);
                        await _redisLocksService.ReleaseLockAsync(voucherCampaignIdStr, ownerId.ToString());

                        return(new VoucherReservationResult {
                            ErrorCode = ProcessingVoucherError.NoAvailableVouchers
                        });
                    }
                }
                else
                {
                    var vouchersPage = await _vouchersRepository.GetByCampaignIdAsync(voucherCampaignId, 0, 1);

                    if (vouchersPage.TotalCount >= campaign.VouchersTotalCount)
                    {
                        await _redisLocksService.ReleaseLockAsync(voucherCampaignIdStr, ownerId.ToString());

                        return(new VoucherReservationResult {
                            ErrorCode = ProcessingVoucherError.NoAvailableVouchers
                        });
                    }

                    var(validationCode, hash) = GenerateValidation();
                    voucher = new Voucher
                    {
                        CampaignId         = voucherCampaignId,
                        Status             = voucherPriceIsZero ? VoucherStatus.Sold : VoucherStatus.Reserved,
                        ValidationCodeHash = hash,
                        OwnerId            = ownerId,
                        PurchaseDate       = DateTime.UtcNow,
                    };

                    voucher.Id = await _vouchersRepository.CreateAsync(voucher);

                    voucher.ShortCode = GenerateShortCodeFromId(voucher.Id);

                    await _vouchersRepository.UpdateAsync(voucher, validationCode);
                }

                await _redisLocksService.ReleaseLockAsync(voucherCampaignIdStr, ownerId.ToString());

                if (voucherPriceIsZero)
                {
                    await PublishVoucherSoldEvent(null, campaign, voucher);

                    return(new VoucherReservationResult
                    {
                        ErrorCode = ProcessingVoucherError.None
                    });
                }

                var paymentRequestResult = await _paymentManagementClient.Api.GeneratePaymentAsync(
                    new PaymentGenerationRequest
                {
                    CustomerId = ownerId,
                    Amount     = campaign.VoucherPrice,
                    Currency   = campaign.Currency,
                    PartnerId  = campaign.PartnerId,
                    ExternalPaymentEntityId = voucher.ShortCode,
                });

                if (paymentRequestResult.ErrorCode != PaymentGenerationErrorCode.None)
                {
                    await CancelReservationAsync(voucher.ShortCode);

                    return(new VoucherReservationResult
                    {
                        ErrorCode = ProcessingVoucherError.InvalidPartnerPaymentConfiguration,
                    });
                }

                await _paymentRequestsRepository.CreatePaymentRequestAsync(paymentRequestResult.PaymentRequestId, voucher.ShortCode);

                return(new VoucherReservationResult
                {
                    ErrorCode = ProcessingVoucherError.None,
                    PaymentUrl = paymentRequestResult.PaymentPageUrl,
                });
            }

            _log.Warning($"Couldn't get a lock for voucher campaign {voucherCampaignId}");

            return(new VoucherReservationResult {
                ErrorCode = ProcessingVoucherError.NoAvailableVouchers
            });
        }
コード例 #23
0
        public ActionResult Index(Voucher model)
        {
            ValidateVoucherModel(model);

            return(View("Submited", model));
        }
コード例 #24
0
        public async Task <IActionResult> Import(IFormFile fileExcel)
        {
            if (ModelState.IsValid)
            {
                if (fileExcel != null)
                {
                    using (var stream = new FileStream(fileExcel.FileName, FileMode.Create))
                    {
                        await fileExcel.CopyToAsync(stream);

                        using (XLWorkbook workBook = new XLWorkbook(stream, XLEventTracking.Disabled))
                        {
                            //перегляд усіх листів (в даному випадку категорій)
                            foreach (IXLWorksheet worksheet in workBook.Worksheets)
                            {
                                //worksheet.Name - назва категорії. Пробуємо знайти в БД, якщо відсутня, то створюємо нову
                                Tourist newcat;
                                var     c = (from cat in _context.Tourists
                                             where cat.TouristName.Contains(worksheet.Name)
                                             select cat).ToList();
                                if (c.Count > 0)
                                {
                                    newcat = c[0];
                                }
                                else
                                {
                                    newcat             = new Tourist();
                                    newcat.TouristName = worksheet.Name;
                                    //newcat.Info = "from EXCEL";
                                    //додати в контекст
                                    _context.Tourists.Add(newcat);
                                }
                                //перегляд усіх рядків
                                foreach (IXLRow row in worksheet.RowsUsed().Skip(1))
                                {
                                    try
                                    {
                                        Voucher voucher = new Voucher();
                                        voucher.TakeOffDate = Convert.ToDateTime(row.Cell(3).Value);
                                        voucher.TourId      = Convert.ToInt32(row.Cell(4).Value);
                                        voucher.Tourist     = newcat;
                                        _context.Vouchers.Add(voucher);
                                        //у разі наявності автора знайти його, у разі відсутності - додати
                                        //for (int i = 2; i <= 5; i++)
                                        //{
                                        //    if (row.Cell(i).Value.ToString().Length > 0)
                                        //    {
                                        //        Author author;

                                        //        var a = (from aut in _context.Authors
                                        //                 where aut.Name.Contains(row.Cell(i).Value.ToString())
                                        //                 select aut).ToList();
                                        //        if (a.Count > 0)
                                        //        {
                                        //            author = a[0];
                                        //        }
                                        //        else
                                        //        {
                                        //            author = new Author();
                                        //            author.Name = row.Cell(i).Value.ToString();
                                        //            author.Info = "from EXCEL";
                                        //            //додати в контекст
                                        //            _context.Add(author);
                                        //        }
                                        //        AuthorsBooks ab = new AuthorsBooks();
                                        //        ab.Book = book;
                                        //        ab.Author = author;
                                        //        _context.AuthorsBooks.Add(ab);
                                        //    }
                                        //}
                                    }
                                    catch (Exception e)
                                    {
                                        //logging самостійно :)
                                    }
                                }
                            }
                        }
                    }
                }

                await _context.SaveChangesAsync();
            }
            return(RedirectToAction(nameof(Index)));
        }
コード例 #25
0
 public List <WareHouseDetail> WareHouseDetailSelectVoucher(Voucher voucher)
 {
     return(this.WareHouseDetailDAO.WareHouseDetailSelectVoucher(voucher));
 }
コード例 #26
0
        private void PostButtonOnClick(object sender, RoutedEventArgs e)
        {
            var result = _withdrawal.Validate();

            if (!result.Success)
            {
                MessageWindow.ShowAlertMessage(result.Message);
                return;
            }

            #region --- Withdrawal Credit Side ---

            var voucher = new Voucher
            {
                VoucherDate = _withdrawal.WithdrawalSettings.TransactionDate,
                VoucherNo   = _withdrawal.WithdrawalSettings.WithdrawalVoucherNo,
                VoucherType = VoucherTypes.CV
            };
            var totalWithdrawals = Withdrawal.TotalWithdrawals(voucher.VoucherNo) + _withdrawal.WithdrawalAmount;
            result = Withdrawal.ReBalanceWithdrawals(voucher, totalWithdrawals);
            if (!result.Success)
            {
                MessageWindow.ShowAlertMessage(result.Message);
                return;
            }

            #endregion

            #region --- Withdrawal Debit Side ---

            var cv     = new CashVoucher();
            var member = Nfmb.FindByCode(_withdrawal.AccountInfo.MemberCode);
            cv.MemberCode = member.MemberCode;
            cv.MemberName = member.MemberName;
            var account = Account.FindByCode(_withdrawal.AccountInfo.AccountCode);
            cv.AccountCode  = account.AccountCode;
            cv.AccountTitle = account.AccountTitle;

            cv.Debit = _withdrawal.WithdrawalAmount;

            cv.VoucherDate = voucher.VoucherDate;
            cv.VoucherNo   = voucher.VoucherNo;
            cv.VoucherType = voucher.VoucherType;

            cv.WithdrawalSlipNo = _withdrawal.WithdrawalSlipNo;

            cv.Create();

            #endregion

            #region --- Voucher Log ---

            var voucherLog = new VoucherLog();
            voucherLog.Find("CV", cv.VoucherNo);
            voucherLog.Date     = cv.VoucherDate;
            voucherLog.Initials = MainController.LoggedUser.Initials;
            voucherLog.Save();

            #endregion

            var validationBuilder = new StringBuilder();
            validationBuilder.AppendFormat("{0} {1} {2} {3} {4} {5:yyyy-MM-dd hh:mm:ss} {6}",
                                           cv.MemberCode,
                                           cv.AccountCode,
                                           cv.VoucherNo,
                                           cv.WithdrawalSlipNo,
                                           cv.Debit,
                                           DateTime.Now,
                                           MainController.LoggedUser.Initials);

            if (MessageWindow.ShowConfirmMessage("Print withdrawal validation?") == MessageBoxResult.Yes)
            {
                ReportController.PrintWitdrawalValidation(cv);
            }

            DialogResult = true;
            Close();
        }
コード例 #27
0
        Voucher ReadVoucher()
        {
            VoucherHeader header = new VoucherHeader();

            header.agent        = txtAgent.Text;
            header.businessDate = DateTime.Parse(dateBusinessDate.Text);
            header.cashier      = txtCashier.Text;
            header.creater      = DataFactory.Instance.GetCacheHashtable().Get(CacheHashkey.UserId);
            header.creatTime    = DateTime.Now;
            header.date         = DateTime.Parse(dateDate.Text);;
            header.word         = cmbWords.Text;
            header.serialNo     = int.Parse(intSn.Value.ToString());
            header.reference    = txtReference.Text;
            header.no           = int.Parse(intNo.Value.ToString());
            header.year         = header.date.Year;
            header.period       = header.date.Month;
            header.id           = 0;

            var lst = voucherGrid.DataSource;

            int i = 1;
            List <VoucherEntry> entries = new List <VoucherEntry>();
            Dictionary <string, Dictionary <string, object> > userDefineValues = new Dictionary <string, Dictionary <string, object> >();

            foreach (var item in lst)
            {
                var entry = new VoucherEntry();
                entry.index            = i;
                entry.explanation      = item.Content;
                entry.accountSubjectId = item.AccountSubjectId;
                entry.accountSubjectNo = item.AccountSubjectNo;
                if (item.DebitsAmount > 0)
                {
                    entry.amount    = item.DebitsAmount;
                    entry.direction = 1;
                }
                else
                {
                    entry.amount    = item.CreditAmount;
                    entry.direction = -1;
                }
                if (entry.accountSubjectId == 0 && entry.amount == 0)
                {
                    continue;
                }
                entry.uniqueKey = item.UniqueKey;
                entries.Add(entry);

                if (mUserDefineDataSource.ContainsKey(item.UniqueKey))
                {
                    userDefineValues.Add(item.UniqueKey, mUserDefineDataSource[item.UniqueKey]);
                }
                i++;
            }

            Voucher v = new Voucher()
            {
                header = header, entries = entries, udefenties = userDefineValues
            };

            return(v);
        }
コード例 #28
0
        public bool Create(Voucher entity)
        {
            _context.Vouchers.Add(entity);

            return(_context.SaveChanges() >= 0);
        }
コード例 #29
0
 public static bool IsMatch(this Voucher voucher, IQueryCompounded <IVoucherQueryAtom> query)
 => IsMatch(query, q => IsMatch(voucher, q));
コード例 #30
0
        public bool Delete(Voucher entity)
        {
            _context.Vouchers.Remove(entity);

            return(_context.SaveChanges() >= 0);
        }
コード例 #31
0
 public Voucher Update(Voucher p)
 {
     VoucherService.Update(p);
     return(p);
 }
コード例 #32
0
        public bool Update(Voucher entity)
        {
            _context.Entry(entity).State = EntityState.Modified;

            return(_context.SaveChanges() >= 0);
        }
コード例 #33
0
ファイル: Assento.cs プロジェクト: brunorenn/LocacaoSalaApp
 public Assento(int id, Voucher voucher)
 {
     Id      = id;
     Voucher = voucher;
 }
コード例 #34
0
ファイル: Basket.cs プロジェクト: Nosmadas/Basket
 public void Add(Voucher voucher)
 {
     Vouchers.Add(voucher);
     CalculateValue();
 }
コード例 #35
0
 public string PresentVoucher(Voucher voucher) => Run(s => s.PresentVoucher(voucher));
コード例 #36
0
ファイル: Basket.cs プロジェクト: Nosmadas/Basket
 public void Remove(Voucher voucher)
 {
     Vouchers.Remove(voucher);
     CalculateValue();
 }
 partial void InsertVoucher(Voucher instance);
コード例 #38
0
 public bool Upsert(Voucher entity)
 => m_Db.Upsert(entity);
 partial void DeleteVoucher(Voucher instance);
コード例 #40
0
        public ActionResult Edit(int id)
        {
            Voucher voucher = service.Get(id);

            return(View(voucher));
        }