예제 #1
0
 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);
         }
     }
 }
예제 #2
0
        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);
            }
        }