Ejemplo n.º 1
0
        public PagedResultDto <TransferDto> GetTransfers(TransferFilter input)
        {
            var query = transferRepository.GetAll().Where(x => !x.IsDelete);

            // filter by value
            if (input.AssetId != null)
            {
                query = query.Where(x => x.AssetId.ToLower().Equals(input.AssetId));
            }

            var totalCount = query.Count();

            // sorting
            if (!string.IsNullOrWhiteSpace(input.Sorting))
            {
                query = query.OrderBy(input.Sorting);
            }

            // paging
            var items = query.PageBy(input).ToList();

            // result
            return(new PagedResultDto <TransferDto>(
                       totalCount,
                       items.Select(item => ObjectMapper.Map <TransferDto>(item)).ToList()));
        }
        /// <summary>
        /// query transaction info
        /// </summary>
        /// <returns></returns>
        public async Task <PageList <TransferInfo> > QueryTransfers(TransferFilter filter)
        {
            using var db = new TrackDB();
            var result = db.FindTransfer(filter) as PageList <TransferInfo>;

            return(result);
        }
Ejemplo n.º 3
0
        public virtual IEnumerable assets()
        {
            TransferFilter            filter = Filter.Current;
            PXSelectBase <FixedAsset> cmd    = new PXSelectJoin <FixedAsset,
                                                                 InnerJoin <FADetailsTransfer,
                                                                            On <FixedAsset.assetID, Equal <FADetailsTransfer.assetID> >,
                                                                            InnerJoin <Branch, On <FixedAsset.branchID, Equal <Branch.branchID> >,
                                                                                       LeftJoin <Account,
                                                                                                 On <FixedAsset.fAAccountID, Equal <Account.accountID> >,
                                                                                                 LeftJoin <FALocationHistory,
                                                                                                           On <FALocationHistory.assetID, Equal <FADetailsTransfer.assetID>,
                                                                                                               And <FALocationHistory.revisionID, Equal <FADetailsTransfer.locationRevID> > > > > > >,
                                                                 Where <FADetailsTransfer.status, NotEqual <FixedAssetStatus.hold>,
                                                                        And <FADetailsTransfer.status, NotEqual <FixedAssetStatus.disposed>,
                                                                             And <FADetailsTransfer.status, NotEqual <FixedAssetStatus.reversed> > > > >(this);

            if (filter.PeriodID != null)
            {
                cmd.WhereAnd <Where <FADetailsTransfer.transferPeriodID, IsNull, Or <FADetailsTransfer.transferPeriodID, LessEqual <Current <TransferFilter.periodID> > > > >();
            }
            if (PXAccess.FeatureInstalled <FeaturesSet.multipleCalendarsSupport>() || filter.OrganizationID != null)
            {
                cmd.WhereAnd <Where <Branch.organizationID, Equal <Current <TransferFilter.organizationID> > > >();
            }
            if (filter.BranchFrom != null)
            {
                cmd.WhereAnd <Where <FixedAsset.branchID, Equal <Current <TransferFilter.branchFrom> > > >();
            }
            if (filter.DepartmentFrom != null)
            {
                cmd.WhereAnd <Where <FALocationHistory.department, Equal <Current <TransferFilter.departmentFrom> > > >();
            }
            if (filter.ClassFrom != null)
            {
                cmd.WhereAnd <Where <FixedAsset.classID, Equal <Current <TransferFilter.classFrom> > > >();
            }

            int startRow  = PXView.StartRow;
            int totalRows = 0;
            List <PXFilterRow> newFilters = new List <PXFilterRow>();

            foreach (PXFilterRow f in PXView.Filters)
            {
                if (f.DataField.ToLower() == "status")
                {
                    f.DataField = "FADetailsTransfer__Status";
                }
                newFilters.Add(f);
            }
            List <object> list = cmd.View.Select(PXView.Currents, null, PXView.Searches, PXView.SortColumns, PXView.Descendings, newFilters.ToArray(), ref startRow, PXView.MaximumRows, ref totalRows);

            PXView.StartRow = 0;
            return(list);
        }
        public void TransferFilter_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
        {
            TransferFilter filter = (TransferFilter)e.Row;

            if (filter == null)
            {
                return;
            }

            Assets.SetProcessDelegate(delegate(List <FixedAsset> list) { Transfer(filter, list); });

            Assets.SetProcessEnabled(string.IsNullOrEmpty(filter.PeriodID) == false && (filter.BranchTo != null || filter.DepartmentTo != null));
            Assets.SetProcessAllEnabled(string.IsNullOrEmpty(filter.PeriodID) == false && (filter.BranchTo != null || filter.DepartmentTo != null));
        }
        public IEnumerable <Transfer> GetMany(TransferFilter transferFilter)
        {
            FilterDefinition <Transfer>         filter = Builders <Transfer> .Filter.Empty;
            List <FilterDefinition <Transfer> > ops    = new List <FilterDefinition <Transfer> >(10);

            if (!transferFilter.Id.Equals(Guid.Empty))
            {
                ops.Add(Builders <Transfer> .Filter.Eq(x => x.Id, transferFilter.Id));
            }

            if (!string.IsNullOrEmpty(transferFilter.DestinationAccountNumber))
            {
                ops.Add(Builders <Transfer> .Filter.Eq(x => x.DestinationAccountNumber, transferFilter.DestinationAccountNumber));
            }

            if (transferFilter.DestinationLinkingBankId != Guid.Empty)
            {
                ops.Add(Builders <Transfer> .Filter.Eq(x => x.DestinationLinkingBankId, transferFilter.DestinationLinkingBankId));
            }

            if (!string.IsNullOrEmpty(transferFilter.SourceAccountNumber))
            {
                ops.Add(Builders <Transfer> .Filter.Eq(x => x.SourceAccountNumber, transferFilter.SourceAccountNumber));
            }

            if (transferFilter.SourceLinkingBankId != Guid.Empty)
            {
                ops.Add(Builders <Transfer> .Filter.Eq(x => x.SourceLinkingBankId, transferFilter.SourceLinkingBankId));
            }

            ops.Add(Builders <Transfer> .Filter.Eq(x => x.IsConfirmed, transferFilter.IsConfirmed));

            if (ops.Count > 0)
            {
                filter = Builders <Transfer> .Filter.And(ops);
            }

            SortDefinition <Transfer>        sort    = null;
            FindOptions <Transfer, Transfer> options = null;

            options = new FindOptions <Transfer, Transfer>()
            {
                Sort = sort
            };

            var task = _Collection.Find(filter);

            return(task.ToEnumerable());
        }
        public virtual IEnumerable assets()
        {
            TransferFilter            filter = Filter.Current;
            PXSelectBase <FixedAsset> cmd    = new PXSelectJoin <FixedAsset,
                                                                 InnerJoin <FADetailsTransfer,
                                                                            On <FixedAsset.assetID, Equal <FADetailsTransfer.assetID> >,
                                                                            LeftJoin <Account,
                                                                                      On <FixedAsset.fAAccountID, Equal <Account.accountID> >,
                                                                                      LeftJoin <FALocationHistory,
                                                                                                On <FALocationHistory.assetID, Equal <FADetailsTransfer.assetID>,
                                                                                                    And <FALocationHistory.revisionID, Equal <FADetailsTransfer.locationRevID> > > > > >,
                                                                 Where <FADetailsTransfer.status, NotEqual <FixedAssetStatus.hold>,
                                                                        And <FADetailsTransfer.status, NotEqual <FixedAssetStatus.disposed> > > >(this);

            if (filter.PeriodID != null)
            {
                cmd.WhereAnd <Where <FADetailsTransfer.transferPeriodID, IsNull, Or <FADetailsTransfer.transferPeriodID, LessEqual <Current <TransferFilter.periodID> > > > >();
            }
            if (filter.BranchFrom != null)
            {
                cmd.WhereAnd <Where <FixedAsset.branchID, Equal <Current <TransferFilter.branchFrom> > > >();
            }
            if (filter.DepartmentFrom != null)
            {
                cmd.WhereAnd <Where <FALocationHistory.department, Equal <Current <TransferFilter.departmentFrom> > > >();
            }
            if (filter.ClassFrom != null)
            {
                cmd.WhereAnd <Where <FixedAsset.classID, Equal <Current <TransferFilter.classFrom> > > >();
            }

            int startRow  = 0;
            int totalRows = 0;
            List <PXFilterRow> newFilters = new List <PXFilterRow>();

            foreach (PXFilterRow f in PXView.Filters)
            {
                if (f.DataField.ToLower() == "status")
                {
                    f.DataField = "FADetailsTransfer__Status";
                }
                newFilters.Add(f);
            }
            // Full select - first page, query cache - next pages. SQL command is very difficult to part select for each page.
            List <object> list = cmd.View.Select(PXView.Currents, null, PXView.Searches, PXView.SortColumns, PXView.Descendings, newFilters.ToArray(), ref startRow, 0, ref totalRows);

            return(list);
        }
