Esempio n. 1
0
        protected virtual IEnumerable GetRecords()
        {
            bool    ar      = true;
            PXCache cache   = this._Graph.Caches[BqlCommand.GetItemType(moduleField)];
            string  docType = ARDocType.Invoice;

            if (cache.Current != null)
            {
                docType = (string)cache.GetValue(cache.Current, docTypeField.Name);
                string module = (string)cache.GetValue(cache.Current, moduleField.Name);
                if (module == BatchModule.AP)
                {
                    ar = false;
                }
            }

            if (ar)
            {
                PXSelectBase <ARInvoice> select = new
                                                  PXSelectJoin <ARInvoice,
                                                                InnerJoin <BAccount, On <BAccount.bAccountID, Equal <ARInvoice.customerID> > >,
                                                                Where <ARInvoice.docType, Equal <Required <ARInvoice.docType> > > >(this._Graph);
                foreach (PXResult <ARInvoice, BAccount> res in select.Select(docType))
                {
                    ARInvoice doc      = (ARInvoice)res;
                    BAccount  customer = (BAccount)res;


                    string status = null;
                    ARDocStatus.ListAttribute x = new ARDocStatus.ListAttribute();
                    if (x.ValueLabelDic.ContainsKey(doc.Status))
                    {
                        status = x.ValueLabelDic[doc.Status];
                    }


                    DRDocumentRecord record = new DRDocumentRecord();
                    record.BAccountCD     = customer.AcctCD;
                    record.RefNbr         = doc.RefNbr;
                    record.Status         = status;
                    record.FinPeriodID    = doc.FinPeriodID;
                    record.DocType        = doc.DocType;
                    record.DocDate        = doc.DocDate;
                    record.LocationID     = doc.CustomerLocationID;
                    record.CuryOrigDocAmt = doc.CuryOrigDocAmt;
                    record.CuryID         = doc.CuryID;

                    yield return(record);
                }
            }
            else
            {
                PXSelectBase <APInvoice> select = new
                                                  PXSelectJoin <APInvoice,
                                                                InnerJoin <BAccount, On <BAccount.bAccountID, Equal <APInvoice.vendorID> > >,
                                                                Where <APInvoice.docType, Equal <Required <APInvoice.docType> > > >(this._Graph);
                foreach (PXResult <APInvoice, BAccount> res in select.Select(docType))
                {
                    APInvoice doc      = (APInvoice)res;
                    BAccount  customer = (BAccount)res;

                    string status = null;
                    APDocStatus.ListAttribute x = new APDocStatus.ListAttribute();
                    if (x.ValueLabelDic.ContainsKey(doc.Status))
                    {
                        status = x.ValueLabelDic[doc.Status];
                    }

                    DRDocumentRecord record = new DRDocumentRecord();
                    record.BAccountCD     = customer.AcctCD;
                    record.RefNbr         = doc.RefNbr;
                    record.Status         = status;
                    record.FinPeriodID    = doc.FinPeriodID;
                    record.DocType        = doc.DocType;
                    record.DocDate        = doc.DocDate;
                    record.LocationID     = doc.VendorLocationID;
                    record.CuryOrigDocAmt = doc.CuryOrigDocAmt;
                    record.CuryID         = doc.CuryID;

                    yield return(record);
                }
            }
        }
        protected override IEnumerable GetRecords()
        {
            PXCache cache = this._Graph.Caches[BqlCommand.GetItemType(_moduleField)];

            if (cache.Current == null)
            {
                yield break;
            }

            string docType = (string)cache.GetValue(cache.Current, _docTypeField.Name);
            string module  = (string)cache.GetValue(cache.Current, _moduleField.Name);

            bool excludeUnreleased = cache
                                     .GetAttributesReadonly(cache.Current, _FieldName)
                                     .OfType <DRDocumentSelectorAttribute>()
                                     .First()
                                     .ExcludeUnreleased;

            int?businessAccountID = null;

            if (_businessAccountField != null)
            {
                businessAccountID =
                    (int?)cache.GetValue(cache.Current, _businessAccountField.Name);
            }

            if (module == BatchModule.AR)
            {
                PXSelectBase <ARInvoice> relevantInvoices = new PXSelectJoin <
                    ARInvoice,
                    InnerJoin <BAccount, On <BAccount.bAccountID, Equal <ARInvoice.customerID> > >,
                    Where <ARInvoice.docType, Equal <Required <ARInvoice.docType> >,
                           And <Where <ARInvoice.drSchedCntr, Less <ARInvoice.lineCntr>, Or <ARInvoice.drSchedCntr, IsNull> > > > >
                                                                (this._Graph);

                if (excludeUnreleased)
                {
                    relevantInvoices.WhereAnd <Where <ARInvoice.released, Equal <True> > >();
                }

                object[] queryParameters;

                if (businessAccountID.HasValue)
                {
                    relevantInvoices.WhereAnd <
                        Where <ARInvoice.customerID, Equal <Required <ARInvoice.customerID> > > >();

                    queryParameters = new object[] { docType, businessAccountID };
                }
                else
                {
                    queryParameters = new object[] { docType };
                }

                foreach (PXResult <ARInvoice, BAccount> result in relevantInvoices.Select(queryParameters))
                {
                    ARInvoice arInvoice = result;
                    BAccount  customer  = result;

                    string status = null;

                    ARDocStatus.ListAttribute documentStatusListAttribute =
                        new ARDocStatus.ListAttribute();

                    if (documentStatusListAttribute.ValueLabelDic.ContainsKey(arInvoice.Status))
                    {
                        status = documentStatusListAttribute.ValueLabelDic[arInvoice.Status];
                    }

                    DRDocumentRecord record = new DRDocumentRecord
                    {
                        BAccountCD     = customer.AcctCD,
                        RefNbr         = arInvoice.RefNbr,
                        Status         = status,
                        FinPeriodID    = arInvoice.FinPeriodID,
                        DocType        = arInvoice.DocType,
                        DocDate        = arInvoice.DocDate,
                        LocationID     = arInvoice.CustomerLocationID,
                        CuryOrigDocAmt = arInvoice.CuryOrigDocAmt,
                        CuryID         = arInvoice.CuryID
                    };

                    yield return(record);
                }
            }
            else
            {
                foreach (var item in base.GetRecords())
                {
                    yield return(item);
                }
            }
        }
