示例#1
0
        protected virtual IEnumerable details()
        {
            ARStatementForCustomerParameters      header = Filter.Current;
            Dictionary <DetailKey, DetailsResult> result = new Dictionary <DetailKey, DetailsResult>(EqualityComparer <DetailKey> .Default);
            List <DetailsResult> curyResult = new List <DetailsResult>();

            if (header == null)
            {
                return(curyResult);
            }

            Customer customer = CustomerRepository.FindByID(header.CustomerID);

            if (customer != null)
            {
                bool       useCurrency = customer.PrintCuryStatements ?? false;
                GL.Company company     = PXSelect <GL.Company> .Select(this);

                foreach (ARStatement st in PXSelect <ARStatement,
                                                     Where <ARStatement.statementCustomerID, Equal <Required <ARStatement.customerID> > >,
                                                     OrderBy <Asc <ARStatement.statementCycleId, Asc <ARStatement.statementDate, Asc <ARStatement.curyID> > > > >
                         .Select(this, header.CustomerID))
                {
                    DetailsResult res = new DetailsResult();
                    res.Copy(st, customer);
                    if (useCurrency)
                    {
                        DetailsResult last = curyResult.Count > 0 ? curyResult[curyResult.Count - 1] : null;
                        if (last != null &&
                            last.StatementCycleId == res.StatementCycleId &&
                            last.StatementDate == res.StatementDate && last.CuryID == res.CuryID)
                        {
                            last.Append(res);
                        }
                        else
                        {
                            curyResult.Add(res);
                        }
                    }
                    else
                    {
                        DetailKey key = new DetailKey(res.StatementDate.Value, res.StatementCycleId);
                        res.ResetToBaseCury(company.BaseCuryID);
                        if (!result.ContainsKey(key))
                        {
                            result[key] = res;
                        }
                        else
                        {
                            result[key].Append(res);
                        }
                    }
                }

                return(useCurrency ? (curyResult as IEnumerable) : (result.Values as IEnumerable));
            }

            return(curyResult);
        }
        protected virtual IEnumerable details()
        {
            ARStatementDetailsParameters header = Filter.Current;
            List <DetailsResult>         result = new List <DetailsResult>();

            if (header == null)
            {
                return(result);
            }
            GL.Company company = PXSelect <GL.Company> .Select(this);

            foreach (PXResult <ARStatement, Customer> it in PXSelectJoin <ARStatement,
                                                                          InnerJoin <Customer, On <Customer.bAccountID, Equal <ARStatement.statementCustomerID> > >,
                                                                          Where <ARStatement.statementDate, Equal <Required <ARStatement.statementDate> >,
                                                                                 And <ARStatement.statementCycleId, Equal <Required <ARStatement.statementCycleId> > > >,
                                                                          OrderBy <Asc <ARStatement.statementCustomerID, Asc <ARStatement.curyID> > > >
                     .Select(this, header.StatementDate, header.StatementCycleId))
            {
                DetailsResult res  = new DetailsResult();
                ARStatement   st   = (ARStatement)it;
                Customer      cust = (Customer)it;
                res.Copy(st, cust);
                if (cust.PrintCuryStatements ?? false)
                {
                    DetailsResult last = result.Count > 0 ? result[result.Count - 1] : null;
                    if (last != null && last.CustomerId == res.CustomerId && last.CuryID == res.CuryID)
                    {
                        last.Append(res);
                    }
                    else
                    {
                        result.Add(res);
                    }
                }
                else
                {
                    res.ResetToBaseCury(company.BaseCuryID);
                    DetailsResult last = result.Count > 0 ? result[result.Count - 1] : null;
                    if (last != null && last.CustomerId == res.CustomerId)
                    {
                        last.Append(res);
                    }
                    else
                    {
                        result.Add(res);
                    }
                }
            }
            return(result);
        }
        protected virtual System.Collections.IEnumerable details()
        {
            ARStatementForCustomerParameters      header = Filter.Current;
            Dictionary <DetailKey, DetailsResult> result = new Dictionary <DetailKey, DetailsResult>(EqualityComparer <DetailKey> .Default);
            List <DetailsResult> curyResult = new List <DetailsResult>();

            if (header == null)
            {
                return(curyResult);
            }
            Customer customer = PXSelect <Customer, Where <Customer.bAccountID, Equal <Required <Customer.bAccountID> > > > .Select(this, header.CustomerID);

            if (customer != null)
            {
                bool       useCurrency = customer.PrintCuryStatements ?? false;
                GL.Company company     = PXSelect <GL.Company> .Select(this);

                foreach (ARStatement st in PXSelect <ARStatement,
                                                     Where <ARStatement.statementCustomerID, Equal <Required <ARStatement.customerID> > >,
                                                     OrderBy <Asc <ARStatement.statementCycleId, Asc <ARStatement.statementDate, Asc <ARStatement.curyID> > > > >
                         .Select(this, header.CustomerID))
                {
                    DetailsResult res = new DetailsResult();
                    res.Copy(st, customer);
                    if (useCurrency)
                    {
                        DetailsResult last = curyResult.Count > 0 ? curyResult[curyResult.Count - 1] : null;
                        if (last != null &&
                            last.StatementCycleId == res.StatementCycleId &&
                            last.StatementDate == res.StatementDate && last.CuryID == res.CuryID)
                        {
                            last.Append(res);
                        }
                        else
                        {
                            curyResult.Add(res);
                        }
                        //curyResult.Add(res);
                    }
                    else
                    {
                        DetailKey key = new DetailKey(res.StatementDate.Value, res.StatementCycleId);
                        res.ResetToBaseCury(company.BaseCuryID);
                        if (!result.ContainsKey(key))
                        {
                            result[key] = res;
                        }
                        else
                        {
                            result[key].Append(res);
                        }
                    }
                }
                PXUIFieldAttribute.SetVisible <DetailsResult.curyID>(this.Details.Cache, null, useCurrency);
                PXUIFieldAttribute.SetVisible <DetailsResult.curyStatementBalance>(this.Details.Cache, null, useCurrency);
                PXUIFieldAttribute.SetVisible <DetailsResult.curyOverdueBalance>(this.Details.Cache, null, useCurrency);
                PXUIFieldAttribute.SetVisible <DetailsResult.statementBalance>(this.Details.Cache, null, !useCurrency);
                PXUIFieldAttribute.SetVisible <DetailsResult.overdueBalance>(this.Details.Cache, null, !useCurrency);

                return(useCurrency ? (System.Collections.IEnumerable)curyResult : (System.Collections.IEnumerable)result.Values);
                //return (System.Collections.IEnumerable)result.Values;
            }
            return(curyResult);
        }
