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 );