Esempio n. 3
0
		protected virtual IEnumerable GetRecords()
		{
			bool ar = true;
			PXCache cache = this._Graph.Caches[BqlCommand.GetItemType(moduleField)];
			string docType = ARDocType.Invoice;

			if (cache.Current != null )
			{
				docType = (string)cache.GetValue(cache.Current, docTypeField.Name);
				string module = (string)cache.GetValue(cache.Current, moduleField.Name);
				if (module == BatchModule.AP)
					ar = false;
			}

			if (ar)
			{
				PXSelectBase<ARInvoice> select = new 
					PXSelectJoin<ARInvoice, 
					InnerJoin<BAccount, On<BAccount.bAccountID, Equal<ARInvoice.customerID>>>,
					Where<ARInvoice.docType, Equal<Required<ARInvoice.docType>>>>(this._Graph);
				foreach (PXResult<ARInvoice, BAccount> res in select.Select(docType))
				{
					ARInvoice doc = (ARInvoice)res;
					BAccount customer = (BAccount)res;


					string status = null;
					ARDocStatus.ListAttribute x = new ARDocStatus.ListAttribute();
					if (x.ValueLabelDic.ContainsKey(doc.Status))
					{
						status = x.ValueLabelDic[doc.Status];
					}
					

					DRDocumentRecord record = new DRDocumentRecord();
					record.BAccountCD = customer.AcctCD;
					record.RefNbr = doc.RefNbr;
					record.Status = status;
					record.FinPeriodID = doc.FinPeriodID;
					record.DocType = doc.DocType;
					record.DocDate = doc.DocDate;
					record.LocationID = doc.CustomerLocationID;
					record.CuryOrigDocAmt = doc.CuryOrigDocAmt;
					record.CuryID = doc.CuryID;

					yield return record;
				}
			}
			else
			{
				PXSelectBase<APInvoice> select = new
					PXSelectJoin<APInvoice,
					InnerJoin<BAccount, On<BAccount.bAccountID, Equal<APInvoice.vendorID>>>,
					Where<APInvoice.docType, Equal<Required<APInvoice.docType>>>>(this._Graph);
				foreach (PXResult<APInvoice, BAccount> res in select.Select(docType))
				{
					APInvoice doc = (APInvoice)res;
					BAccount customer = (BAccount)res;

					string status = null;
					APDocStatus.ListAttribute x = new APDocStatus.ListAttribute();
					if (x.ValueLabelDic.ContainsKey(doc.Status))
					{
						status = x.ValueLabelDic[doc.Status];
					}

					DRDocumentRecord record = new DRDocumentRecord();
					record.BAccountCD = customer.AcctCD;
					record.RefNbr = doc.RefNbr;
					record.Status = status;
					record.FinPeriodID = doc.FinPeriodID;
					record.DocType = doc.DocType;
					record.DocDate = doc.DocDate;
					record.LocationID = doc.VendorLocationID;
					record.CuryOrigDocAmt = doc.CuryOrigDocAmt;
					record.CuryID = doc.CuryID;

					yield return record;
				}
			}
		}