protected int?GetInstanceId(V2.TranProfile input)
        {
            int?    instanceID = PaymentTranExtConstants.NewPaymentProfile;
            PXCache cpmCache   = Base.Caches[typeof(CustomerPaymentMethod)];

            cpmCache.ClearQueryCacheObsolete();
            PXSelectBase <CustomerPaymentMethod> query = new PXSelectReadonly2 <CustomerPaymentMethod,
                                                                                InnerJoin <CustomerPaymentMethodDetail, On <CustomerPaymentMethod.pMInstanceID, Equal <CustomerPaymentMethodDetail.pMInstanceID> >,
                                                                                           InnerJoin <PaymentMethodDetail, On <CustomerPaymentMethodDetail.detailID, Equal <PaymentMethodDetail.detailID>,
                                                                                                                               And <CustomerPaymentMethodDetail.paymentMethodID, Equal <PaymentMethodDetail.paymentMethodID> > > > >,
                                                                                Where <CustomerPaymentMethod.cCProcessingCenterID, Equal <Required <CustomerPaymentMethod.cCProcessingCenterID> >,
                                                                                       And <CustomerPaymentMethod.customerCCPID, Equal <Required <CustomerPaymentMethod.customerCCPID> >,
                                                                                            And <PaymentMethodDetail.isCCProcessingID, Equal <True>, And <PaymentMethodDetail.useFor, Equal <PaymentMethodDetailUsage.useForARCards> > > > > >(Base);

            PXResultset <CustomerPaymentMethod> queryResult = query.Select(SelectedProcessingCenter, input.CustomerProfileId);

            foreach (PXResult <CustomerPaymentMethod, CustomerPaymentMethodDetail> item in queryResult)
            {
                CustomerPaymentMethodDetail checkCpmd = (CustomerPaymentMethodDetail)item;

                if (checkCpmd.Value == input.PaymentProfileId)
                {
                    instanceID = checkCpmd.PMInstanceID;
                    break;
                }
            }
            CustomerPaymentMethod cpm = NewCpm.Select();

            if (cpm != null && cpm.PMInstanceID != null && cpm.PMInstanceID >= 0)
            {
                instanceID = cpm.PMInstanceID.Value;
            }
            return(instanceID);
        }
예제 #2
0
            public virtual void OnPersist(IEnumerable <Organization> organizations)
            {
                OrganizationMaint organizationMaint = CreateInstance <OrganizationMaint>();

                PXCache organizationCache = organizationMaint.OrganizationView.Cache;

                PXDBTimestampAttribute timestampAttribute = organizationCache
                                                            .GetAttributesOfType <PXDBTimestampAttribute>(null, nameof(Organization.tstamp))
                                                            .First();

                timestampAttribute.RecordComesFirst = true;

                foreach (Organization organization in organizations)
                {
                    organizationMaint.Clear();

                    organizationMaint.BAccount.Current = organizationMaint.BAccount.Search <OrganizationBAccount.bAccountID>(organization.BAccountID);

                    organizationCache.Clear();
                    organizationCache.ClearQueryCacheObsolete();

                    if (organization.ActualLedgerID < 0)
                    {
                        organization.ActualLedgerID = LedgerIDMap[organization.ActualLedgerID].LedgerID;
                    }

                    organizationCache.Current = organization;
                    organizationCache.SetStatus(organizationMaint.OrganizationView.Current, PXEntryStatus.Updated);

                    organizationMaint.Actions.PressSave();
                }
            }
예제 #3
0
 protected virtual void INTranSplit_RowPersisted(PXCache sender, PXRowPersistedEventArgs e)
 {
     //for cluster only. SelectQueries sometimes does not contain all the needed records after failed Save operation
     if (e.TranStatus == PXTranStatus.Aborted && PX.Common.WebConfig.IsClusterEnabled)
     {
         sender.ClearQueryCacheObsolete();
     }
 }
