From 559486555497bf0c03843eb4f1a8828b6ea43b0f Mon Sep 17 00:00:00 2001 From: Theo Weijmer Date: Fri, 10 Jan 2020 17:42:25 +0100 Subject: [PATCH] Invoiced report --- .../reports/ReservationsController.php | 1 + .../invoice/Excel/InvoiceSpreadsheet.php | 30 +- .../reports/invoice/Excel/InvoicedSheet.php | 67 ++++ .../libraries/reports/invoice/Invoices.php | 25 +- application/models/eloquent/Invoice.php | 14 +- .../eloquent/queries/ReservationTotals.php | 3 +- .../views/pages/invoicereport_view.php | 20 +- application/views/pages/reservations_view.php | 20 +- .../reports/invoices/invoices_report.php | 56 +++ .../js/lib/modules/reports/invoicereport.js | 336 +++++++++--------- public/js/lib/modules/reports/reservations.js | 2 +- 11 files changed, 384 insertions(+), 190 deletions(-) create mode 100644 application/libraries/reports/invoice/Excel/InvoicedSheet.php create mode 100644 application/views/reports/invoices/invoices_report.php diff --git a/application/controllers/reports/ReservationsController.php b/application/controllers/reports/ReservationsController.php index e2eaa6a..f2e8598 100644 --- a/application/controllers/reports/ReservationsController.php +++ b/application/controllers/reports/ReservationsController.php @@ -27,6 +27,7 @@ class ReservationsController extends MY_Controller { { $projects[ $result->projectID ] = [ 'projectnumber' => $result->projectnumber, + 'projectname' => $result->projectname, 'costs' => 0, 'reservation' => 0, 'payed' => 0, diff --git a/application/libraries/reports/invoice/Excel/InvoiceSpreadsheet.php b/application/libraries/reports/invoice/Excel/InvoiceSpreadsheet.php index a06caba..2482df7 100644 --- a/application/libraries/reports/invoice/Excel/InvoiceSpreadsheet.php +++ b/application/libraries/reports/invoice/Excel/InvoiceSpreadsheet.php @@ -40,7 +40,9 @@ class InvoiceSpreadsheet { $this->setMonthForecast(); - $this->setMonthPayment(); + $this->setMonthPayment(); + + $this->setInvoiced(); $this->setFilename(); @@ -86,15 +88,25 @@ class InvoiceSpreadsheet { new MonthForecastSheet( $this->invoiceReport['monthForecasts'], $this->invoiceSheet ); } - private function setMonthPayment() - { - $invoiceSheet = new Worksheet( $this->spreadsheet, 'maand betalingen' ); + private function setMonthPayment() + { + $invoiceSheet = new Worksheet( $this->spreadsheet, 'maand betalingen' ); - $this->invoiceSheet = - $this->spreadsheet->addSheet( $invoiceSheet ); + $this->invoiceSheet = + $this->spreadsheet->addSheet( $invoiceSheet ); - new MonthPaymentSheet( $this->invoiceReport['monthPayments'], $this->invoiceSheet ); - } + new MonthPaymentSheet( $this->invoiceReport['monthPayments'], $this->invoiceSheet ); + } + + private function setInvoiced() + { + $invoiceSheet = new Worksheet( $this->spreadsheet, 'ontvangen facturen' ); + + $this->invoiceSheet = + $this->spreadsheet->addSheet( $invoiceSheet ); + + new InvoicedSheet( $this->invoiceReport['invoiced'], $this->invoiceSheet ); + } private function setFilename() { @@ -121,4 +133,4 @@ class InvoiceSpreadsheet { } -} \ No newline at end of file +} diff --git a/application/libraries/reports/invoice/Excel/InvoicedSheet.php b/application/libraries/reports/invoice/Excel/InvoicedSheet.php new file mode 100644 index 0000000..d0de687 --- /dev/null +++ b/application/libraries/reports/invoice/Excel/InvoicedSheet.php @@ -0,0 +1,67 @@ + 'factuurnummer', + 'B' => 'project', + 'C' => 'klant', + 'D' => 'factuurdatum', + 'E' => 'exc btw', + 'F' => 'btw', + 'G' => 'incl btw' + ]; + + private $invoiced; + private $sheet; + private $row; + + public function __construct( $invoiced, $sheet ) + { + $this->invoiced = $invoiced; + $this->sheet = $sheet; + + $this->handle(); + } + + private function handle() + { + $this->setHeader(); + + $this->setBody(); + } + + private function setHeader() + { + foreach ( self::HEADERS as $cell => $header ) + { + $this->sheet->setCellValue( $cell . '1', $header ); + $this->sheet->getColumnDimension( $cell )->setAutoSize( TRUE ); + } + } + + private function setBody() + { + $this->row = 2; + foreach ( $this->invoiced AS $invoice ) + { + $vat = ROUND($invoice->invoiceamount * 0.21, 2); + $this->sheet->setCellValue( 'A' . $this->row, $invoice->invoicenumber ); + $this->sheet->setCellValue( 'B' . $this->row, ($invoice->projectnumber . ' ' . $invoice['projectname'])); + $this->sheet->setCellValue( 'C' . $this->row, $invoice->name ); + $this->sheet->setCellValue( 'D' . $this->row, $invoice->invoicenumber ); + $this->sheet->setCellValue( 'E' . $this->row, $invoice->invoiceamount ); + $this->sheet->setCellValue( 'F' . $this->row, $vat ); + $this->sheet->setCellValue( 'G' . $this->row, $invoice->invoiceamount + $vat ); + + $this->row ++; + } + } + +} diff --git a/application/libraries/reports/invoice/Invoices.php b/application/libraries/reports/invoice/Invoices.php index c011455..bc5b56b 100644 --- a/application/libraries/reports/invoice/Invoices.php +++ b/application/libraries/reports/invoice/Invoices.php @@ -23,6 +23,8 @@ class Invoices { private $orderType; private $orderDirection; private $archive; + private $invoicedYears; + private $invoiced; public function __construct( $year, $orderType, $orderDirection, $archive ) { @@ -48,6 +50,10 @@ class Invoices { //only projects with payments also archived projects $this->setMonthPayments(); + $this->setInvoicedyears(); + + $this->setInvoiced(); + $this->setInvoiceReport(); } @@ -95,18 +101,33 @@ class Invoices { public function setMonthPayments() { $monthPayment = new MonthPayments( - $this->year, $this->orderType, $this->orderDirection ); + $this->year, $this->orderType, $this->orderDirection ); $this->monthPayments = $monthPayment->getProjectDetails(); } + private function setInvoiced() + { + $this->invoiced = Invoice::getInvoiced( $this->year ); + } + + private function setInvoicedYears() + { + $this->invoicedYears = Invoice::selectRaw( 'DATE_FORMAT(invoicedate, "%Y") AS years' ) + ->distinct() + ->orderBy( 'invoicedate' ) + ->lists( 'years' ); + } + private function setInvoiceReport() { $this->invoiceReport = [ 'invoiceOverview' => $this->invoiceOverviews, 'forecasts' => $this->invoiceForecasts, 'monthForecasts' => $this->monthForecasts, - 'monthPayments' => $this->monthPayments + 'monthPayments' => $this->monthPayments, + 'invoicedYears' => $this->invoicedYears, + 'invoiced' => $this->invoiced ]; } } diff --git a/application/models/eloquent/Invoice.php b/application/models/eloquent/Invoice.php index 6430b1e..6a44250 100644 --- a/application/models/eloquent/Invoice.php +++ b/application/models/eloquent/Invoice.php @@ -62,4 +62,16 @@ class Invoice extends BaseModel { return $invoiceID; } -} \ No newline at end of file + + public static function getInvoiced( $year ) + { + $invoiced = Invoice::selectRaw('invoicenumber, PRJ.projectname, projectnumber, CUS.name, invoicedate, CUS.name, invoiceamount') + ->join('projects AS PRJ', 'PRJ.id', '=', 'invoices.project_id') + ->join('customers AS CUS', 'CUS.id', '=', 'PRJ.customer_id') + ->whereRaw("DATE_FORMAT(invoicedate, '%Y') = {$year}") + ->orderBy('invoicedate') + ->get(); + + return $invoiced; + } +} diff --git a/application/models/eloquent/queries/ReservationTotals.php b/application/models/eloquent/queries/ReservationTotals.php index 44f7002..d5b9edb 100644 --- a/application/models/eloquent/queries/ReservationTotals.php +++ b/application/models/eloquent/queries/ReservationTotals.php @@ -11,7 +11,8 @@ class ReservationTotals { public static function fire() { // UNION ALL wordt gebruikt voor een full outer join - $sql = " SELECT PRJ.id AS projectID, external_id AS externalID, + $sql = "SELECT PRJ.id AS projectID, external_id AS externalID, + PRJ.projectname, COALESCE(fromreservation, 0) AS fromreservation, COALESCE(Q5.costs, 0) AS costs, COALESCE(reservation, 0) AS reservation, COALESCE(payed, 0) AS payed, (COALESCE(reservation, 0) - COALESCE(fromreservation, 0)) AS saldo, diff --git a/application/views/pages/invoicereport_view.php b/application/views/pages/invoicereport_view.php index 4633042..7c86fe3 100644 --- a/application/views/pages/invoicereport_view.php +++ b/application/views/pages/invoicereport_view.php @@ -48,9 +48,12 @@ maand prognoses - + + @@ -65,9 +68,12 @@
load->view('reports/invoices/monthforecast_report'); ?>
-
- load->view('reports/invoices/monthpayment_report'); ?> -
+
+ load->view('reports/invoices/monthpayment_report'); ?> +
+
+ load->view('reports/invoices/invoices_report'); ?> +
load->view('reports/invoices/contractors_report'); ?> @@ -76,4 +82,4 @@ - \ No newline at end of file + diff --git a/application/views/pages/reservations_view.php b/application/views/pages/reservations_view.php index 4ff4e39..a081d64 100644 --- a/application/views/pages/reservations_view.php +++ b/application/views/pages/reservations_view.php @@ -7,16 +7,16 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/application/views/reports/invoices/invoices_report.php b/application/views/reports/invoices/invoices_report.php new file mode 100644 index 0000000..c40df1c --- /dev/null +++ b/application/views/reports/invoices/invoices_report.php @@ -0,0 +1,56 @@ +
+
+
 projectKosten derdenfactuur INKgereserveerd op
spaarrekening
betaaldsaldo te
betalen
betaald via
reserveringen
saldo reserveringsaldo facturen INK projectKosten derdenfactuur INKgereserveerd op
spaarrekening
betaaldnog te betalen
facturen
betaald via
reserveringen
saldo reserveringsaldo facturen INK
+ + + + + + + + + + + + + + + + + + + + + + +
+ factuurnummer + + project + + klant + + factuur datum + + excl btw + + btw + + incl btw +
+ + + + + + + + + + + + + +
+ + diff --git a/public/js/lib/modules/reports/invoicereport.js b/public/js/lib/modules/reports/invoicereport.js index 832dae9..7cc66cb 100644 --- a/public/js/lib/modules/reports/invoicereport.js +++ b/public/js/lib/modules/reports/invoicereport.js @@ -5,24 +5,24 @@ * Time: 11:43 */ - dbo.invoicereportInit = function () { - if ( dbo.invoicereport !== undefined ) { + if (dbo.invoicereport !== undefined) { - dbo.invoicereport.initModule(); + dbo.invoicereport.initModule() } else { dbo.invoicereport = { + years : ko.observableArray([]), selectedYear : ko.observable(), - invoiceOverview : ko.observableArray( [] ), - forecasts : ko.observableArray( [] ), - monthForecasts : ko.observableArray( [] ), - monthPayments : ko.observableArray( [] ), - months : ko.observableArray( [] ), - monthTotals : ko.observableArray( [] ), - monthPaymentTotals : ko.observableArray( [] ), + invoiceOverview : ko.observableArray([]), + forecasts : ko.observableArray([]), + monthForecasts : ko.observableArray([]), + monthPayments : ko.observableArray([]), + months : ko.observableArray([]), + monthTotals : ko.observableArray([]), + monthPaymentTotals : ko.observableArray([]), validYear : ko.observable(), invoiceTab : ko.observable(), totalToInvoicingExcl : ko.observable(), @@ -39,221 +39,239 @@ dbo.invoicereportInit = function () { totalProjectPayments : ko.observable(), orderType : 'projectnumber', orderDirection : false, - archive : ko.observable( false ), + archive : ko.observable(false), + recievedInvoices : ko.observableArray([]), + invoiced : ko.observableArray([]), init: function () { - var vm = dbo.invoicereport; + var vm = dbo.invoicereport - vm.selectedYear( (new Date()).getFullYear() ); - vm.invoiceTab( 'invoice' ); - vm.validYear( true ); - vm.months( dbo.monthArray ); + vm.selectedYear((new Date()).getFullYear()) + vm.invoiceTab('invoice') + vm.validYear(true) + vm.months(dbo.monthArray) - vm.initModule(); + vm.initModule() }, initModule: function () { - var vm = dbo.invoicereport; + var vm = dbo.invoicereport - vm.resetTotals(); + vm.resetTotals() - var orderDirection = vm.orderDirection ? 'ASC' : 'DESC'; - var archive = vm.archive() ? 'T' : 'F'; + var orderDirection = vm.orderDirection ? 'ASC' : 'DESC' + var archive = vm.archive() ? 'T' : 'F' - dbo.invoiceDataService.getInvoiceOverview( vm.selectedYear(), vm.orderType, orderDirection, archive, function ( data ) { - vm.invoiceOverview( data.invoiceOverview ); - vm.setInvoiceOverviewTotals( data.invoiceOverview ); + dbo.invoiceDataService.getInvoiceOverview(vm.selectedYear(), vm.orderType, orderDirection, archive, function (data) { + vm.invoiceOverview(data.invoiceOverview) + vm.setInvoiceOverviewTotals(data.invoiceOverview) - vm.forecasts( data.forecasts ); - vm.setForecastsTotals( data.forecasts ); + vm.forecasts(data.forecasts) + vm.setForecastsTotals(data.forecasts) - vm.monthForecasts.removeAll(); - _.each( data.monthForecasts, function ( p ) { - vm.monthForecasts.push( new vm.Monthforecast( p ) ); - } ); - _.each( vm.monthTotals(), function ( p ) { - p.forecastamount( dbo.helpers.thousandSeparator( p.forecastamount() ) ); - } ); + vm.monthForecasts.removeAll() + _.each(data.monthForecasts, function (p) { + vm.monthForecasts.push(new vm.Monthforecast(p)) + }) + _.each(vm.monthTotals(), function (p) { + p.forecastamount(dbo.helpers.thousandSeparator(p.forecastamount())) + }) - vm.monthPayments.removeAll(); - _.each( data.monthPayments, function ( p ) { - vm.monthPayments.push( new vm.Monthpayment( p ) ); - vm.totalProjectPayments( Number( vm.totalProjectPayments() ) + Number( p.totalProjectPayments.replace( '.', '' ) ) ); - } ); - vm.totalProjectPayments( dbo.helpers.thousandSeparator( vm.totalProjectPayments() ) ); - _.each( vm.monthPaymentTotals(), function ( p ) { - p.paymentamount( dbo.helpers.thousandSeparator( p.paymentamount() ) ); - } ); + vm.monthPayments.removeAll() + _.each(data.monthPayments, function (p) { + vm.monthPayments.push(new vm.Monthpayment(p)) + vm.totalProjectPayments(Number(vm.totalProjectPayments()) + Number(p.totalProjectPayments.replace('.', ''))) + }) + vm.totalProjectPayments(dbo.helpers.thousandSeparator(vm.totalProjectPayments())) + _.each(vm.monthPaymentTotals(), function (p) { + p.paymentamount(dbo.helpers.thousandSeparator(p.paymentamount())) + }) - } ); + vm.years(data.invoicedYears); + + vm.invoiced.removeAll() + _.each(data.invoiced, function(p){ + vm.invoiced.push( new vm.Invoice(p)); + }); + + }) }, toggleArchive: function () { - var vm = dbo.invoicereport; - vm.archive( !vm.archive() ); + var vm = dbo.invoicereport + vm.archive(!vm.archive()) - vm.initModule(); + vm.initModule() }, - sortList: function ( orderType ) { - var vm = dbo.invoicereport; + sortList: function (orderType) { + var vm = dbo.invoicereport - vm.orderType = orderType; - vm.orderDirection = !vm.orderDirection; + vm.orderType = orderType + vm.orderDirection = !vm.orderDirection - vm.initModule(); + vm.initModule() }, resetTotals: function () { - var vm = dbo.invoicereport; + var vm = dbo.invoicereport - vm.totalToInvoicingExcl( 0 ); - vm.totalToInvoicingIncl( 0 ); - vm.totalInvoicedOtherYears( 0 ); - vm.totalInvoicedThisYear( 0 ); - vm.invoicesTotal( 0 ); - vm.totalPayment( 0 ); - vm.totalToPay( 0 ); - vm.needInvoice( Number( 0 ) ); - vm.forecastThisYear( 0 ); - vm.forecastOtherYears( 0 ); - vm.forecastRemaining( 0 ); - vm.totalProjectPayments( 0 ); + vm.totalToInvoicingExcl(0) + vm.totalToInvoicingIncl(0) + vm.totalInvoicedOtherYears(0) + vm.totalInvoicedThisYear(0) + vm.invoicesTotal(0) + vm.totalPayment(0) + vm.totalToPay(0) + vm.needInvoice(Number(0)) + vm.forecastThisYear(0) + vm.forecastOtherYears(0) + vm.forecastRemaining(0) + vm.totalProjectPayments(0) - vm.monthTotals.removeAll(); - vm.monthPaymentTotals.removeAll(); - for ( var i = 1; i <= 12; i++ ) { - vm.monthTotals.push( {monthID: i, forecastamount: ko.observable( 0 )} ); - vm.monthPaymentTotals.push( {monthID: i, paymentamount: ko.observable( 0 )} ); + vm.monthTotals.removeAll() + vm.monthPaymentTotals.removeAll() + for (var i = 1; i <= 12; i++) { + vm.monthTotals.push({ monthID: i, forecastamount: ko.observable(0) }) + vm.monthPaymentTotals.push({ monthID: i, paymentamount: ko.observable(0) }) } }, - setInvoiceOverviewTotals: function ( data ) { - var vm = dbo.invoicereport; + setInvoiceOverviewTotals: function (data) { + var vm = dbo.invoicereport - _.each( data, function ( p ) { - vm.totalToInvoicingExcl( vm.totalToInvoicingExcl() + Number( p.totalToInvoicingExcl.replace( '.', '' ) ) ); - vm.totalToInvoicingIncl( vm.totalToInvoicingIncl() + Number( p.totalToInvoicingIncl.replace( '.', '' ) ) ); - vm.totalInvoicedOtherYears( vm.totalInvoicedOtherYears() + Number( p.totalInvoicedOtherYears.replace( '.', '' ) ) ); - vm.totalInvoicedThisYear( vm.totalInvoicedThisYear() + Number( p.totalInvoicedThisYear.replace( '.', '' ) ) ); - vm.invoicesTotal( vm.invoicesTotal() + Number( p.invoicesTotal.replace( '.', '' ) ) ); - vm.totalPayment( vm.totalPayment() + Number( p.projectPayment.replace( '.', '' ) ) ); - vm.totalToPay( vm.totalToPay() + Number( p.invoiceToPay.replace( '.', '' ) ) ); - vm.needInvoice( Number( vm.needInvoice() ) + Number( p.needInvoice.replace( '.', '' ) ) ); - } ); + _.each(data, function (p) { + vm.totalToInvoicingExcl(vm.totalToInvoicingExcl() + Number(p.totalToInvoicingExcl.replace('.', ''))) + vm.totalToInvoicingIncl(vm.totalToInvoicingIncl() + Number(p.totalToInvoicingIncl.replace('.', ''))) + vm.totalInvoicedOtherYears(vm.totalInvoicedOtherYears() + Number(p.totalInvoicedOtherYears.replace('.', ''))) + vm.totalInvoicedThisYear(vm.totalInvoicedThisYear() + Number(p.totalInvoicedThisYear.replace('.', ''))) + vm.invoicesTotal(vm.invoicesTotal() + Number(p.invoicesTotal.replace('.', ''))) + vm.totalPayment(vm.totalPayment() + Number(p.projectPayment.replace('.', ''))) + vm.totalToPay(vm.totalToPay() + Number(p.invoiceToPay.replace('.', ''))) + vm.needInvoice(Number(vm.needInvoice()) + Number(p.needInvoice.replace('.', ''))) + }) - vm.totalToInvoicingExcl( dbo.helpers.thousandSeparator( vm.totalToInvoicingExcl() ) ); - vm.totalToInvoicingIncl( dbo.helpers.thousandSeparator( vm.totalToInvoicingIncl() ) ); - vm.totalInvoicedOtherYears( dbo.helpers.thousandSeparator( vm.totalInvoicedOtherYears() ) ); - vm.totalInvoicedThisYear( dbo.helpers.thousandSeparator( vm.totalInvoicedThisYear() ) ); - vm.invoicesTotal( dbo.helpers.thousandSeparator( vm.invoicesTotal() ) ); - vm.totalPayment( dbo.helpers.thousandSeparator( vm.totalPayment() ) ); - vm.totalToPay( dbo.helpers.thousandSeparator( vm.totalToPay() ) ); - vm.needInvoice( dbo.helpers.thousandSeparator( vm.needInvoice() ) ); + vm.totalToInvoicingExcl(dbo.helpers.thousandSeparator(vm.totalToInvoicingExcl())) + vm.totalToInvoicingIncl(dbo.helpers.thousandSeparator(vm.totalToInvoicingIncl())) + vm.totalInvoicedOtherYears(dbo.helpers.thousandSeparator(vm.totalInvoicedOtherYears())) + vm.totalInvoicedThisYear(dbo.helpers.thousandSeparator(vm.totalInvoicedThisYear())) + vm.invoicesTotal(dbo.helpers.thousandSeparator(vm.invoicesTotal())) + vm.totalPayment(dbo.helpers.thousandSeparator(vm.totalPayment())) + vm.totalToPay(dbo.helpers.thousandSeparator(vm.totalToPay())) + vm.needInvoice(dbo.helpers.thousandSeparator(vm.needInvoice())) }, - setForecastsTotals: function ( data ) { - var vm = dbo.invoicereport; + setForecastsTotals: function (data) { + var vm = dbo.invoicereport - _.each( data, function ( p ) { - vm.forecastThisYear( vm.forecastThisYear() + Number( p.forecastThisYear.replace( '.', '' ) ) ); - vm.forecastOtherYears( vm.forecastOtherYears() + Number( p.forecastOtherYears.replace( '.', '' ) ) ); - vm.forecastRemaining( vm.forecastRemaining() + Number( p.forecastRemaining.replace( '.', '' ) ) ); - } ); - vm.forecastThisYear( dbo.helpers.thousandSeparator( vm.forecastThisYear() ) ); - vm.forecastOtherYears( dbo.helpers.thousandSeparator( vm.forecastOtherYears() ) ); - vm.forecastRemaining( dbo.helpers.thousandSeparator( vm.forecastRemaining() ) ); + _.each(data, function (p) { + vm.forecastThisYear(vm.forecastThisYear() + Number(p.forecastThisYear.replace('.', ''))) + vm.forecastOtherYears(vm.forecastOtherYears() + Number(p.forecastOtherYears.replace('.', ''))) + vm.forecastRemaining(vm.forecastRemaining() + Number(p.forecastRemaining.replace('.', ''))) + }) + vm.forecastThisYear(dbo.helpers.thousandSeparator(vm.forecastThisYear())) + vm.forecastOtherYears(dbo.helpers.thousandSeparator(vm.forecastOtherYears())) + vm.forecastRemaining(dbo.helpers.thousandSeparator(vm.forecastRemaining())) }, - setForecastMonthsTotals: function ( data ) { - console.log( data ); - var vm = dbo.invoicereport; + setForecastMonthsTotals: function (data) { + console.log(data) + var vm = dbo.invoicereport - _.each( data, function ( p ) { - _.each( p.forecastMonths(), function ( q ) { - vm.forecastMonths( vm.forecastMonths() + q ); - } ); - } ); + _.each(data, function (p) { + _.each(p.forecastMonths(), function (q) { + vm.forecastMonths(vm.forecastMonths() + q) + }) + }) }, checkYear: function () { - var vm = dbo.invoicereport; - if ( !Number.isInteger( Number( vm.selectedYear() ) ) ) return vm.validYear( false ); - if ( Number( vm.selectedYear() ) > 2100 ) return vm.validYear( false ); - if ( Number( vm.selectedYear() ) < 2000 ) return vm.validYear( false ); - vm.validYear( true ); + var vm = dbo.invoicereport + if (!Number.isInteger(Number(vm.selectedYear()))) return vm.validYear(false) + if (Number(vm.selectedYear()) > 2100) return vm.validYear(false) + if (Number(vm.selectedYear()) < 2000) return vm.validYear(false) + vm.validYear(true) - vm.initModule(); + vm.initModule() }, - setActivetab: function ( page ) { - var vm = dbo.invoicereport; + setActivetab: function (page) { + var vm = dbo.invoicereport - vm.invoiceTab( page ); + vm.invoiceTab(page) }, - Monthforecast: function ( data ) { - console.log( data ); - var vm = dbo.invoicereport; - var self = this; - self.projectnumber = data.projectnumber; - self.projectname = data.projectname; - self.customer = data.customer; - self.needInvoice = data.needInvoice; - self.forecastOtherYears = data.forecastOtherYears; - self.forecastRemaining = data.forecastRemaining; + Monthforecast: function (data) { + var vm = dbo.invoicereport + var self = this + self.projectnumber = data.projectnumber + self.projectname = data.projectname + self.customer = data.customer + self.needInvoice = data.needInvoice + self.forecastOtherYears = data.forecastOtherYears + self.forecastRemaining = data.forecastRemaining - self.forecastMonths = ko.observableArray( [] ); - _.each( data.forecastMonths, function ( p, i ) { - self.forecastMonths.push( new vm.ForecastMonth( p ) ); - _.each( vm.monthTotals(), function ( q ) { - if ( q.monthID == (i + 1) ) q.forecastamount( Math.round( Number( q.forecastamount() ) ) + Math.round( Number( p.forecastamount ) ) ); - } ); - } ); + self.forecastMonths = ko.observableArray([]) + _.each(data.forecastMonths, function (p, i) { + self.forecastMonths.push(new vm.ForecastMonth(p)) + _.each(vm.monthTotals(), function (q) { + if (q.monthID == (i + 1)) q.forecastamount(Math.round(Number(q.forecastamount())) + Math.round(Number(p.forecastamount))) + }) + }) }, - ForecastMonth: function ( data ) { - this.forecastamount = dbo.helpers.thousandSeparator( Math.round( data.forecastamount ) ); + ForecastMonth: function (data) { + this.forecastamount = dbo.helpers.thousandSeparator(Math.round(data.forecastamount)) }, - Monthpayment: function ( data ) { - var vm = dbo.invoicereport; - var self = this; - self.projectname = data.projectname; - self.customer = data.customer; - self.totalProjectPayments = data.totalProjectPayments; + Monthpayment: function (data) { + var vm = dbo.invoicereport + var self = this + self.projectname = data.projectname + self.customer = data.customer + self.totalProjectPayments = data.totalProjectPayments - self.paymentMonths = ko.observableArray( [] ); - _.each( data.monthPayments, function ( p, i ) { - self.paymentMonths.push( new vm.PaymentMonth( p ) ); - _.each( vm.monthPaymentTotals(), function ( q ) { - if ( q.monthID == i ) q.paymentamount( Math.round(Number( q.paymentamount()) ) + Math.round(Number( p.paymentamount ) )); - } ); - } ); + self.paymentMonths = ko.observableArray([]) + _.each(data.monthPayments, function (p, i) { + self.paymentMonths.push(new vm.PaymentMonth(p)) + _.each(vm.monthPaymentTotals(), function (q) { + if (q.monthID == i) q.paymentamount(Math.round(Number(q.paymentamount())) + Math.round(Number(p.paymentamount))) + }) + }) }, - PaymentMonth: function ( data ) { - this.paymentamount = dbo.helpers.thousandSeparator( Math.round(data.paymentamount) ); + PaymentMonth: function (data) { + this.paymentamount = dbo.helpers.thousandSeparator(Math.round(data.paymentamount)) + }, + + Invoice : function(data){ + var vat = Math.round((data.invoiceamount * 21) / 100); + var inclVat = vat + Number(data.invoiceamount); + this.invoiceamount = dbo.helpers.thousandSeparator(data.invoiceamount) + this.vat = dbo.helpers.thousandSeparator(vat) + this.inclVat = dbo.helpers.thousandSeparator(inclVat) + this.project = data.projectnumber + ' ' + data.projectname + this.invoicedate = data.invoicedate + this.name = data.name + this.invoicenumber = ko.observable(data.invoicenumber) }, createSpreadsheet: function () { - var vm = dbo.invoicereport; + var vm = dbo.invoicereport - var orderDirection = vm.orderDirection ? 'ASC' : 'DESC'; - var archive = vm.archive() ? 'T' : 'F'; + var orderDirection = vm.orderDirection ? 'ASC' : 'DESC' + var archive = vm.archive() ? 'T' : 'F' - var url = 'index.php/reports/reportsController/createInvoicesSpreadsheet/' + vm.selectedYear() + '/' + vm.orderType + '/' + orderDirection + '/' + archive; - window.open( url, '_blank' ); + var url = 'index.php/reports/reportsController/createInvoicesSpreadsheet/' + vm.selectedYear() + '/' + vm.orderType + '/' + orderDirection + '/' + archive + window.open(url, '_blank') } } - dbo.invoicereport.init(); + dbo.invoicereport.init() ko.applyBindings( - dbo.invoicereport, document.getElementById( "INVOICEREPORT" ) ); - + dbo.invoicereport, document.getElementById('INVOICEREPORT')) } - } diff --git a/public/js/lib/modules/reports/reservations.js b/public/js/lib/modules/reports/reservations.js index c234136..b66ecbf 100644 --- a/public/js/lib/modules/reports/reservations.js +++ b/public/js/lib/modules/reports/reservations.js @@ -68,7 +68,7 @@ dbo.reservationsInit = function () { var vm = dbo.reservationsModel; var self = this; - self.projectnumber = data.projectnumber; + self.projectnumber = data.projectnumber + ' ' + data.projectname; self.costs = dbo.helpers.numberWithPoints( data.costs ); self.reservation = dbo.helpers.numberWithPoints( data.reservation ); self.payed = dbo.helpers.numberWithPoints( data.payed );