Beispiel #1
0
        public virtual void _(Events.RowUpdated <EPExpenseClaimDetails> e)
        {
            EPExpenseClaimDetails row    = e.Row;
            EPExpenseClaimDetails oldrow = e.OldRow;

            if (!e.Cache.ObjectsEqual <
                    EPExpenseClaimDetails.refNbr,
                    EPExpenseClaimDetails.taxCategoryID,
                    EPExpenseClaimDetails.taxCalcMode,
                    EPExpenseClaimDetails.taxZoneID
                    >(e.Row, e.OldRow))
            {
                try
                {
                    VerifyTransactions(row.TaxCalcMode, Base.Tax_Rows.Select(row.ClaimDetailID).RowCast <Tax>());
                }
                catch (PXException ex)
                {
                    e.Cache.RaiseExceptionHandling <EPExpenseClaimDetails.curyTaxTotal>(row, row.CuryTaxTotal, new PXSetPropertyException(ex.Message));
                }
            }
        }
        private void UnmatchBankTran(CABankTran origTran, bool isMassRelease)
        {
            if (origTran.DocumentMatched != true)
            {
                return;
            }

            CABankTran copy = (CABankTran)Details.Cache.CreateCopy(origTran);

            copy.Processed = false;
            foreach (CABankTranMatch match in TranMatch.Select(copy.TranID))
            {
                if (match.DocModule == GL.BatchModule.AP && match.DocType == CATranType.CABatch)
                {
                    foreach (CATran tran in CATransInBatch.Select(match.DocRefNbr))
                    {
                        if (tran != null && tran.TranID != null && tran.ReconNbr == null)
                        {
                            tran.ClearDate = null;
                            tran.Cleared   = false;
                            CATransInBatch.Update(tran);
                        }
                    }
                }
                else
                {
                    CATran tran = CATrans.Select(match.CATranID);
                    if (tran != null && tran.TranID != null && tran.ReconNbr == null)
                    {
                        tran.ClearDate = null;
                        tran.Cleared   = false;
                        CATrans.Update(tran);
                    }
                }

                if (CABankTransactionsMaint.IsMatchedToExpenseReceipt(match))
                {
                    EPExpenseClaimDetails receipt =
                        PXSelect <EPExpenseClaimDetails,
                                  Where <EPExpenseClaimDetails.claimDetailCD,
                                         Equal <Required <EPExpenseClaimDetails.claimDetailCD> > > >
                        .Select(this, match.DocRefNbr);

                    receipt.BankTranDate = null;

                    ExpenseReceipts.Update(receipt);
                }

                TranMatch.Delete(match);
            }
            foreach (var adj in TranAdj.Select(copy.TranID))
            {
                TranAdj.Delete(adj);
            }
            foreach (var split in CABankTranSplits.Select(copy.TranID))
            {
                CABankTranSplits.Delete(split);
            }
            CABankTransactionsMaint.ClearFields(copy);
            Details.Cache.SetDefaultExt <CABankTran.curyApplAmt>(copy);
            Details.Cache.SetDefaultExt <CABankTran.curyApplAmtCA>(copy);
            Details.Cache.SetDefaultExt <CABankTran.curyApplAmtMatch>(copy);
            Details.Update(copy);
            if (isMassRelease == false)
            {
                this.Save.Press();
            }
        }