453 lines
18 KiB
HTML
453 lines
18 KiB
HTML
<div class="app-content content" style="background-color: #000000 !important">
|
|
<div class="content-wrapper">
|
|
<div class="content-header row mb-1">
|
|
<app-breadcrumb class="col-12" [breadcrumb]="breadcrumb"></app-breadcrumb>
|
|
</div>
|
|
<div class="content-body">
|
|
<section>
|
|
<div class="row">
|
|
<div class="col-lg-4">
|
|
<div class="card" style="background-color: #252525 !important">
|
|
<div
|
|
class="card-header"
|
|
style="background-color: #252525 !important"
|
|
>
|
|
<h4
|
|
class="card-title text-center"
|
|
style="color: #ffffff !important"
|
|
>
|
|
Comparison of Water and Electricity Costs
|
|
</h4>
|
|
<hr
|
|
style="
|
|
border-top: 4px solid #ffffff;
|
|
border-color: #ffffff !important;
|
|
"
|
|
/>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="card-block">
|
|
<div class="donut-chart2" style="height: 150px !important">
|
|
<x-chartist
|
|
*ngIf="donutChart2"
|
|
[data]="donutChart2.data"
|
|
[type]="donutChart2.type"
|
|
[options]="donutChart2.options"
|
|
[responsiveOptions]="donutChart2.responsiveOptions"
|
|
[events]="donutChart2.events"
|
|
></x-chartist>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-lg-4">
|
|
<div class="card" style="background-color: #252525 !important">
|
|
<div
|
|
class="card-header"
|
|
style="background-color: #252525 !important"
|
|
>
|
|
<h4
|
|
class="card-title text-center"
|
|
style="color: #ffffff !important"
|
|
>
|
|
Comparison of Previous Month Costs
|
|
</h4>
|
|
<hr
|
|
style="
|
|
border-top: 4px solid #ffffff;
|
|
border-color: #ffffff !important;
|
|
"
|
|
/>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="card-block">
|
|
<div class="donut-chart3" style="height: 150px !important">
|
|
<x-chartist
|
|
class="text-center"
|
|
*ngIf="barChart"
|
|
[data]="barChart.data"
|
|
[type]="barChart.type"
|
|
[options]="barChart.options"
|
|
[responsiveOptions]="barChart.responsiveOptions"
|
|
[events]="barChart.events"
|
|
>
|
|
</x-chartist>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-lg-4">
|
|
<div class="card" style="background-color: #252525 !important">
|
|
<div
|
|
class="card-header"
|
|
style="background-color: #252525 !important"
|
|
>
|
|
<h4
|
|
class="card-title text-center"
|
|
style="color: #ffffff !important"
|
|
>
|
|
Comparison of Actual Costs and Estimated Costs
|
|
</h4>
|
|
<hr
|
|
style="
|
|
border-top: 4px solid #ffffff;
|
|
border-color: #ffffff !important;
|
|
"
|
|
/>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="card-block">
|
|
<div class="d-flex align-items-center">
|
|
<div class="flex-grow-1">
|
|
<label style="color: #ffffff">Actual Cost</label>
|
|
<ngb-progressbar
|
|
height="35px"
|
|
type="success"
|
|
[value]="dataCompAct?.est_cost"
|
|
[max]="dataCompAct?.real_cost"
|
|
></ngb-progressbar>
|
|
</div>
|
|
<div
|
|
class="ml-2 d-flex align-items-center"
|
|
style="height: 20px"
|
|
>
|
|
<span class="text-bold-600">{{
|
|
dataCompAct?.est_cost
|
|
}}</span>
|
|
</div>
|
|
</div>
|
|
<div class="d-flex align-items-center">
|
|
<div class="flex-grow-1">
|
|
<label style="color: #ffffff">Estimated Cost</label>
|
|
<ngb-progressbar
|
|
height="35px"
|
|
type="danger"
|
|
[value]="dataCompAct?.real_cost"
|
|
[max]="dataCompAct?.real_cost"
|
|
></ngb-progressbar>
|
|
</div>
|
|
<div
|
|
class="ml-2 d-flex align-items-center"
|
|
style="height: 20px"
|
|
>
|
|
<span class="text-bold-600">{{
|
|
dataCompAct?.real_cost
|
|
}}</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
<section id="configuration">
|
|
<div class="row">
|
|
<div
|
|
class="col-12"
|
|
*blockUI="'zeroConfiguration'; message: 'Loading'"
|
|
>
|
|
<div class="card" style="background-color: #252525 !important">
|
|
<div class="card-content">
|
|
<div class="card-body">
|
|
<div class="row">
|
|
<div class="col-3">
|
|
<div class="form-group">
|
|
<ng-select
|
|
[items]="dataBuildingList"
|
|
[searchable]="true"
|
|
bindLabel="name"
|
|
bindValue="id"
|
|
placeholder="Select Building"
|
|
[(ngModel)]="buildingSelected"
|
|
>
|
|
</ng-select>
|
|
</div>
|
|
</div>
|
|
<div class="col-3">
|
|
<div class="form-group">
|
|
<input
|
|
type="month"
|
|
class="form-control"
|
|
[(ngModel)]="dateSelected"
|
|
id="month12"
|
|
(focus)="focusElement('month12')"
|
|
/>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-3">
|
|
<div class="form-group">
|
|
<ng-select
|
|
[items]="dataMasterCategori"
|
|
[searchable]="true"
|
|
bindLabel="name"
|
|
bindValue="id"
|
|
placeholder="Select Building"
|
|
[(ngModel)]="categorySelected"
|
|
>
|
|
</ng-select>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-3">
|
|
<div class="d-flex">
|
|
<button
|
|
type="button"
|
|
class="btn btn-outline-success ml-2"
|
|
(click)="doFilter()"
|
|
style="
|
|
background-color: #252525 !important;
|
|
border-color: #bef264 !important;
|
|
"
|
|
[disabled]="spinnerFilterActive"
|
|
>
|
|
<i
|
|
class="la la-search"
|
|
style="color: #ffffff !important"
|
|
*ngIf="!spinnerFilterActive"
|
|
></i>
|
|
<i
|
|
class="la la-spinner spinner"
|
|
style="color: #ffffff !important"
|
|
*ngIf="spinnerFilterActive"
|
|
></i>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row mb-2">
|
|
<div class="col-4">
|
|
<div class="form-group">
|
|
<input
|
|
type="text"
|
|
class="form-control"
|
|
placeholder="Kwh"
|
|
[(ngModel)]="kwhTerm"
|
|
disabled
|
|
/>
|
|
</div>
|
|
</div>
|
|
<div class="col-4">
|
|
<div class="form-group">
|
|
<input
|
|
type="text"
|
|
class="form-control"
|
|
placeholder="Cost"
|
|
[(ngModel)]="costTerm"
|
|
disabled
|
|
/>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-4">
|
|
<div class="d-flex justify-content-end">
|
|
<button
|
|
class="btn btn-secondary mr-2"
|
|
style="
|
|
width: 100%;
|
|
background-color: #bef264 !important;
|
|
border-color: #bef264 !important;
|
|
color: #000000 !important;
|
|
"
|
|
(click)="syncData()"
|
|
>
|
|
<i
|
|
class="la la-spinner spinner"
|
|
*ngIf="spinnerActive"
|
|
></i>
|
|
<i class="la la-spinner" *ngIf="!spinnerActive"></i
|
|
>
|
|
<span>Syncing Data</span>
|
|
</button>
|
|
<button
|
|
class="btn btn-secondary"
|
|
style="
|
|
width: 100%;
|
|
background-color: #bef264 !important;
|
|
border-color: #bef264 !important;
|
|
color: #000000 !important;
|
|
"
|
|
(click)="addFieldValue()"
|
|
>
|
|
<i class="feather ft-plus"></i>
|
|
<span>Add Actual Cost</span>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="card-dashboard">
|
|
<ngx-datatable
|
|
class="bootstrap table-bordered"
|
|
[limit]="5"
|
|
[rows]="data_cost"
|
|
[columnMode]="'force'"
|
|
[headerHeight]="50"
|
|
[footerHeight]="50"
|
|
[rowHeight]="50"
|
|
fxFlex="auto"
|
|
[scrollbarH]="true"
|
|
>
|
|
<ngx-datatable-column
|
|
name="#"
|
|
[flexGrow]="1"
|
|
[minWidth]="10"
|
|
>
|
|
<ng-template
|
|
ngx-datatable-cell-template
|
|
let-rowIndex="rowIndex"
|
|
>
|
|
{{ rowIndex + 1 }}
|
|
</ng-template>
|
|
</ngx-datatable-column>
|
|
<ngx-datatable-column
|
|
name="building"
|
|
[flexGrow]="1"
|
|
[minWidth]="90"
|
|
>
|
|
<ng-template ngx-datatable-header-template>
|
|
<span style="color: #ffffff !important"
|
|
>Building</span
|
|
>
|
|
</ng-template>
|
|
<ng-template
|
|
let-value="value"
|
|
ngx-datatable-cell-template
|
|
>
|
|
<p style="color: #ffffff !important">{{ value }}</p>
|
|
</ng-template>
|
|
</ngx-datatable-column>
|
|
<ngx-datatable-column
|
|
name="categoryName"
|
|
[flexGrow]="1"
|
|
[minWidth]="90"
|
|
>
|
|
<ng-template ngx-datatable-header-template>
|
|
<span style="color: #ffffff !important"
|
|
>Category</span
|
|
>
|
|
</ng-template>
|
|
<ng-template
|
|
let-value="value"
|
|
ngx-datatable-cell-template
|
|
>
|
|
<p style="color: #ffffff !important">{{ value }}</p>
|
|
</ng-template>
|
|
</ngx-datatable-column>
|
|
<ngx-datatable-column
|
|
name="estimationCost"
|
|
[flexGrow]="1"
|
|
[minWidth]="90"
|
|
>
|
|
<ng-template ngx-datatable-header-template>
|
|
<span style="color: #ffffff !important"
|
|
>Estimation Cost</span
|
|
>
|
|
</ng-template>
|
|
<ng-template
|
|
let-value="value"
|
|
ngx-datatable-cell-template
|
|
>
|
|
<p style="color: #ffffff !important">
|
|
{{
|
|
value.toLocaleString("id-ID", {
|
|
style: "currency",
|
|
currency: "IDR"
|
|
})
|
|
}}
|
|
</p>
|
|
</ng-template>
|
|
</ngx-datatable-column>
|
|
<ngx-datatable-column
|
|
name="totalUse"
|
|
[flexGrow]="1"
|
|
[minWidth]="90"
|
|
>
|
|
<ng-template ngx-datatable-header-template>
|
|
<span style="color: #ffffff !important"
|
|
>Total Use</span
|
|
>
|
|
</ng-template>
|
|
<ng-template
|
|
let-value="value"
|
|
ngx-datatable-cell-template
|
|
>
|
|
<p style="color: #ffffff !important">{{ value }}</p>
|
|
kWh
|
|
</ng-template>
|
|
</ngx-datatable-column>
|
|
<ngx-datatable-column
|
|
name="endDate"
|
|
[flexGrow]="1"
|
|
[minWidth]="90"
|
|
>
|
|
<ng-template ngx-datatable-header-template>
|
|
<span style="color: #ffffff !important">Tanggal</span>
|
|
</ng-template>
|
|
<ng-template
|
|
let-value="value"
|
|
ngx-datatable-cell-template
|
|
>
|
|
<p style="color: #ffffff !important">
|
|
{{ value | date : "MM/yyyy" }}
|
|
</p>
|
|
</ng-template>
|
|
</ngx-datatable-column>
|
|
<ngx-datatable-column
|
|
name="status_id"
|
|
[flexGrow]="1"
|
|
[minWidth]="90"
|
|
>
|
|
<ng-template ngx-datatable-header-template>
|
|
<span style="color: #ffffff !important">Status</span>
|
|
</ng-template>
|
|
<ng-template
|
|
ngx-datatable-cell-template
|
|
let-value="value"
|
|
>
|
|
<p style="color: #ffffff !important">
|
|
{{ value === 2 ? "Aktif" : "Tidak Aktif" }}
|
|
</p>
|
|
</ng-template>
|
|
</ngx-datatable-column>
|
|
<ngx-datatable-column
|
|
name="Actions"
|
|
[flexGrow]="1"
|
|
[minWidth]="150"
|
|
>
|
|
<ng-template ngx-datatable-header-template>
|
|
<span style="color: #ffffff !important">Actions</span>
|
|
</ng-template>
|
|
<ng-template
|
|
ngx-datatable-cell-template
|
|
let-rowIndex="rowIndex"
|
|
let-row="row"
|
|
>
|
|
<button
|
|
class="btn btn-sm btn-warning mr-1"
|
|
style="
|
|
background-color: #000000 !important;
|
|
border-color: #bef264 !important;
|
|
"
|
|
(click)="viewRow(row)"
|
|
>
|
|
<i class="ficon feather ft-eye"></i>
|
|
</button>
|
|
</ng-template>
|
|
</ngx-datatable-column>
|
|
</ngx-datatable>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
</div>
|
|
</div>
|
|
</div>
|