Ejemplo n.º 7
0
        protected virtual void _(Events.FieldUpdated <TransferFilter.organizationID> e)
        {
            TransferFilter filter = e.Row as TransferFilter;

            if (filter != null && filter.OrganizationID != null)
            {
                Organization organization = PXSelectReadonly <Organization,
                                                              Where <Organization.organizationID, Equal <Required <Organization.organizationID> > > > .Select(this, filter.OrganizationID);

                if (organization.OrganizationType == OrganizationTypes.WithoutBranches)
                {
                    e.Cache.SetDefaultExt <TransferFilter.branchFrom>(filter);
                    e.Cache.SetDefaultExt <TransferFilter.branchTo>(filter);
                }
            }
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Получить список транзакций кошелька, за указанный период времени. Период времени должен быть не больше трёх месяцев.
        /// </summary>
        public List <Transfer> GetTransfers(DateTime startTime, DateTime finishTime)
        {
            var transferFilter = new TransferFilter(purse, startTime.AddHours(wmServerTimeDifference), finishTime.AddHours(wmServerTimeDifference));

            try
            {
                var transferRegister = transferFilter.Submit();
                return(transferRegister.TransferList);
            }
            catch (Exception ex)
            {
                Logger.Error(
                    string.Format("GetTransfers() - Не удалось получить список транзакций с сервера WebMoney кошелька {0} за период времени {1} от до {2}",
                                  purse.ToString(), startTime, finishTime), ex);
                return(null);
            }
        }
Ejemplo n.º 9
0
        public IEnumerable <ITransfer> SelectTransfers(string purse, DateTime fromTime, DateTime toTime)
        {
            if (null == purse)
            {
                throw new ArgumentNullException(nameof(purse));
            }

            var request = new TransferFilter(Purse.Parse(purse), fromTime, toTime)
            {
                Initializer = Session.AuthenticationService.ObtainInitializer()
            };

            TransferRegister response;

            try
            {
                response = request.Submit();
            }
            catch (WmException exception)
            {
                throw new ExternalServiceException(exception.Message, exception);
            }

            return(response.TransferList.Select(t =>
            {
                var transfer = new BusinessObjects.Transfer(Session.CurrentIdentifier, t.PrimaryId, t.SecondaryId,
                                                            t.SourcePurse.ToString(), t.TargetPurse.ToString(), t.Amount,
                                                            t.Commission, ConvertFrom.ApiTypeToContractType(t.TransferType), t.Description, t.Partner,
                                                            t.Rest,
                                                            t.CreateTime.ToUniversalTime(), t.UpdateTime.ToUniversalTime())
                {
                    InvoiceId = t.InvoiceId,
                    OrderId = t.OrderId,
                    PaymentId = t.PaymentId,
                    ProtectionPeriod = t.Period,
                    Locked = t.IsLocked,
                    Description = !string.IsNullOrEmpty(t.Description) ? t.Description : "[empty]"
                };


                return transfer;
            }));
        }
Ejemplo n.º 10
0
        /// <summary>
        /// Reads the specified start.
        /// </summary>
        /// <param name="range">The range.</param>
        public void Read(DateRange range)
        {
            TransferFilter transferFilter = new TransferFilter(_purse, range.From, range.To);
            var            transactions   = transferFilter.Submit();

            if (transactions == null || transactions.Length == 0)
            {
                return;
            }
            //Incomment transfers
            transactions = transactions.Where(e => e.TargetPurse == _purse).OrderBy(e => e.CreateTime).ToArray();

            var last = _manager.GetLast();

            if (last.Count > 0)
            {
                transactions = transactions.Where(e => e.CreateTime > last[0].Date).ToArray();
            }

            foreach (var transfer in transactions)
            {
                Store(transfer);
            }
        }
        protected virtual void DoTransfer(TransferFilter filter, List <FixedAsset> list)
        {
            DocumentList <FARegister> created = new DocumentList <FARegister>(this);

            foreach (FixedAsset asset in list)
            {
                FADetails det = PXSelect <FADetails, Where <FADetails.assetID, Equal <Current <FixedAsset.assetID> > > > .SelectSingleBound(this, new object[] { asset });

                FALocationHistory location = PXSelect <FALocationHistory, Where <FALocationHistory.assetID, Equal <Current <FADetails.assetID> >, And <FALocationHistory.revisionID, Equal <Current <FADetails.locationRevID> > > > > .SelectSingleBound(this, new object[] { det });

                int?   destClassID  = filter.ClassTo ?? asset.ClassID;
                int?   destBranchID = filter.BranchTo ?? location.LocationID;
                string destDeptID   = string.IsNullOrEmpty(filter.DepartmentTo) ? location.Department : filter.DepartmentTo;

                if (location.LocationID != destBranchID || location.Department != destDeptID || asset.ClassID != destClassID)
                {
                    FADetails         copy_det = (FADetails)Details.Cache.CreateCopy(det);
                    FALocationHistory copy_loc = (FALocationHistory)Lochist.Cache.CreateCopy(location);
                    copy_loc.RevisionID      = ++copy_det.LocationRevID;
                    copy_loc.LocationID      = destBranchID;
                    copy_loc.Department      = destDeptID;
                    copy_loc.PeriodID        = filter.PeriodID;
                    copy_loc.TransactionDate = filter.TransferDate;
                    copy_loc.Reason          = filter.Reason;

                    TransactionEntry.SegregateRegister(this, (int)destBranchID, FARegister.origin.Transfer, null, filter.TransferDate, "", created);

                    Details.Update(copy_det);
                    location = Lochist.Insert(copy_loc);

                    if (asset.ClassID != destClassID)
                    {
                        asset.ClassID = destClassID;
                        AssetSelect.Cache.Update(asset);
                    }

                    FARegister reg = Register.Current;
                    AssetProcess.TransferAsset(this, asset, location, ref reg);
                }
            }
            if (Register.Current != null && created.Find(Register.Current) == null)
            {
                created.Add(Register.Current);
            }
            Actions.PressSave();
            if (fasetup.Current.AutoReleaseTransfer == true)
            {
                SelectTimeStamp();
                PXLongOperation.StartOperation(this, delegate { AssetTranRelease.ReleaseDoc(created, false); });
            }
            else if (created.Count > 0)
            {
                AssetTranRelease graph = CreateInstance <AssetTranRelease>();
                AssetTranRelease.ReleaseFilter fltr = (AssetTranRelease.ReleaseFilter)graph.Filter.Cache.CreateCopy(graph.Filter.Current);
                fltr.Origin = FARegister.origin.Transfer;
                graph.Filter.Update(fltr);
                graph.SelectTimeStamp();

                Dictionary <string, string> parameters = new Dictionary <string, string>();

                for (int i = 0; i < created.Count; ++i)
                {
                    FARegister reg = created[i];
                    reg.Selected = true;
                    graph.FADocumentList.Update(reg);
                    graph.FADocumentList.Cache.SetStatus(reg, PXEntryStatus.Updated);
                    graph.FADocumentList.Cache.IsDirty = false;

                    parameters["FARegister.RefNbr" + i] = reg.RefNbr;
                }

                parameters["PeriodFrom"] = FinPeriodIDFormattingAttribute.FormatForDisplay(filter.PeriodID);
                parameters["PeriodTo"]   = FinPeriodIDFormattingAttribute.FormatForDisplay(filter.PeriodID);
                parameters["Mode"]       = "U";

                PXReportRequiredException reportex = new PXReportRequiredException(parameters, "FA642000", "Preview");
                throw new PXRedirectWithReportException(graph, reportex, "Release FA Transaction");
            }
        }
        public static void Transfer(TransferFilter filter, List <FixedAsset> list)
        {
            TransferProcess graph = PXGraph.CreateInstance <TransferProcess>();

            graph.DoTransfer(filter, list);
        }
Ejemplo n.º 13
0
        public static void UpdateTransferStatus(DateTime startDate, List<Transfer> transfers)
        {
            startDate = (DateTime.Now - startDate).Days > 88 ? DateTime.Now.AddMonths(-3) : startDate;

            TransferFilter tf = new TransferFilter(Purse.Parse(Configuration.Purse),
                                                                  WmDateTime.Parse(startDate.ToString("dd.MM.yyyy HH:mm:ss")),
                                                                  WmDateTime.Parse(DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss")));

            ExistentTransfer[] eoi = tf.Submit();
            if (eoi != null)
            {
                foreach (ExistentTransfer inv in eoi)
                {
                    Transfer t = transfers.Where(p => p.TransferId == (int)inv.TransferId).SingleOrDefault();
                    if (t != null)
                    {
                        GT.BO.Implementation.BillingSystem.WebMoneyTransfer wm = new GT.BO.Implementation.BillingSystem.WebMoneyTransfer();
                        wm.TransferId = t.TransferId;
                        wm.Description = inv.Description;
                        wm.TargetPurse = inv.TargetPurse.ToString();
                        wm.SourcePurse = inv.SourcePurse != null ? inv.SourcePurse.Number.ToString() : null;
                        wm.WmInvoiceId = (int)inv.Id;
                        wm.WmTransferId = (int)inv.TransferId;
                        wm.TransDate = ((DateTime)inv.UpdateTime).ToUniversalTime();
                        wm.RetCode = 0;
                        WebMoneyTransferFacade.Add(wm);
                        BillingSystemFacade.CompleteTransfer(t.TransferId);
                        transfers.Remove(t);

                        if (t.Commission != t.Commission)
                        {
                            MailMessage m = new MailMessage(SmtpManager.Instance.Config.SupportEmail,
                                                            SmtpManager.Instance.Config.Email4Errors,
                                                            "WEB MONEY ERROR COMMISSION",
                                                            String.Format("TransferId = {0}; WebMoneyId = {1}", t.TransferId, wm.Id));
                            SmtpManager.Instance.Send(m);
                        }
                    }
                }
            }
        }
Ejemplo n.º 14
0
        private void переносToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Filters filter = new TransferFilter();

            backgroundWorker1.RunWorkerAsync(filter);
        }
Ejemplo n.º 15
0
 public PagedResultDto <TransferDto> GetTransfersByFilter(TransferFilter transferFilter)
 {
     return(transferAppService.GetTransfers(transferFilter));
 }