private static void DoLoadCards(CreditCardsFilter filter) { CCSynchronizeCards graph = PXGraph.CreateInstance <CCSynchronizeCards>(); filter.EnableCustomerPaymentDialog = false; graph.Filter.Current = filter; if (!graph.ValidateLoadCardsAction()) { int newCardsCnt = graph.GetCardsAllProfiles(); if (newCardsCnt > 0) { foreach (CCSynchronizeCard syncCard in graph.CustomerCardPaymentData.Cache.Inserted) { if (syncCard.NoteID.HasValue) { ProcessingInfo.AppendProcessingInfo(syncCard.NoteID.Value, Messages.LoadCardCompleted); } } try { graph.Persist(); } catch { ProcessingInfo.ClearProcessingRows(); throw; } } } }
public CCSynchronizeCards() { CustomerCardPaymentData.SetBeforeScheduleAddAction(() => Filter.Current.ScheduledServiceSync = true ); CustomerCardPaymentData.SetAfterScheduleAddAction(() => Filter.Current.ScheduledServiceSync = false ); CustomerCardPaymentData.SetBeforeScheduleProcessAllAction(() => Filter.Current.IsScheduleProcess = true ); CreditCardsFilter filter = Filter.Current; CustomerCardPaymentData.SetProcessDelegate((List <CCSynchronizeCard> items) => { if (filter.IsScheduleProcess.GetValueOrDefault() == true && filter.ScheduledServiceSync.GetValueOrDefault() == true) { DoLoadCards(filter); } else { DoImportCards(items); } }); }
protected virtual IEnumerable loadCards(PXAdapter adapter) { CreditCardsFilter filter = Filter.Current; filter.EnableCustomerPaymentDialog = false; CCProcessingHelper.CheckHttpsConnection(); if (!ValidateLoadCardsAction()) { int rowCnt = CustomerCardPaymentData.Select().Count; if (rowCnt == 0 || !adapter.ExternalCall || Filter.Ask(CA.Messages.RelodCardDataDialogMsg, MessageButtons.YesNo) == WebDialogResult.Yes) { PXLongOperation.StartOperation(this, delegate { int newCardsCnt = GetCardsAllProfiles(); if (newCardsCnt > 0) { this.Persist(); } }); } } return(adapter.Get()); }
private int GetCardsAllProfiles() { CreditCardsFilter filter = Filter.Current; string processingCenter = filter.ProcessingCenterId; CreditCardReceiverFactory factory = new CreditCardReceiverFactory(filter); CCSynchronizeCardManager syncronizeCardManager = new CCSynchronizeCardManager(this, processingCenter, factory); Dictionary <string, CustomerData> customerDatas = syncronizeCardManager.GetCustomerProfilesFromService(); syncronizeCardManager.SetCustomerProfileIds(customerDatas.Select(i => i.Key)); Dictionary <string, CustomerCreditCard> unsyncCustomerCreditCards = syncronizeCardManager.GetUnsynchronizedPaymentProfiles(); int unsyncCardCnt = 0; foreach (var item in unsyncCustomerCreditCards) { List <CCSynchronizeCard> alreadyAdded = GetExistedSyncCardEntriesByCustomerCCPID(item.Key, processingCenter); CustomerCreditCard cards = item.Value; foreach (CreditCardData card in cards.CreditCards) { if (CheckNotImportedRecordExists(cards.CustomerProfileId, card.PaymentProfileID, alreadyAdded)) { continue; } CCSynchronizeCard syncCard = new CCSynchronizeCard(); CustomerData customerData = customerDatas[cards.CustomerProfileId]; string cardNumber = card.CardNumber.Trim('X'); FormatMaskedCardNum(syncCard, cardNumber); syncCard.CCProcessingCenterID = processingCenter; syncCard.CustomerCCPID = cards.CustomerProfileId; syncCard.CustomerCCPIDHash = CCSynchronizeCard.GetSha1HashString(syncCard.CustomerCCPID); syncCard.PaymentCCPID = card.PaymentProfileID; syncCard.PCCustomerID = customerData.CustomerCD; syncCard.PCCustomerDescription = customerData.CustomerName; syncCard.PCCustomerEmail = customerData.Email; if (card.CardExpirationDate != null) { syncCard.ExpirationDate = card.CardExpirationDate.Value; } if (card.AddressData != null) { AddressData addrData = card.AddressData; syncCard.FirstName = addrData.FirstName; syncCard.LastName = addrData.LastName; } CustomerCardPaymentData.Insert(syncCard); unsyncCardCnt++; } } return(unsyncCardCnt); }
public IEnumerable customerCardPaymentData() { PXResultset <CCSynchronizeCard> resultSet = new PXResultset <CCSynchronizeCard>(); CreditCardsFilter filter = Filter.Current; if (filter.ProcessingCenterId != null) { resultSet = GetSyncCardsByProcCenter(filter.ProcessingCenterId); foreach (CCSynchronizeCard res in resultSet) { yield return(res); } } }
private bool ValidateLoadCardsAction() { bool errorOccured = false; CreditCardsFilter filter = Filter.Current; string processingCenter = filter.ProcessingCenterId; if (processingCenter == null && filter.ScheduledServiceSync.GetValueOrDefault() == true) { throw new PXException(Messages.ProcessingCenterNotSelected); } if (processingCenter == null) { Filter.Cache.RaiseExceptionHandling <CreditCardsFilter.processingCenterId>(filter, filter.ProcessingCenterId, new PXSetPropertyException(Messages.ProcessingCenterNotSelected)); errorOccured = true; } return(errorOccured); }
public void CreditCardsFilter_RowSelected(PXCache sender, PXRowSelectedEventArgs args) { CreditCardsFilter filter = args.Row as CreditCardsFilter; if (filter == null) { return; } CustomerCardPaymentData.AllowInsert = false; CustomerCardPaymentData.AllowDelete = false; PXButtonState buttonState = (PXButtonState)Actions["Process"].GetState(Filter.Current); bool enabled = buttonState.Visible && buttonState.Enabled; SetDefaultPaymentMethod.SetEnabled(enabled); LoadCards.SetEnabled(enabled); Save.SetEnabled(string.IsNullOrEmpty(filter.ProcessingCenterId) ? false : true); PXCache cache = Caches[typeof(CustomerPaymentMethod)]; PXUIFieldAttribute.SetVisible <CustomerPaymentMethod.customerCCPID>(cache, null, true); PXUIFieldAttribute.SetVisible <CreditCardsFilter.scheduledServiceSync>(sender, null, false); }
protected virtual IEnumerable setDefaultPaymentMethod(PXAdapter adapter) { CreditCardsFilter filter = Filter.Current; if (!adapter.ExternalCall || PMFilter.AskExt((graph, vName) => filter.OverwritePaymentMethod = false) == WebDialogResult.OK) { string paymentMethod = filter.PaymentMethodId; PXFilterRow[] filterRows = CustomerCardPaymentData.View.GetExternalFilters(); int startRow = 0; int totalRows = 0; IEnumerable <CCSynchronizeCard> retList = CustomerCardPaymentData.View.Select(null, null, null, null, null, filterRows, ref startRow, 0, ref totalRows).OfType <CCSynchronizeCard>(); foreach (CCSynchronizeCard item in retList) { if (filter.OverwritePaymentMethod.GetValueOrDefault() == true || item.PaymentMethodID == null) { item.PaymentMethodID = paymentMethod; CustomerCardPaymentData.Update(item); } } } return(adapter.Get()); }