private void UpdateComplianceDocumentAmountsIfRequired(APAdjust adjustment, ComplianceDocument complianceDocument)
 {
     if (complianceDocument.DocumentType == GetLienWaiverDocumentTypeId())
     {
         UpdateComplianceDocumentAmounts(adjustment, complianceDocument);
     }
 }
 public void UpdateExpirationIndicator(ComplianceDocument document)
 {
     if (document != null)
     {
         document.IsExpired = document.ExpirationDate < graph.Accessinfo.BusinessDate;
     }
 }
        private void PersistComplianceDocument(ComplianceDocument complianceDocument)
        {
            var complianceDocumentCache = graph.Caches <ComplianceDocument>();

            complianceDocumentCache.Update(complianceDocument);
            complianceDocumentCache.PersistUpdated(complianceDocument);
        }
        private string CreateMessageLine(ComplianceDocument compliance)
        {
            var project     = projectDataProvider.GetProject(graph, compliance.ProjectID);
            var messageLine = $"{project.ContractCD}-{project.Description}";

            return(AppendCommitments(compliance, messageLine));
        }
示例#5
0
        public override void FieldUpdating(PXCache cache, PXFieldUpdatingEventArgs args)
        {
            if (args.NewValue != null)
            {
                var noteId = complianceDocumentEntityHelper.GetNoteId(cache.Graph, (string)args.NewValue);
                if (noteId != null)
                {
                    var oldReferenceId = (Guid?)cache.GetValue(args.Row, _FieldOrdinal);
                    var reference      = InsertComplianceDocumentReference(cache, args, noteId);
                    args.NewValue = reference.ComplianceDocumentReferenceId;
                    TryDeleteReference(cache, oldReferenceId);
                }
                else
                {
                    ComplianceDocument doc = args.Row as ComplianceDocument;

                    args.NewValue = cache.GetValue(doc, _FieldName);
                    args.Cancel   = true;
                }
            }
            else
            {
                DeleteExistingReference(cache, (ComplianceDocument)args.Row);
            }
        }
 private void ValidateExpirationDateOnFieldSelecting(ComplianceDocument document, PXCache documentsCache)
 {
     if (document != null && document.ExpirationDate < graph.Accessinfo.BusinessDate)
     {
         RaiseComplianceDocumentIsExpiredException(documentsCache, document, document.ExpirationDate);
     }
 }
示例#7
0
 public static void SetComplianceDocumentReference <TField>(PXCache cache, ComplianceDocument doc, string docType, string refNumber, Guid?noteId)
     where TField : IBqlField
 {
     cache.GetAttributesReadonly <TField>(doc)
     .OfType <ComplianceDocumentRefNoteAttribute>().First()
     .SetComplianceDocumentReference(cache, doc, docType, refNumber, noteId);
 }
 private void FillChangeOrderInfo(ComplianceDocument complianceDocument, PMChangeOrder changeOrder)
 {
     complianceDocument.ProjectID         = changeOrder.ProjectID;
     complianceDocument.CustomerID        = changeOrder.CustomerID;
     complianceDocument.CustomerName      = GetCustomerName(changeOrder.CustomerID);
     complianceDocument.ChangeOrderNumber = changeOrder.RefNbr;
     FillAdditionalChangeOrderInfo(complianceDocument);
 }
        private string AppendCommitments(ComplianceDocument compliance, string messageLine)
        {
            var complianceDocumentReference = GetPurchaseOrderComplianceReference(compliance.PurchaseOrder);

            messageLine = AddCommitmentIdIfExists(complianceDocumentReference?.ReferenceNumber, messageLine);
            messageLine = AddCommitmentIdIfExists(compliance.Subcontract, messageLine);
            return(string.Concat(messageLine, Constants.WarningMessageSymbols.NewLine));
        }
 private static void RaiseComplianceDocumentIsExpiredException(PXCache cache, ComplianceDocument document,
                                                               DateTime?expirationDate)
 {
     RaiseSingleIsExpiredException <ComplianceDocument.expirationDate>(
         cache, document, expirationDate, PXErrorLevel.Warning);
     RaiseSingleIsExpiredException <ComplianceDocument.isExpired>(
         cache, document, document.IsExpired, PXErrorLevel.RowWarning);
 }
示例#11
0
        private void UpdateCheckNumber(PXCache cache, ComplianceDocument document)
        {
            var checkNumber = document.ApCheckID.HasValue
                ? GetPayment(document.ApCheckID, cache.Graph)?.ExtRefNbr
                : null;

            cache.SetValue <ComplianceDocument.checkNumber>(document, checkNumber);
        }