示例#4
0
        protected virtual IEnumerable details()
        {
            ARSetup setup = ARSetup.Current;

            PrintParameters      header = Filter.Current;
            List <DetailsResult> result = new List <DetailsResult>();

            if (header == null)
            {
                yield break;
            }

            GL.Company company = PXSelect <GL.Company> .Select(this);

            foreach (PXResult <ARStatement, Customer> it in PXSelectJoin <ARStatement,
                                                                          InnerJoin <Customer, On <Customer.bAccountID, Equal <ARStatement.statementCustomerID> > >,
                                                                          Where <ARStatement.statementDate, Equal <Required <ARStatement.statementDate> >,
                                                                                 And <ARStatement.statementCycleId, Equal <Required <ARStatement.statementCycleId> > > >,
                                                                          OrderBy <Asc <ARStatement.statementCustomerID, Asc <ARStatement.curyID> > > >
                     .Select(this, header.StatementDate, header.StatementCycleId))
            {
                DetailsResult res  = new DetailsResult();
                ARStatement   st   = it;
                Customer      cust = it;
                res.Copy(st, cust);

                if (setup.ConsolidatedStatement != true && st.BranchID != header.BranchID)
                {
                    continue;
                }

                if (Filter.Current.Action == 0 &&
                    header.ShowAll != true &&
                    (st.DontPrint == true || st.Printed == true))
                {
                    continue;
                }

                if ((Filter.Current.Action == 1 || Filter.Current.Action == 2) &&
                    header.ShowAll != true &&
                    (st.DontEmail == true || st.Emailed == true))
                {
                    continue;
                }

                if (cust.PrintCuryStatements == true)
                {
                    if (Filter.Current.CuryStatements != true)
                    {
                        continue;
                    }

                    DetailsResult last = result.Count > 0 ? result[result.Count - 1] : null;
                    if (last?.CustomerID == res.CustomerID && last?.CuryID == res.CuryID)
                    {
                        last.Append(res);
                    }
                    else
                    {
                        result.Add(res);
                    }
                }
                else
                {
                    if (Filter.Current.CuryStatements == true)
                    {
                        continue;
                    }

                    res.ResetToBaseCury(company.BaseCuryID);

                    DetailsResult last = result.Count > 0 ? result[result.Count - 1] : null;
                    if (last?.CustomerID == res.CustomerID)
                    {
                        last.Append(res);
                    }
                    else
                    {
                        result.Add(res);
                    }
                }
            }

            foreach (var item in result)
            {
                var located = Details.Cache.Locate(item);
                if (located != null)
                {
                    yield return(located);
                }
                else
                {
                    Details.Cache.SetStatus(item, PXEntryStatus.Held);
                    yield return(item);
                }
            }

            Details.Cache.IsDirty = false;
        }