예제 #4
0
        protected virtual void userSetupDialog()
        {
            EnsureUserSetup();
            PXCache setupCache = Base.Caches[typeof(TSetup)];

            if (UserSetupView.AskExt() == WebDialogResult.OK)
            {
                using (var tr = new PXTransactionScope())
                {
                    setupCache.Persist(PXDBOperation.Insert);
                    setupCache.Persist(PXDBOperation.Update);
                    tr.Complete();
                }
                Base.Clear();
            }
            else
            {
                setupCache.Clear();
                setupCache.ClearQueryCacheObsolete();
            }
        }
예제 #5
0
        private void CreateCustomerProcessingCenterRecord(CustomerPaymentMethod customerPM, CCSynchronizeCard syncCard)
        {
            PXCache customerProcessingCenterCache = Caches[typeof(CustomerProcessingCenterID)];

            customerProcessingCenterCache.ClearQueryCacheObsolete();
            PXSelectBase <CustomerProcessingCenterID> checkRecordExist = new PXSelectReadonly <CustomerProcessingCenterID,
                                                                                               Where <CustomerProcessingCenterID.cCProcessingCenterID, Equal <Required <CreditCardsFilter.processingCenterId> >,
                                                                                                      And <CustomerProcessingCenterID.bAccountID, Equal <Required <CustomerProcessingCenterID.bAccountID> >,
                                                                                                           And <CustomerProcessingCenterID.customerCCPID, Equal <Required <CustomerProcessingCenterID.customerCCPID> > > > > >(this);
            CustomerProcessingCenterID cProcessingCenter = checkRecordExist.SelectSingle(syncCard.CCProcessingCenterID, syncCard.BAccountID, syncCard.CustomerCCPID);

            if (cProcessingCenter == null)
            {
                cProcessingCenter                      = customerProcessingCenterCache.CreateInstance() as CustomerProcessingCenterID;
                cProcessingCenter.BAccountID           = syncCard.BAccountID;
                cProcessingCenter.CCProcessingCenterID = syncCard.CCProcessingCenterID;
                cProcessingCenter.CustomerCCPID        = syncCard.CustomerCCPID;
                customerProcessingCenterCache.Insert(cProcessingCenter);
                customerProcessingCenterCache.Persist(PXDBOperation.Insert);
            }
        }
        protected void CreateCustomerProcessingCenterRecord(V2.TranProfile input)
        {
            PXCache customerProcessingCenterCache = Base.Caches[typeof(CustomerProcessingCenterID)];

            customerProcessingCenterCache.ClearQueryCacheObsolete();
            PXSelectBase <CustomerProcessingCenterID> checkRecordExist = new PXSelectReadonly <CustomerProcessingCenterID,
                                                                                               Where <CustomerProcessingCenterID.cCProcessingCenterID, Equal <Required <CustomerProcessingCenterID.cCProcessingCenterID> >,
                                                                                                      And <CustomerProcessingCenterID.bAccountID, Equal <Required <CustomerProcessingCenterID.bAccountID> >,
                                                                                                           And <CustomerProcessingCenterID.customerCCPID, Equal <Required <CustomerProcessingCenterID.customerCCPID> > > > > >(Base);

            CustomerProcessingCenterID cProcessingCenter = checkRecordExist.SelectSingle(SelectedProcessingCenter, SelectedBAccount, input.CustomerProfileId);

            if (cProcessingCenter == null)
            {
                cProcessingCenter                      = customerProcessingCenterCache.CreateInstance() as CustomerProcessingCenterID;
                cProcessingCenter.BAccountID           = SelectedBAccount;
                cProcessingCenter.CCProcessingCenterID = SelectedProcessingCenter;
                cProcessingCenter.CustomerCCPID        = input.CustomerProfileId;
                customerProcessingCenterCache.Insert(cProcessingCenter);
                customerProcessingCenterCache.Persist(PXDBOperation.Insert);
            }
        }