def add_recurring_donation(contact=None, form=None, customer=None, quarantine=False): """ This will add a recurring donation to Salesforce. """ if form["installment_period"] is None: raise Exception("installment_period must have a value") rdo = RDO(contact=contact) rdo.stripe_customer = customer["id"] rdo.campaign_id = form["campaign_id"] rdo.referral_id = form["referral_id"] rdo.description = "Texas Tribune Sustaining Membership" rdo.agreed_to_pay_fees = form["pay_fees_value"] rdo.encouraged_by = form["reason"] rdo.lead_source = "Stripe" rdo.amount = form.get("amount", 0) rdo.installments = None rdo.installment_period = form["installment_period"] rdo.open_ended_status = "Open" rdo.quarantined = quarantine apply_card_details(rdo=rdo, customer=customer) rdo.save() return rdo
def add_business_rdo(account=None, form=None, customer=None, quarantine=False): """ Adds a recurring business membership to Salesforce. """ if form["installment_period"] is None: raise Exception("installment_period must have a value") year = datetime.now(tz=ZONE).strftime("%Y") rdo = RDO(account=account) rdo.name = f"{year} Business {account.name} Recurring" rdo.type = "Business Membership" rdo.record_type_name = "Business Membership" rdo.stripe_customer = customer["id"] rdo.campaign_id = form["campaign_id"] rdo.referral_id = form["referral_id"] rdo.description = "Texas Tribune Business Membership" rdo.agreed_to_pay_fees = form["pay_fees_value"] rdo.encouraged_by = form["reason"] rdo.lead_source = "Stripe" rdo.amount = form.get("amount", 0) rdo.installments = None rdo.open_ended_status = "Open" rdo.installment_period = form["installment_period"] rdo.quarantined = quarantine apply_card_details(rdo=rdo, customer=customer) rdo.save() return rdo
def test__format_blast_rdo(): rdo = RDO(sf_connection=sf) rdo.referral_id = "1234" rdo.lead_source = "Stripe" rdo.contact_id = "0031700000BHQzBAAX" rdo.installment_period = "monthly" rdo.stripe_customer = "cus_78MqJSBejMN9gn" rdo.amount = 40 rdo.name = "foo" rdo.installments = 0 rdo.open_ended_status = "Open" rdo.description = "Monthly Blast Subscription" rdo.agreed_to_pay_fees = True rdo.type = "The Blast" rdo.billing_email = "*****@*****.**" rdo.blast_subscription_email = "*****@*****.**" rdo.quarantined = True response = rdo._format() expected_response = { "Referral_ID__c": "1234", "Encouraged_to_contribute_by__c": None, "npe03__Date_Established__c": today, "Lead_Source__c": "Stripe", "npe03__Contact__c": "0031700000BHQzBAAX", "npe03__Installment_Period__c": "monthly", "Stripe_Customer_ID__c": "cus_78MqJSBejMN9gn", "npe03__Amount__c": "40.00", "Name": "foo", "npe03__Installments__c": 0, "npe03__Open_Ended_Status__c": "Open", "Stripe_Description__c": "Monthly Blast Subscription", "Stripe_Agreed_to_pay_fees__c": True, "Type__c": "The Blast", "Billing_Email__c": "*****@*****.**", "Blast_Subscription_Email__c": "*****@*****.**", "npe03__Organization__c": None, "npe03__Recurring_Donation_Campaign__c": None, "Stripe_Card_Brand__c": None, "Stripe_Card_Last_4__c": None, "Stripe_Card_Expiration__c": None, "Quarantined__c": True, } response["Name"] = "foo" assert response == expected_response
def test__format_recurring_donation_decimal(): rdo = RDO(sf_connection=sf) rdo.referral_id = "1234" rdo.encouraged_by = "Because I love the Trib!" rdo.lead_source = "Stripe" rdo.contact_id = "0031700000BHQzBAAX" rdo.installment_period = "monthly" rdo.stripe_customer = "cus_78MqJSBejMN9gn" rdo.amount = 9.15 rdo.name = "foo" rdo.installments = 0 rdo.open_ended_status = None rdo.description = "Texas Tribune Membership" rdo.agreed_to_pay_fees = True rdo.quarantined = True response = rdo._format() expected_response = { "Referral_ID__c": "1234", "npe03__Organization__c": None, "Billing_Email__c": None, "Encouraged_to_contribute_by__c": "Because I love the Trib!", "npe03__Date_Established__c": today, "Lead_Source__c": "Stripe", "Blast_Subscription_Email__c": None, "npe03__Contact__c": "0031700000BHQzBAAX", "npe03__Installment_Period__c": "monthly", "Stripe_Customer_ID__c": "cus_78MqJSBejMN9gn", "npe03__Amount__c": "9.15", "Name": "foo", "npe03__Installments__c": 0, "npe03__Open_Ended_Status__c": None, "Stripe_Description__c": "Texas Tribune Membership", "Stripe_Agreed_to_pay_fees__c": True, "Type__c": "Recurring Donation", "npe03__Recurring_Donation_Campaign__c": None, "Stripe_Card_Brand__c": None, "Stripe_Card_Expiration__c": None, "Stripe_Card_Last_4__c": None, "Quarantined__c": True, } response["Name"] = "foo" assert response == expected_response
def add_circle_membership(contact=None, form=None, customer=None, quarantine=False): """ This will add Circle membership to Salesforce. """ if form["installment_period"] is None: raise Exception("installment_period must have a value") rdo = RDO(contact=contact) rdo.type = "Giving Circle" rdo.stripe_customer = customer["id"] rdo.campaign_id = form["campaign_id"] rdo.referral_id = form["referral_id"] rdo.description = "Texas Tribune Circle Membership" rdo.agreed_to_pay_fees = form["pay_fees_value"] rdo.encouraged_by = form["reason"] rdo.lead_source = "Stripe" rdo.amount = form.get("amount", 0) installment_period = form["installment_period"] if installment_period == "monthly": rdo.installments = 36 else: rdo.installments = 3 rdo.installment_period = installment_period rdo.open_ended_status = "None" rdo.quarantined = quarantine apply_card_details(rdo=rdo, customer=customer) rdo.save() return rdo