protected virtual void InsertDetails(ARInvoiceEntry invoiceEntry, ARInvoice scheduledInvoice, ARInvoice newInvoice) { foreach (ARTran originalLine in PXSelect < ARTran, Where < ARTran.tranType, Equal <Required <ARTran.tranType> >, And <ARTran.refNbr, Equal <Required <ARTran.refNbr> >, And <Where < ARTran.lineType, IsNull, Or <ARTran.lineType, NotEqual <SOLineType.discount> > > > > > > .Select(invoiceEntry, scheduledInvoice.DocType, scheduledInvoice.RefNbr)) { ARTran newLine = PXCache <ARTran> .CreateCopy(originalLine); newLine.FinPeriodID = null; newLine.TranPeriodID = null; newLine.RefNbr = null; newLine.CuryInfoID = null; newLine.ManualPrice = true; newLine.ManualDisc = true; newLine.NoteID = null; newLine = invoiceEntry.Transactions.Insert(newLine); PXNoteAttribute.CopyNoteAndFiles(Caches[typeof(ARTran)], originalLine, invoiceEntry.Transactions.Cache, newLine); } foreach (ARInvoiceDiscountDetail originalDiscountDetail in PXSelect < ARInvoiceDiscountDetail, Where < ARInvoiceDiscountDetail.docType, Equal <Required <ARInvoiceDiscountDetail.docType> >, And <ARInvoiceDiscountDetail.refNbr, Equal <Required <ARInvoiceDiscountDetail.refNbr> > > > > .Select(invoiceEntry, scheduledInvoice.DocType, scheduledInvoice.RefNbr)) { ARInvoiceDiscountDetail newDiscountDetail = PXCache <ARInvoiceDiscountDetail> .CreateCopy(originalDiscountDetail); newDiscountDetail.RefNbr = null; newDiscountDetail.CuryInfoID = null; newDiscountDetail.IsManual = true; DiscountEngineProvider.GetEngineFor <ARTran, ARInvoiceDiscountDetail>().InsertDiscountDetail(invoiceEntry.ARDiscountDetails.Cache, invoiceEntry.ARDiscountDetails, newDiscountDetail); } }
protected virtual void AddDiscountDetails(PXCache sender, PXRowUpdatedEventArgs e) { foreach (SOInvoiceDiscountDetail dDetail in DiscountDetails.Select()) { ARInvoiceDiscountDetail arDiscountDetail = new ARInvoiceDiscountDetail(); SOInvoiceDiscountDetail discountCopy = (SOInvoiceDiscountDetail)DiscountDetails.Cache.CreateCopy(dDetail); foreach (ARInvoiceDiscountDetail aDetail in ARDiscountDetails.Select()) { if (aDetail.DiscountID == discountCopy.DiscountID && aDetail.DiscountSequenceID == discountCopy.DiscountSequenceID && aDetail.Type == discountCopy.Type) { arDiscountDetail = aDetail; } } arDiscountDetail.CuryDiscountableAmt = discountCopy.CuryDiscountableAmt; arDiscountDetail.CuryDiscountAmt = discountCopy.CuryDiscountAmt; arDiscountDetail.CuryInfoID = discountCopy.CuryInfoID; arDiscountDetail.DiscountableAmt = discountCopy.DiscountableAmt; arDiscountDetail.DiscountableQty = discountCopy.DiscountableQty; arDiscountDetail.DiscountAmt = discountCopy.DiscountAmt; arDiscountDetail.DiscountID = discountCopy.DiscountID; arDiscountDetail.DiscountPct = discountCopy.DiscountPct; arDiscountDetail.DiscountSequenceID = discountCopy.DiscountSequenceID; arDiscountDetail.FreeItemID = discountCopy.FreeItemID; arDiscountDetail.FreeItemQty = discountCopy.FreeItemQty; arDiscountDetail.Type = discountCopy.Type; ARDiscountDetails.Update(arDiscountDetail); } }