From 81ec11834779695fdf33cf706e09436ca5678381 Mon Sep 17 00:00:00 2001 From: Karl Cordes Date: Thu, 15 Jun 2023 07:31:41 +1000 Subject: [PATCH] 64 - editable payment terms --- app/controllers/documents_controller.php | 5 +++++ app/controllers/quotes_controller.php | 12 +++++++++++- app/models/job.php | 7 ++++++- app/views/customers/edit.ctp | 16 +++++++++++++++- app/views/elements/document_invoice_view.ctp | 6 ++++++ app/views/elements/document_orderack_view.ctp | 6 ++++++ app/views/elements/document_packinglist_view.ctp | 6 ++++++ app/views/elements/payment_terms_box.ctp | 2 +- app/views/quotes/edit.ctp | 10 ++++++++-- app/views/quotes/payment_details.ctp | 3 +++ app/views/quotes/payment_terms.ctp | 3 +++ app/webroot/js/document_add_edit.js | 15 ++++++++++++--- 12 files changed, 82 insertions(+), 9 deletions(-) create mode 100644 app/views/quotes/payment_details.ctp create mode 100644 app/views/quotes/payment_terms.ctp diff --git a/app/controllers/documents_controller.php b/app/controllers/documents_controller.php index e072d1c0..eca617ba 100755 --- a/app/controllers/documents_controller.php +++ b/app/controllers/documents_controller.php @@ -626,6 +626,11 @@ ENDINSTRUCTIONS; $newDoc['Document']['shipping_details'] = $this->defaultShippingText; + $newDoc['Document']['doc_page_count'] = 0; + $newDoc['Document']['cmc_reference'] = ''; + $newDoc['Document']['pdf_filename'] = ''; + $newDoc['Document']['pdf_created_at'] = '0000-00-00 00:00:00'; + $newDoc['Document']['pdf_created_at'] = 0; $newDoc['OrderAcknowledgement']['fob'] = $this->defaultFOB; diff --git a/app/controllers/quotes_controller.php b/app/controllers/quotes_controller.php index 2c846592..cf8ec7bc 100755 --- a/app/controllers/quotes_controller.php +++ b/app/controllers/quotes_controller.php @@ -63,6 +63,7 @@ class QuotesController extends AppController { $this->set(compact('enquiry', 'quote', 'currencies')); $this->set('cityCountryList', $this->Quote->Enquiry->Principle->getCityCountryList()); + $this->set('quoteID', $id); } @@ -297,6 +298,15 @@ class QuotesController extends AppController { } + // #64 - ability to customise payment terms dropdown box. + // jquery is hopelessly out of date, so trying htmx for novelty. + function paymentTerms($id = null) { + $this->layout = 'ajax'; + + $quote = $this->Quote->read(null, $id); + $this->data = $quote; + } + } -?> \ No newline at end of file +?> diff --git a/app/models/job.php b/app/models/job.php index 18bb6759..6cc46b12 100755 --- a/app/models/job.php +++ b/app/models/job.php @@ -88,6 +88,11 @@ class Job extends AppModel { $newJob['Job']['contact_id'] = $enquiry['Enquiry']['contact_id']; $newJob['Job']['enquiry_id'] = $enquiry['Enquiry']['id']; $newJob['Job']['date_order_received'] = date('Y-m-d'); + $newJob['Job']['all_sent'] = 0; + $newJob['Job']['all_paid'] = 0; + $newJob['Job']['comments'] = ''; + + if(!empty($customerOrderNumber)) { $newJob['Job']['customer_order_number'] = $customerOrderNumber; @@ -104,4 +109,4 @@ class Job extends AppModel { } -?> \ No newline at end of file +?> diff --git a/app/views/customers/edit.ctp b/app/views/customers/edit.ctp index 70bc683c..c4b6fbb3 100755 --- a/app/views/customers/edit.ctp +++ b/app/views/customers/edit.ctp @@ -1,3 +1,6 @@ +link('customer_edit'); ?> + +
create('Customer');?>
@@ -6,7 +9,18 @@ echo $form->input('id'); echo $form->input('name'); echo $form->input('abn'); - echo $this->element('payment_terms_box'); + //echo $this->element('payment_terms_box'); +?> +
+input('payment_terms'); echo $form->input('discount_pricing_policies', array('label'=>'Discount and Pricing Policies')); echo $form->input('notes'); echo $form->input('url', array('label'=>'Website URL')); diff --git a/app/views/elements/document_invoice_view.ctp b/app/views/elements/document_invoice_view.ctp index 9a830f01..20970ace 100755 --- a/app/views/elements/document_invoice_view.ctp +++ b/app/views/elements/document_invoice_view.ctp @@ -43,6 +43,12 @@ echo $form->input('Invoice.ship_via'); echo $form->input('Invoice.fob'); + ?> +
Payment terms:
+ + input('Document.shipping_details', array('id'=>'shippingDetails')); echo $form->end(array('label'=>'Save Invoice Details', 'id'=>'saveInvoiceButton')); ?> diff --git a/app/views/elements/document_orderack_view.ctp b/app/views/elements/document_orderack_view.ctp index ac807596..7ddb13ac 100755 --- a/app/views/elements/document_orderack_view.ctp +++ b/app/views/elements/document_orderack_view.ctp @@ -44,6 +44,12 @@ echo $form->input('OrderAcknowledgement.ship_via'); echo $form->input('OrderAcknowledgement.fob'); + ?> +
Payment terms:
+ + input('OrderAcknowledgement.estimated_delivery'); echo $form->input('OrderAcknowledgement.signature_required', array('options' => array('1' => 'Yes', '0' => 'No'))); echo $form->input('Document.shipping_details', array('id'=>'shippingDetails')); diff --git a/app/views/elements/document_packinglist_view.ctp b/app/views/elements/document_packinglist_view.ctp index 051c5a6b..741da932 100755 --- a/app/views/elements/document_packinglist_view.ctp +++ b/app/views/elements/document_packinglist_view.ctp @@ -28,6 +28,12 @@ echo $form->input('PackingList.fob'); + ?> +
Payment terms:
+ + input('Document.shipping_details', array('id'=>'shippingDetails')); echo $form->end(array('label'=>'Save PackingList Details', 'id'=>'savePackingListButton')); ?> diff --git a/app/views/elements/payment_terms_box.ctp b/app/views/elements/payment_terms_box.ctp index e5477d24..17eb2f3c 100755 --- a/app/views/elements/payment_terms_box.ctp +++ b/app/views/elements/payment_terms_box.ctp @@ -1,5 +1,5 @@ input('payment_terms', array('empty'=>'Select the Terms of Payment', 'options' => array( +echo $form->input('payment_terms', array('id'=>'paymentTermsOptions', 'empty'=>'Select the Terms of Payment', 'options' => array( '100% Payment with Order' => '100% Payment with Order', 'Net 7 Days for Approved Accounts' => 'Net 7 Days for Approved Accounts', 'Net 14 Days for Approved Accounts' => 'Net 14 Days for Approved Accounts', diff --git a/app/views/quotes/edit.ctp b/app/views/quotes/edit.ctp index c70ee888..fc04fbc6 100755 --- a/app/views/quotes/edit.ctp +++ b/app/views/quotes/edit.ctp @@ -50,14 +50,20 @@ echo $form->input('currency_id'); echo $form->input('revision', array('type'=>'hidden')); echo $form->input('delivery_time'); echo $form->input('delivery_time_frame',array('type'=>'select', 'empty'=>'Choose Delivery Time Frame', 'options'=>array('WORKING DAYS'=>'WORKING DAYS', 'WORKING WEEKS'=>'WORKING WEEKS'))); - -echo $form->input('payment_terms', array('empty'=>'Select the Terms of Payment', 'options' => array( +?> +
+input('payment_terms_options', array('empty'=>'Select the Terms of Payment', 'options' => array( '100% Payment with Order' => '100% Payment with Order', 'Net 7 Days for Approved Accounts' => 'Net 7 Days for Approved Accounts', 'Net 14 Days for Approved Accounts' => 'Net 14 Days for Approved Accounts', 'Net 30 Days for Approved Accounts' => 'Net 30 Days for Approved Accounts', 'SEE PAGE 1 FOR DETAILS' => 'SEE PAGE 1 FOR DETAILS' ))); +?> +
+input('Quote.payment_terms'); + echo $form->input('days_valid'); echo $form->input('date_issued_display', array('id'=>'date_issued_display', 'label'=>'Date Issued', 'value'=>$this->element('isEmptyDate', array('date'=>$this->data['Quote']['date_issued'])))); echo $form->input('date_issued', array('type'=>'hidden', 'id'=>'date_issued')); diff --git a/app/views/quotes/payment_details.ctp b/app/views/quotes/payment_details.ctp new file mode 100644 index 00000000..92044425 --- /dev/null +++ b/app/views/quotes/payment_details.ctp @@ -0,0 +1,3 @@ +input('payment_terms'); +?> \ No newline at end of file diff --git a/app/views/quotes/payment_terms.ctp b/app/views/quotes/payment_terms.ctp new file mode 100644 index 00000000..0ca6d2ad --- /dev/null +++ b/app/views/quotes/payment_terms.ctp @@ -0,0 +1,3 @@ +input('Quote.payment_terms'); +?> \ No newline at end of file diff --git a/app/webroot/js/document_add_edit.js b/app/webroot/js/document_add_edit.js index d0ff95a0..0b473abb 100755 --- a/app/webroot/js/document_add_edit.js +++ b/app/webroot/js/document_add_edit.js @@ -434,12 +434,21 @@ $(function() { }); $.get('/quotes/edit/'+quoteID, function(data) { - $("#QuoteDetails").html(data); - $('#QuoteCommercialComments').ckeditor(config); - $("#QuoteDetails").dialog('open'); + $("#QuoteDetails").html(data); + $('#QuoteCommercialComments').ckeditor(config); + $("#QuoteDetails").dialog('open'); }); }); + + + // Fairly quick and easy way to make this select box editable. Good enough. + $("#QuotePaymentTermsOptions").live('change', function(data) { + selectedOption = $("#QuotePaymentTermsOptions").val(); + $("#QuotePaymentTerms").val(selectedOption); + console.log(selectedOption); + }); + $("#generateFirstPage").click(function() {