From: Steve Sutton Date: Thu, 9 May 2019 20:57:57 +0000 (-0400) Subject: Getting dynamic amounts to work on create invoice page. X-Git-Url: http://cvs2.gaslightmedia.com/gitweb/?a=commitdiff_plain;h=1b8df67644a442363180a339a2b5cfc27b151a20;p=WP-Plugins%2Fglm-member-db-billing.git Getting dynamic amounts to work on create invoice page. Need testing plus edit invoice testing. --- diff --git a/models/admin/billing/invoices.php b/models/admin/billing/invoices.php index 2b23b10..f26d6e6 100644 --- a/models/admin/billing/invoices.php +++ b/models/admin/billing/invoices.php @@ -134,7 +134,6 @@ class GlmMembersAdmin_billing_invoices extends GlmDataInvoices $filterOverdue = false; $counties = false; $paymentTypes = false; - $invoiceTypes = false; $invoiceSent = false; // Get any provided option @@ -199,9 +198,10 @@ 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'], + 'dynamic_amount' => $invoiceType['dynamic_amount'], ); } $invoiceTypeJSON = json_encode( $invTypes, JSON_NUMERIC_CHECK ); @@ -249,9 +249,10 @@ 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'], + 'dynamic_amount' => $invoiceType['dynamic_amount'], ); } $invoiceTypeJSON = json_encode( $invTypes, JSON_NUMERIC_CHECK ); diff --git a/views/admin/billing/editInvoice.html b/views/admin/billing/editInvoice.html index b568826..199ea6e 100644 --- a/views/admin/billing/editInvoice.html +++ b/views/admin/billing/editInvoice.html @@ -222,11 +222,13 @@ {/if} {$parent = $inv.parent.value} {if $inv.parent.value == 0 && $inv.amount != '0.00'} - - {else if ($inv.parent.value == 0 && $inv.amount == '0.00')} + + {else if ($inv.parent.value == 0 && $inv.amount == '0.00' && $inv.dynamic_amount.value == 0)} + {else if ($inv.parent.value == 0 && $inv.amount == '0.00')} + {else if ($inv.parent.value != 0)} - + {/if} {/foreach} @@ -426,6 +428,11 @@ jQuery(document).ready(function($){ } else { // Check first to see if this line_item_type is already in line_items. if ( !isLineItem( selectedLineItem ) ) { + var dynamic_price = $( 'input[name="dynamic_price"]' ).val(); // Dynamic price line item + console.log( 'dynamic_price:', dynamic_price ); + if ( dynamic_price ) { + selectedLineItem.amount = parseFloat( dynamic_price ); + } // See if there's a discount if ( discount_amount ) { selectedLineItem.discount = parseInt( discount_amount.val() ); @@ -491,7 +498,13 @@ jQuery(document).ready(function($){ $('#line_item_price').html( '' ); $('#new-line-item').addClass( 'glm-hidden' ); } else { - $('#line_item_price').html( '$' + $('#line_item_type option:selected').data( 'price') ); + var price = $('#line_item_type option:selected').data( 'price'); + var dynamic_amount = $('#line_item_type option:selected').data( 'dynamic' ); + if ( dynamic_amount ) { + $('#line_item_price').html( '' ); + } else { + $('#line_item_price').html( '$' + price ); + } $('#new-line-item').addClass( 'glm-hidden' ); } });