aboutsummaryrefslogtreecommitdiff
path: root/include/offers-overview.php
diff options
context:
space:
mode:
Diffstat (limited to 'include/offers-overview.php')
-rw-r--r--include/offers-overview.php285
1 files changed, 144 insertions, 141 deletions
diff --git a/include/offers-overview.php b/include/offers-overview.php
index 566f387..594f01c 100644
--- a/include/offers-overview.php
+++ b/include/offers-overview.php
@@ -19,151 +19,154 @@
?>
<div class="col-lg-12">
- <div class="panel panel-default">
- <div class="panel-heading">Overview</div>
- <div class="panel-body table-responsive">
- <table class="table table-bordered table-striped">
- <thead>
- <tr>
- <th>#</th>
- <th>Contact</th>
- <th>Assignments</th>
- <th>Dates</th>
- <th>Invoice</th>
- <th>Tools</th>
- </tr>
- </thead>
- <tbody>
- <?php
- $offers = BusinessAdmin::getOffers($_pdo);
- foreach ($offers as $offer) {
- $invoiceFile = $offer->getInvoiceFile();
+ <div class="panel panel-default">
+ <div class="panel-heading">Overview</div>
+ <div class="panel-body table-responsive">
+ <table class="table table-bordered table-striped">
+ <thead>
+ <tr>
+ <th>#</th>
+ <th>Contact</th>
+ <th>Assignments &amp; discounts</th>
+ <th>Dates</th>
+ <th>Invoice</th>
+ <th>Tools</th>
+ </tr>
+ </thead>
+ <tbody>
+ <?php
+ $offers = BusinessAdmin::getOffers($_pdo);
+ foreach ($offers as $offer) {
+ $invoiceFile = $offer->getInvoiceFile();
- echo "<tr>
- <td class='col-min-width'>{$offer->getId()}</td>
- <td class='col-min-width'><span title='{$offer->getContact()->getClient()->getName()}'>{$offer->getContact()->getName()}</span></td>
- <td class='col-max-width'>";
- foreach ($offer->getAssignments() as $assignment) {
- echo "<b>{$assignment->getTitle()}</b><br/><span class='smaller'>(".constants::invoice_valuta."{$assignment->calculate(assignment::SUBTOTAL)} excl. VAT, ".constants::invoice_valuta."{$assignment->calculate(assignment::TOTAL)} incl. VAT)</span><br/><p>{$assignment->getDescription()}</p>";
- }
- echo "</td>
- <td class='col-min-width'>
- <table>
- <tr>
- <th style='padding-right:1em;'>From:</th>
- <td><a href='#' class='editable' id='editable-offer-{$offer->getId()}-start_date' data-type='text' data-pk='{$offer->getId()}' data-url='".constants::url_external."offers/edit'>".BusinessAdmin::formatDate($offer->getStartDate(),false,true)."</a></td>
- </tr>
- <tr>
- <th style='padding-right:1em;'>To:</th>
- <td><a href='#' class='editable' id='editable-offer-{$offer->getId()}-end_date' data-type='text' data-pk='{$offer->getId()}' data-url='".constants::url_external."offers/edit'>".BusinessAdmin::formatDate($offer->getEndDate(),false,true)."</a></td>
- </tr>
- <tr>
- <th style='padding-right:1em;'>Invoice:</th>
- <td><a href='#' class='editable' id='editable-offer-{$offer->getId()}-invoice_date' data-type='text' data-pk='{$offer->getId()}' data-url='".constants::url_external."offers/edit'>".BusinessAdmin::formatDate($offer->getInvoiceDate(),false,true)."</a></td>
- </tr>
- <tr>
- <th style='padding-right:1em;'>Payment received:</th>
- <td><a href='#' class='editable' id='editable-offer-{$offer->getId()}-payment_received' data-type='text' data-pk='{$offer->getId()}' data-url='".constants::url_external."offers/edit'>".BusinessAdmin::formatDate($offer->getPaymentReceived(),false,true)."</a></td>
- </tr>
- </table>
- </td>
- <td class='col-min-width'>"
- . (($invoiceFile instanceof file)
- ? "<a title='View' href='{$invoiceFile->getFilenameURI()}' target='_blank' class='btn btn-default btn-circle fa fa-eye'></a>
- <a title='Regenerate' href='?generate_invoice={$offer->getId()}' class='btn btn-default btn-circle fa fa-refresh'></a>
- <a title='Trash' href='?trash_invoice={$offer->getId()}' class='btn btn-default btn-circle fa fa-trash'></a>"
- : "<a title='Create invoice' href='?generate_invoice={$offer->getId()}' class='btn btn-default btn-circle fa fa-calculator'></a>")
- . "<br/>
- <table>
- <tr>
- <th style='padding-right:1em;'>Subtotal:</th>
- <td>".constants::invoice_valuta."{$offer->calculate(offer::SUBTOTAL)}</td>
- </tr>
- <tr>
- <th style='padding-right:1em;'>VAT:</th>
- <td>".constants::invoice_valuta."{$offer->calculate(offer::VAT)}</td>
- <tr>
- </tr>
- <th style='padding-right:1em;'>Total:</th>
- <td>".constants::invoice_valuta."{$offer->calculate(offer::TOTAL)}</td>
- </tr>
- </table>
- </td>
- <td class='col-min-width'>
- <a title='" . ($offer->isAccepted() ? "Accepted" : "Not accepted") . "' href='?toggle_accept={$offer->getId()}' class='btn " . ($offer->isAccepted() ? "btn-success" : "btn-default") . " btn-circle fa fa-check'></a><a title='View' href='?id={$offer->getId()}' class='btn btn-primary btn-circle fa fa-arrow-right'></a><a title='Delete' href='?delete={$offer->getId()}' class='btn btn-danger btn-circle fa fa-times'></a>
- </td>
- </tr>";
- }
- if (count($offers) == 0) {
- echo "<tr><td colspan='6'>There are no offers in the database. Why not start with creating one, below?</td></tr>";
- }
- ?>
- </tbody>
- </table>
- </div>
- </div>
+ echo "<tr>
+ <td class='col-min-width'>{$offer->getId()}</td>
+ <td class='col-min-width'><span title='{$offer->getContact()->getClient()->getName()}'>{$offer->getContact()->getName()}</span></td>
+ <td class='col-max-width'>";
+ foreach ($offer->getAssignments() as $assignment) {
+ echo "<b>{$assignment->getTitle()}</b><br/><span class='smaller'>(".constants::invoice_valuta."{$assignment->calculate(assignment::SUBTOTAL)} excl. VAT, ".constants::invoice_valuta."{$assignment->calculate(assignment::TOTAL)} incl. VAT)</span><br/><p>{$assignment->getDescription()}</p>";
+ }
+ foreach ($offer->getDiscounts() as $discount) {
+ echo "<b>{$discount->getTitle()}</b><br/><span class='smaller'>(".constants::invoice_valuta."{$discount->calculate(discount::SUBTOTAL)} excl. VAT, ".constants::invoice_valuta."{$discount->calculate(discount::TOTAL)} incl. VAT)</span><br/><p>{$discount->getDescription()}</p>";
+ }
+ echo "</td>
+ <td class='col-min-width'>
+ <table>
+ <tr>
+ <th style='padding-right:1em;'>From:</th>
+ <td><a href='#' class='editable' id='editable-offer-{$offer->getId()}-start_date' data-type='text' data-pk='{$offer->getId()}' data-url='".constants::url_external."offers/edit'>".BusinessAdmin::formatDate($offer->getStartDate(),false,true)."</a></td>
+ </tr>
+ <tr>
+ <th style='padding-right:1em;'>To:</th>
+ <td><a href='#' class='editable' id='editable-offer-{$offer->getId()}-end_date' data-type='text' data-pk='{$offer->getId()}' data-url='".constants::url_external."offers/edit'>".BusinessAdmin::formatDate($offer->getEndDate(),false,true)."</a></td>
+ </tr>
+ <tr>
+ <th style='padding-right:1em;'>Invoice:</th>
+ <td><a href='#' class='editable' id='editable-offer-{$offer->getId()}-invoice_date' data-type='text' data-pk='{$offer->getId()}' data-url='".constants::url_external."offers/edit'>".BusinessAdmin::formatDate($offer->getInvoiceDate(),false,true)."</a></td>
+ </tr>
+ <tr>
+ <th style='padding-right:1em;'>Payment received:</th>
+ <td><a href='#' class='editable' id='editable-offer-{$offer->getId()}-payment_received' data-type='text' data-pk='{$offer->getId()}' data-url='".constants::url_external."offers/edit'>".BusinessAdmin::formatDate($offer->getPaymentReceived(),false,true)."</a></td>
+ </tr>
+ </table>
+ </td>
+ <td class='col-min-width'>"
+ . (($invoiceFile instanceof file)
+ ? "<a title='View' href='{$invoiceFile->getFilenameURI()}' target='_blank' class='btn btn-default btn-circle fa fa-eye'></a>
+ <a title='Regenerate' href='?generate_invoice={$offer->getId()}' class='btn btn-default btn-circle fa fa-refresh'></a>
+ <a title='Trash' href='?trash_invoice={$offer->getId()}' class='btn btn-default btn-circle fa fa-trash'></a>"
+ : "<a title='Create invoice' href='?generate_invoice={$offer->getId()}' class='btn btn-default btn-circle fa fa-calculator'></a>")
+ . "<br/>
+ <table>
+ <tr>
+ <th style='padding-right:1em;'>Subtotal:</th>
+ <td>".constants::invoice_valuta."{$offer->calculate(offer::SUBTOTAL)}</td>
+ </tr>
+ <tr>
+ <th style='padding-right:1em;'>VAT:</th>
+ <td>".constants::invoice_valuta."{$offer->calculate(offer::VAT)}</td>
+ <tr>
+ </tr>
+ <th style='padding-right:1em;'>Total:</th>
+ <td>".constants::invoice_valuta."{$offer->calculate(offer::TOTAL)}</td>
+ </tr>
+ </table>
+ </td>
+ <td class='col-min-width'>
+ <a title='" . ($offer->isAccepted() ? "Accepted" : "Not accepted") . "' href='?toggle_accept={$offer->getId()}' class='btn " . ($offer->isAccepted() ? "btn-success" : "btn-default") . " btn-circle fa fa-check'></a><a title='View' href='?id={$offer->getId()}' class='btn btn-primary btn-circle fa fa-arrow-right'></a><a title='Delete' href='?delete={$offer->getId()}' class='btn btn-danger btn-circle fa fa-times'></a>
+ </td>
+ </tr>";
+ }
+ if (count($offers) == 0) {
+ echo "<tr><td colspan='6'>There are no offers in the database. Why not start with creating one, below?</td></tr>";
+ }
+ ?>
+ </tbody>
+ </table>
+ </div>
+ </div>
</div>
<div class="col-lg-6 col-md-6">
- <div class="panel panel-default">
- <div class="panel-heading">Create new</div>
- <div class="panel-body">
- <form role="form" id="newOffer" action='<?=constants::url_external?>offers/new' method="post" class="bootstrapValidator ajaxify"
- data-ajaxify-options='{"success":"newOfferSuccess","error":"newOfferError","beforeSubmit":"newOfferBeforeSubmit"}'>
- <div class="ajaxify-response alert alert-dismissable"><button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button><span class="ajaxify-response-text"></span></div>
- <div class="form-group">
- <label>Contact:</label>
- <select name="contactId" class="form-control">
- <?php
- foreach (BusinessAdmin::getContacts($_pdo) as $contact) {
- echo "<option value='{$contact->getId()}'>{$contact->getName()} ({$contact->getClient()->getName()})</option>";
- }
- ?>
- </select>
- </div>
- <button type="submit" class="btn btn-default">Go</button>
- </form>
- <script type="text/javascript">
- // Callback for before the form is submitted
- function newOfferBeforeSubmit() {
- $('#newOffer input').prop('disabled', true);
- $('#newOffer .ajaxify-response').hide().removeClass('alert-success alert-danger').find('.ajaxify-response-text').html('');
- }
+ <div class="panel panel-default">
+ <div class="panel-heading">Create new</div>
+ <div class="panel-body">
+ <form role="form" id="newOffer" action='<?=constants::url_external?>offers/new' method="post" class="bootstrapValidator ajaxify"
+ data-ajaxify-options='{"success":"newOfferSuccess","error":"newOfferError","beforeSubmit":"newOfferBeforeSubmit"}'>
+ <div class="ajaxify-response alert alert-dismissable"><button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button><span class="ajaxify-response-text"></span></div>
+ <div class="form-group">
+ <label>Contact:</label>
+ <select name="contactId" class="form-control">
+ <?php
+ foreach (BusinessAdmin::getContacts($_pdo) as $contact) {
+ echo "<option value='{$contact->getId()}'>{$contact->getName()} ({$contact->getClient()->getName()})</option>";
+ }
+ ?>
+ </select>
+ </div>
+ <button type="submit" class="btn btn-default">Go</button>
+ </form>
+ <script type="text/javascript">
+ // Callback for before the form is submitted
+ function newOfferBeforeSubmit() {
+ $('#newOffer input').prop('disabled', true);
+ $('#newOffer .ajaxify-response').hide().removeClass('alert-success alert-danger').find('.ajaxify-response-text').html('');
+ }
- // Callback for when the form is successfully submitted
- function newOfferSuccess(data) {
- if (data.success == true) {
- $('#newOffer .ajaxify-response')
- .addClass('alert-success')
- .show()
- .find('.ajaxify-response-text')
- .html(data.message);
+ // Callback for when the form is successfully submitted
+ function newOfferSuccess(data) {
+ if (data.success == true) {
+ $('#newOffer .ajaxify-response')
+ .addClass('alert-success')
+ .show()
+ .find('.ajaxify-response-text')
+ .html(data.message);
- $('#newOffer input, #newOffer button').prop('disabled', false);
- $('#newOffer').data('bootstrapValidator').resetForm();
- } else {
- $('#newOffer .ajaxify-response')
- .addClass('alert-danger')
- .show()
- .find('.ajaxify-response-text')
- .html(data.message);
+ $('#newOffer input, #newOffer button').prop('disabled', false);
+ $('#newOffer').data('bootstrapValidator').resetForm();
+ } else {
+ $('#newOffer .ajaxify-response')
+ .addClass('alert-danger')
+ .show()
+ .find('.ajaxify-response-text')
+ .html(data.message);
- $('#newOffer input, #newOffer button').prop('disabled', false);
- $('#newOffer').data('bootstrapValidator').resetForm();
- }
- }
+ $('#newOffer input, #newOffer button').prop('disabled', false);
+ $('#newOffer').data('bootstrapValidator').resetForm();
+ }
+ }
- // Callback for when form submission encountered an error
- function newOfferError() {
- $('#newOffer .ajaxify-response')
- .addClass('alert-danger')
- .show()
- .find('.ajaxify-response-text')
- .html('An unknown error occurred. Please contact support.');
-
- $('#newOffer input, #newOffer button').prop('disabled', false);
- $('#newOffer').data('bootstrapValidator').resetForm();
- }
- </script>
- </div>
- </div>
-</div> \ No newline at end of file
+ // Callback for when form submission encountered an error
+ function newOfferError() {
+ $('#newOffer .ajaxify-response')
+ .addClass('alert-danger')
+ .show()
+ .find('.ajaxify-response-text')
+ .html('An unknown error occurred. Please contact support.');
+
+ $('#newOffer input, #newOffer button').prop('disabled', false);
+ $('#newOffer').data('bootstrapValidator').resetForm();
+ }
+ </script>
+ </div>
+ </div>
+</div>