private void CheckFinPeriod(PXCache sender, object row, string postTo, bool isAltered = false) { if (postTo != null) { if (postTo == ID.Batch_PostTo.SO) { OpenPeriodAttribute.SetValidatePeriod(sender, isAltered ? null : row, _FieldName, GL.PeriodValidation.Nothing); } else { OpenPeriodAttribute.SetValidatePeriod(sender, isAltered ? null : row, _FieldName, GL.PeriodValidation.DefaultSelectUpdate); } } }
protected virtual void EPExpenseClaim_RowSelected(PXCache cache, PXRowSelectedEventArgs e) { EPExpenseClaim doc = e.Row as EPExpenseClaim; if (doc == null) { return; } APInvoice apdoc = PXSelect <APInvoice, Where <APInvoice.refNbr, Equal <Current <EPExpenseClaim.aPRefNbr> > > > .Select(this); if (apdoc != null) { doc.APStatus = apdoc.Status; } ExpenseClaimDetails.Cache.AllowDelete = true; ExpenseClaimDetails.Cache.AllowUpdate = true; ExpenseClaimDetails.Cache.AllowInsert = true; Taxes.Cache.AllowDelete = true; Taxes.Cache.AllowUpdate = true; Taxes.Cache.AllowInsert = true; if (taxzone.Current != null && doc.TaxZoneID != taxzone.Current.TaxZoneID) { taxzone.Current = null; } PXUIFieldAttribute.SetVisible <EPExpenseClaim.curyID>(cache, doc, (bool)cmsetup.Current.MCActivated); bool curyenabled = true; if (EPEmployee.Current != null && (bool)EPEmployee.Current.AllowOverrideCury == false) { curyenabled = false; } if (doc.Released == true) { PXUIFieldAttribute.SetEnabled(cache, doc, false); cache.AllowDelete = false; cache.AllowUpdate = false; ExpenseClaimDetails.Cache.AllowDelete = false; ExpenseClaimDetails.Cache.AllowUpdate = false; ExpenseClaimDetails.Cache.AllowInsert = false; Taxes.Cache.AllowDelete = false; Taxes.Cache.AllowUpdate = false; Taxes.Cache.AllowInsert = false; release.SetEnabled(false); PXUIFieldAttribute.SetEnabled <EPExpenseClaim.refNbr>(cache, doc, true); } else { PXUIFieldAttribute.SetEnabled(cache, doc, true); PXUIFieldAttribute.SetEnabled <EPExpenseClaim.status>(cache, doc, false); PXUIFieldAttribute.SetEnabled <EPExpenseClaim.aPRefNbr>(cache, doc, false); PXUIFieldAttribute.SetEnabled <EPExpenseClaim.aPDocType>(cache, doc, false); PXUIFieldAttribute.SetEnabled <EPExpenseClaim.approverID>(cache, doc, false); PXUIFieldAttribute.SetEnabled <EPExpenseClaim.workgroupID>(cache, doc, false); PXUIFieldAttribute.SetEnabled <EPExpenseClaim.curyDocBal>(cache, doc, false); PXUIFieldAttribute.SetEnabled <EPExpenseClaim.curyVatExemptTotal>(cache, doc, false); PXUIFieldAttribute.SetEnabled <EPExpenseClaim.curyVatTaxableTotal>(cache, doc, false); PXUIFieldAttribute.SetEnabled <EPExpenseClaim.curyID>(cache, doc, curyenabled); OpenPeriodAttribute.SetValidatePeriod <EPExpenseClaim.finPeriodID>(cache, e.Row, PeriodValidation.DefaultUpdate); if (doc.Approved == true) { PXUIFieldAttribute.SetEnabled(cache, doc, false); PXUIFieldAttribute.SetEnabled <EPExpenseClaim.refNbr>(cache, doc, true); PXUIFieldAttribute.SetEnabled <EPExpenseClaim.docDesc>(cache, doc, cache.GetStatus(e.Row) == PXEntryStatus.Inserted); ExpenseClaimDetails.Cache.AllowUpdate = false; ExpenseClaimDetails.Cache.AllowInsert = false; ExpenseClaimDetails.Cache.AllowDelete = false; Taxes.Cache.AllowDelete = false; Taxes.Cache.AllowUpdate = false; Taxes.Cache.AllowInsert = false; } PXUIFieldAttribute.SetEnabled <EPExpenseClaim.hold>(cache, e.Row, doc.Released != true); bool isApprover = doc.Status == EPClaimStatus.Balanced && Approval.IsApprover(doc); PXUIFieldAttribute.SetEnabled <EPExpenseClaim.rejected>(cache, e.Row, isApprover); PXUIFieldAttribute.SetEnabled <EPExpenseClaim.approved>(cache, e.Row, isApprover); PXUIFieldAttribute.SetEnabled <EPExpenseClaim.approveDate>(cache, e.Row, isApprover); PXUIFieldAttribute.SetEnabled <EPExpenseClaim.finPeriodID>(cache, e.Row, isApprover || doc.Status == EPClaimStatus.Approved); PXUIFieldAttribute.SetEnabled <EPExpenseClaim.approverID>(cache, doc, isApprover && doc.Status == EPClaimStatus.Balanced); PXUIFieldAttribute.SetEnabled <EPExpenseClaim.workgroupID>(cache, doc, isApprover && doc.Status == EPClaimStatus.Balanced); PXUIFieldAttribute.SetEnabled <EPExpenseClaim.approvedByID>(cache, doc, false); cache.AllowDelete = true; cache.AllowUpdate = true; release.SetEnabled(doc.Approved == true); } if (epsetup.Current != null) { PXUIFieldAttribute.SetVisible <EPExpenseClaim.curyOrigDocAmt>(cache, e.Row, (bool)epsetup.Current.RequireControlTotal); } }