示例#12
0
 private LienWaiverReportGenerationModel GetReportInAppropriateFormat(
     string format, NotificationSourceModel notificationSourceModel, ComplianceDocument complianceDocument)
 {
     return(format == NotificationFormat.Excel
         ? LienWaiverReportCreator.CreateReport(
                notificationSourceModel.NotificationSource.ReportID, complianceDocument,
                notificationSourceModel.IsJointCheck, ReportProcessor.FilterExcel, false)
         : LienWaiverReportGenerationModel);
 }
        private static void RaiseSingleIsExpiredException <TField>(PXCache cache, ComplianceDocument document,
                                                                   object fieldValue, PXErrorLevel errorLevel)
            where TField : IBqlField
        {
            var exception = new PXSetPropertyException <TField>(
                ComplianceMessages.ComplianceDocumentIsExpiredMessage, errorLevel);

            cache.RaiseExceptionHandling <TField>(document, fieldValue, exception);
        }
 private void ValidateExpirationDateOnFieldVerifying(ComplianceDocument document, PXCache documentsCache,
                                                     DateTime?expirationDate)
 {
     documentsCache.ClearItemAttributes();
     if (expirationDate != null && expirationDate < graph.Accessinfo.BusinessDate)
     {
         RaiseComplianceDocumentIsExpiredException(documentsCache, document, expirationDate);
     }
 }
示例#15
0
 private LienWaiverReportGenerationModel GetLienWaiverReportGenerationModel(string reportId,
                                                                            ComplianceDocument complianceDocument)
 {
     return(new LienWaiverReportGenerationModel
     {
         Report = PXReportTools.LoadReport(reportId, null),
         Parameters = GetReportParameters(complianceDocument)
     });
 }
        protected virtual void ProcessLienWaiver(NotificationSourceModel notificationSourceModel,
                                                 ComplianceDocument complianceDocument)
        {
            PXProcessing.SetCurrentItem(complianceDocument);

            LienWaiverReportGenerationModel = LienWaiverReportCreator.CreateReport(
                notificationSourceModel.NotificationSource.ReportID, complianceDocument,
                notificationSourceModel.IsJointCheck);
        }
 public void UpdateComplianceForJointCheck(JointPayee jointPayee, ComplianceDocument complianceDocument,
                                           APRegister check)
 {
     if (IsSameJointVendorInternalId(jointPayee, complianceDocument) ||
         IsSameJointVendorExternalName(jointPayee, complianceDocument))
     {
         UpdateComplianceDocument(complianceDocument, check, false);
     }
 }
        private string CreateMessageLine(JointPayee jointPayee, ComplianceDocument compliance,
                                         string vendorName)
        {
            var project     = projectDataProvider.GetProject(graph, compliance.ProjectID);
            var messageLine =
                $"{jointPayee.JointPayeeExternalName ?? vendorName}, {project.ContractCD}-{project.Description}";

            return(AppendCommitments(compliance, messageLine));
        }
 private void UpdateComplianceDocumentForVendorCheck(ComplianceDocument complianceDocument,
                                                     APRegister vendorCheck)
 {
     if (!complianceDocument.JointVendorInternalId.HasValue &&
         complianceDocument.JointVendorExternalName.IsNullOrEmpty())
     {
         UpdateComplianceDocument(complianceDocument, vendorCheck, true);
     }
 }
示例#20
0
        private string GetVendorCd(ComplianceDocument complianceDocument)
        {
            var vendorId = isJointCheck
                ? complianceDocument.JointVendorInternalId
                : complianceDocument.VendorID;

            return(printEmailLienWaiversProcess.Select <BAccount>()
                   .SingleOrDefault(ven => ven.BAccountID == vendorId)?.AcctCD);
        }
        private void UpdateComplianceDocumentData(APAdjust adjustment, ComplianceDocument complianceDocument)
        {
            var payment = graph.Document.Current;

            ComplianceDocumentRefNoteAttribute.SetComplianceDocumentReference <ComplianceDocument.apCheckId>(
                graph.Caches <ComplianceDocument>(), complianceDocument, payment.DocType, payment.RefNbr, payment.NoteID);

            UpdateComplianceDocumentAmountsIfRequired(adjustment, complianceDocument);
        }
