From f38f69ecd66041de9fedf550827fd705e7ab36c8 Mon Sep 17 00:00:00 2001 From: Steve Sutton Date: Thu, 11 Apr 2019 13:32:36 -0400 Subject: [PATCH] wrap up the discount line item Adding field for line item discount. --- index.php | 2 +- models/admin/billing/invoices.php | 36 +++++- ...0.0.36.sql => create_database_V0.0.37.sql} | 3 +- setup/databaseScripts/dbVersions.php | 1 + .../update_database_V0.0.36.sql | 4 +- .../update_database_V0.0.37.sql | 9 ++ views/admin/billing/editInvoice.html | 115 ++++++------------ views/front/billing/paymentForm.html | 27 +--- 8 files changed, 87 insertions(+), 110 deletions(-) rename setup/databaseScripts/{create_database_V0.0.36.sql => create_database_V0.0.37.sql} (99%) create mode 100644 setup/databaseScripts/update_database_V0.0.37.sql diff --git a/index.php b/index.php index a3950da..27f39d0 100644 --- a/index.php +++ b/index.php @@ -38,7 +38,7 @@ * version from this plugin. */ define('GLM_MEMBERS_BILLING_PLUGIN_VERSION', '1.0.26'); -define('GLM_MEMBERS_BILLING_PLUGIN_DB_VERSION', '0.0.36'); +define('GLM_MEMBERS_BILLING_PLUGIN_DB_VERSION', '0.0.37'); // This is the minimum version of the GLM Members DB plugin require for this plugin. define('GLM_MEMBERS_BILLING_PLUGIN_MIN_MEMBERS_REQUIRED_VERSION', '2.8.0'); diff --git a/models/admin/billing/invoices.php b/models/admin/billing/invoices.php index 31a003f..f478d10 100644 --- a/models/admin/billing/invoices.php +++ b/models/admin/billing/invoices.php @@ -194,6 +194,7 @@ class GlmMembersAdmin_billing_invoices extends GlmDataInvoices $lineItems = $BillingSupport->getLineItemsForInvoice( $this->invoice_id ); // Sort the types by parent child $invoiceTypes = $InvoiceTypesObj->sortParentChild($invoiceTypes); + // echo '
$invoiceTypes: ' . print_r( $invoiceTypes, true ) . '
'; if ( isset( $invoiceTypes ) ) { foreach ( $invoiceTypes as $invoiceType ) { $invTypes[$invoiceType['id']] = array( @@ -204,6 +205,17 @@ class GlmMembersAdmin_billing_invoices extends GlmDataInvoices } $invoiceTypeJSON = json_encode( $invTypes, JSON_NUMERIC_CHECK ); } + if ( isset( $lineItems ) ) { + foreach ( $lineItems as $lineItem ) { + $lineItemJson[$lineItem['line_item_type']] = array( + 'id' => $lineItem['line_item_type'], + 'name' => $lineItem['name'], + 'amount' => $lineItem['amount'], + 'discount' => $lineItem['discount'], + ); + } + $lineItemJSON = json_encode( $lineItemJson, JSON_NUMERIC_CHECK ); + } } // show error? break; @@ -275,19 +287,21 @@ class GlmMembersAdmin_billing_invoices extends GlmDataInvoices 'line_item_type' => $line_item, 'name' => $_REQUEST['line_item_name'][$line_item], 'amount' => $_REQUEST['line_item_amount'][$line_item], + 'discount' => $_REQUEST['line_item_discount'][$line_item], 'quantity' => $_REQUEST['line_item_qty'][$line_item], 'total' => (float)$_REQUEST['line_item_qty'][$line_item] * (float)$_REQUEST['line_item_amount'][$line_item], 'created' => date('Y-m-d'), 'first_due_date' => $_REQUEST['due_date'], 'next_due_date' => $_REQUEST['due_date'], 'recurring' => $invoiceType['recurring']['value'], - 'recurrence' => $invoiceType['recurrence'] + 'recurrence' => $invoiceType['recurrence'], ), array( '%d', // invoice '%d', // line_item_type '%s', // name '%s', // amount + '%d', // discount '%d', // quantity '%d', // total '%s', // created @@ -371,9 +385,9 @@ class GlmMembersAdmin_billing_invoices extends GlmDataInvoices if ( isset( $invoiceTypes ) ) { foreach ( $invoiceTypes as $invoiceType ) { $invTypes[$invoiceType['id']] = array( - 'id' => $invoiceType['id'], - 'name' => $invoiceType['name'], - 'amount' => $invoiceType['amount'], + 'id' => $invoiceType['id'], + 'name' => $invoiceType['name'], + 'amount' => $invoiceType['amount'], ); } $invoiceTypeJSON = json_encode( $invTypes, true ); @@ -423,6 +437,7 @@ class GlmMembersAdmin_billing_invoices extends GlmDataInvoices 'line_item_type' => $line_item, 'name' => $_REQUEST['line_item_name'][$line_item], 'amount' => $_REQUEST['line_item_amount'][$line_item], + 'discount' => $_REQUEST['line_item_discount'][$line_item], 'quantity' => $_REQUEST['line_item_qty'][$line_item], 'total' => (float)$_REQUEST['line_item_qty'][$line_item] * (float)$_REQUEST['line_item_amount'][$line_item], 'created' => date('Y-m-d'), @@ -437,6 +452,7 @@ class GlmMembersAdmin_billing_invoices extends GlmDataInvoices '%d', // line_item_type '%s', // name '%s', // amount + '%d', // discount '%d', // quantity '%d', // total '%s', // created @@ -481,6 +497,17 @@ class GlmMembersAdmin_billing_invoices extends GlmDataInvoices } $invoiceTypeJSON = json_encode( $invTypes, JSON_NUMERIC_CHECK ); } + if ( isset( $lineItems ) ) { + foreach ( $lineItems as $lineItem ) { + $lineItemJson[$lineItem['line_item_type']] = array( + 'id' => $lineItem['line_item_type'], + 'name' => $lineItem['name'], + 'amount' => $lineItem['amount'], + 'discount' => $lineItem['discount'], + ); + } + $lineItemJSON = json_encode( $lineItemJson, JSON_NUMERIC_CHECK ); + } } else { $invoiceUpdateError = true; @@ -695,6 +722,7 @@ class GlmMembersAdmin_billing_invoices extends GlmDataInvoices 'start' => $start = 1, 'limit' => $limit, 'invoiceTypeJSON' => $invoiceTypeJSON, + 'lineItemJSON' => $lineItemJSON, 'invoiceTypes' => $invoiceTypes, 'accounts' => $accounts, 'billingAccount' => $billingAccount, diff --git a/setup/databaseScripts/create_database_V0.0.36.sql b/setup/databaseScripts/create_database_V0.0.37.sql similarity index 99% rename from setup/databaseScripts/create_database_V0.0.36.sql rename to setup/databaseScripts/create_database_V0.0.37.sql index 63233a6..1ccb218 100644 --- a/setup/databaseScripts/create_database_V0.0.36.sql +++ b/setup/databaseScripts/create_database_V0.0.37.sql @@ -1,6 +1,6 @@ -- Gaslight Media Billing Module -- File Created: 02/19/2019 --- Database Version: 0.0.36 +-- Database Version: 0.0.37 -- Database Creation Script -- -- To permit each query below to be executed separately, @@ -118,6 +118,7 @@ CREATE TABLE {prefix}line_items ( name TEXT NOT NULL, -- line item name amount DECIMAL(8,2) DEFAULT '0.00', -- line item amount per item quantity INT DEFAULT 1, -- quantity + discount INT DEFAULT 0, -- Discount Percentage total DECIMAL(8,2) DEFAULT '0.00', -- line item total recurring BOOLEAN DEFAULT '0', -- true/false if recurring recurrence INT NULL DEFAULT 0, -- recurrence type diff --git a/setup/databaseScripts/dbVersions.php b/setup/databaseScripts/dbVersions.php index fdff678..7d7a871 100644 --- a/setup/databaseScripts/dbVersions.php +++ b/setup/databaseScripts/dbVersions.php @@ -50,5 +50,6 @@ $glmMembersBillingDbVersions = array( '0.0.34' => array('version' => '0.0.34', 'tables' => 16, 'date' => '03/19/2019'), '0.0.35' => array('version' => '0.0.35', 'tables' => 16, 'date' => '03/20/2019'), '0.0.36' => array('version' => '0.0.36', 'tables' => 16, 'date' => '04/02/2019'), + '0.0.37' => array('version' => '0.0.37', 'tables' => 16, 'date' => '04/11/2019'), ); diff --git a/setup/databaseScripts/update_database_V0.0.36.sql b/setup/databaseScripts/update_database_V0.0.36.sql index ef5f64d..7317f0d 100644 --- a/setup/databaseScripts/update_database_V0.0.36.sql +++ b/setup/databaseScripts/update_database_V0.0.36.sql @@ -1,6 +1,6 @@ -- Gaslight Media Billing Database --- File Created: 12/26/2018 --- Database Version: 0.0.32 +-- File Created: 04/02/2019 +-- Database Version: 0.0.36 -- -- To permit each query below to be executed separately, -- all queries must be separated by a line with four dashes diff --git a/setup/databaseScripts/update_database_V0.0.37.sql b/setup/databaseScripts/update_database_V0.0.37.sql new file mode 100644 index 0000000..9a50cf6 --- /dev/null +++ b/setup/databaseScripts/update_database_V0.0.37.sql @@ -0,0 +1,9 @@ +-- Gaslight Media Billing Database +-- File Created: 04/11/2019 +-- Database Version: 0.0.37 +-- +-- To permit each query below to be executed separately, +-- all queries must be separated by a line with four dashes + +-- Update the line_items table +ALTER TABLE {prefix}line_items ADD discount INT DEFAULT 0; -- Discount Percentage diff --git a/views/admin/billing/editInvoice.html b/views/admin/billing/editInvoice.html index 58e2e46..b568826 100644 --- a/views/admin/billing/editInvoice.html +++ b/views/admin/billing/editInvoice.html @@ -59,7 +59,6 @@
Add Line Item
Create New Line Item - Add Discount
@@ -236,6 +235,10 @@

+ + Discount + % + @@ -266,16 +269,6 @@ -{* Add Discount Form *} -
-

* Required!

- - - - - -
Discount Amount
Numbers only (999.99)
-