Outreach Merchandise Store: Difference between revisions

From Hive13 Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 10: Line 10:
*The record includes a link to current in-process realization implementation progress over time
*The record includes a link to current in-process realization implementation progress over time
*The final financial realization for each vote in the list will tie to the monthly financial accounting records and the updated budgets
*The final financial realization for each vote in the list will tie to the monthly financial accounting records and the updated budgets
*[<div id="smart-button-container">
      <div style="text-align: center;">
        <div style="margin-bottom: 1.25rem;">
          <p>T-shirt 202204 (size, color)</p>
          <select id="item-options"><option value="" price="15"> - 15 USD</option></select>
          <select style="visibility: hidden" id="quantitySelect"><option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option></select>
        </div>
      <div id="paypal-button-container"></div>
      </div>
    </div>
    <script src="https://www.paypal.com/sdk/js?client-id=sb&enable-funding=venmo&currency=USD" data-sdk-integration-source="button-factory"></script>
    <script>
      function initPayPalButton() {
        var shipping = 0;
        var itemOptions = document.querySelector("#smart-button-container #item-options");
    var quantity = parseInt(4);
    var quantitySelect = document.querySelector("#smart-button-container #quantitySelect");
    if (!isNaN(quantity)) {
      quantitySelect.style.visibility = "visible";
    }
    var orderDescription = 'T-shirt 202204 (size, color)';
    if(orderDescription === '') {
      orderDescription = 'Item';
    }
    paypal.Buttons({
      style: {
        shape: 'rect',
        color: 'gold',
        layout: 'vertical',
        label: 'paypal',
       
      },
      createOrder: function(data, actions) {
        var selectedItemDescription = itemOptions.options[itemOptions.selectedIndex].value;
        var selectedItemPrice = parseFloat(itemOptions.options[itemOptions.selectedIndex].getAttribute("price"));
        var tax = (7.8 === 0 || false) ? 0 : (selectedItemPrice * (parseFloat(7.8)/100));
        if(quantitySelect.options.length > 0) {
          quantity = parseInt(quantitySelect.options[quantitySelect.selectedIndex].value);
        } else {
          quantity = 1;
        }
        tax *= quantity;
        tax = Math.round(tax * 100) / 100;
        var priceTotal = quantity * selectedItemPrice + parseFloat(shipping) + tax;
        priceTotal = Math.round(priceTotal * 100) / 100;
        var itemTotalValue = Math.round((selectedItemPrice * quantity) * 100) / 100;
        return actions.order.create({
          purchase_units: [{
            description: orderDescription,
            amount: {
              currency_code: 'USD',
              value: priceTotal,
              breakdown: {
                item_total: {
                  currency_code: 'USD',
                  value: itemTotalValue,
                },
                shipping: {
                  currency_code: 'USD',
                  value: shipping,
                },
                tax_total: {
                  currency_code: 'USD',
                  value: tax,
                }
              }
            },
            items: [{
              name: selectedItemDescription,
              unit_amount: {
                currency_code: 'USD',
                value: selectedItemPrice,
              },
              quantity: quantity
            }]
          }]
        });
      },
      onApprove: function(data, actions) {
        return actions.order.capture().then(function(orderData) {
         
          // Full available details
          console.log('Capture result', orderData, JSON.stringify(orderData, null, 2));
          // Show a success message within this page, e.g.
          const element = document.getElementById('paypal-button-container');
          element.innerHTML = '';
          element.innerHTML = '<h3>Thank you for your payment!</h3>';
          // Or go to another URL:  actions.redirect('thank_you.html');
        });
      },
      onError: function(err) {
        console.log(err);
      },
    }).render('#paypal-button-container');
  }
  initPayPalButton();
    </script> Buy 202204 T-shirt(s)]

Revision as of 09:18, 26 April 2022

Outreach Merchandise Store

The goal is to have total transparency, with regularly reported, documented, tracable, auditable, "easy-to-request" and "easy-to-accomplish" treasurer accounting showing the status of reimbursements for member voted expenditures.

  • Each voted expenditure in this list is assigned a sequential ID number in the form (yyyymmdd)
  • If there are multiple votes on a single meeting night the assigned ID number includes a suffix letter (a, b, c, ...) in the form yyyymmdda, yyyymmddb, yyyymmddc, etc.
  • Each vote sequential ID number shown in this list links to the meeting minutes from the week of the vote
  • The descriptive name for the vote links to the google group discussion thread for reference.
  • Each entry includes fields showing the PASSED outcome, and added detail such as IN-PROCESS, COMPLETED, etc. with dates
  • The record includes a link to current in-process realization implementation progress over time
  • The final financial realization for each vote in the list will tie to the monthly financial accounting records and the updated budgets