示例#22
0
        private string GetNameForLienWaiverReport(ComplianceDocument complianceDocument,
                                                  string format, string projectCd, string vendorCd)
        {
            var date          = printEmailLienWaiversProcess.Accessinfo.BusinessDate;
            var fileExtension = GetReportFileExtension(format);

            return(string.Format(Constants.LienWaiverReportFileNamePattern,
                                 complianceDocument.NoteID, projectCd, vendorCd, date, fileExtension));
        }
 private ComplianceDocument CreateLienWaiver()
 {
     lienWaiver = new ComplianceDocument
     {
         DocumentType = ComplianceAttributeTypeDataProvider.GetComplianceAttributeType(
             Graph, ComplianceDocumentType.LienWaiver).ComplianceAttributeTypeID,
         ProjectID = generationKey.ProjectId
     };
     return((ComplianceDocument)Cache.Insert(lienWaiver));
 }
 private void UpdateComplianceDocument(ComplianceDocument complianceDocument, APRegister check,
                                       bool isVendorCheck)
 {
     if (complianceDocument.DocumentType == GetLienWaiverDocumentTypeId())
     {
         UpdateComplianceDocumentForLienWaiverType(complianceDocument, check, isVendorCheck);
     }
     ComplianceDocumentRefNoteAttribute.SetComplianceDocumentReference <ComplianceDocument.apCheckId>(
         graph.Caches <ComplianceDocument>(), complianceDocument, check.DocType, check.RefNbr, check.NoteID);
 }
        private static bool IsSameJointVendorExternalName(JointPayee jointPayee, ComplianceDocument complianceDocument)
        {
            var jointPayeeExternalName  = jointPayee.JointPayeeExternalName;
            var jointVendorExternalName = complianceDocument.JointVendorExternalName;

            return(!jointPayeeExternalName.IsNullOrEmpty() &&
                   !jointVendorExternalName.IsNullOrEmpty() &&
                   string.Equals(jointPayeeExternalName.Trim(), jointVendorExternalName.Trim(),
                                 StringComparison.CurrentCultureIgnoreCase));
        }
        private void UpdateComplianceDocumentAmounts(APAdjust adjustment, ComplianceDocument complianceDocument)
        {
            complianceDocument.LienWaiverAmount = adjustment.CuryAdjgAmt;
            var jointPayeePayments = GetJointPayeePaymentsAndJointPayees(adjustment);

            if (jointPayeePayments.Any())
            {
                complianceDocument.JointAmount = GetTotalJointAmountToPay(jointPayeePayments);
            }
        }
示例#27
0
        public virtual void SetComplianceDocumentReference(PXCache cache, ComplianceDocument doc, string docType, string refNumber, Guid?noteId)
        {
            var oldReferenceId = (Guid?)cache.GetValue(doc, _FieldOrdinal);

            var reference = InsertComplianceDocumentReference(cache.Graph, docType, refNumber, noteId);

            cache.SetValue(doc, _FieldName, reference.ComplianceDocumentReferenceId);

            TryDeleteReference(cache, oldReferenceId);
        }
示例#28
0
 private Dictionary <string, string> GetReportParameters(
     ComplianceDocument complianceDocument)
 {
     return(new Dictionary <string, string>
     {
         [Constants.LienWaiverReportParameters.ComplianceDocumentId] =
             complianceDocument.ComplianceDocumentID.ToString(),
         [Constants.LienWaiverReportParameters.IsJointCheck] = isJointCheck.ToString()
     });
 }
示例#29
0
 private void FillPurchaseOrderInfo(ComplianceDocument complianceDocument, POOrder poOrder, POLine poLine)
 {
     complianceDocument.VendorID   = poOrder.VendorID;
     complianceDocument.VendorName = GetVendorName(complianceDocument.VendorID);
     complianceDocument.ProjectID  = poLine?.ProjectID;
     complianceDocument.CostTaskID = poLine?.TaskID;
     complianceDocument.AccountID  = poLine?.ExpenseAcctID;
     complianceDocument.CostCodeID = poLine?.CostCodeID;
     SetComplianceDocumentReference(complianceDocument, poOrder);
 }
        protected override void ProcessLienWaiver(NotificationSourceModel notificationSourceModel,
                                                  ComplianceDocument complianceDocument)
        {
            base.ProcessLienWaiver(notificationSourceModel, complianceDocument);
            ConfigurePrintActionParameters(notificationSourceModel.NotificationSource.ReportID,
                                           notificationSourceModel.NotificationSource.NBranchID);
            UpdateLienWaiverProcessedStatus(complianceDocument);

            PXProcessing.SetProcessed();
        }