Updated: Removed LIMIT for all refuel records, fixed fuel consumption calculation on dashboard
	
		
			
	
		
	
	
		
	
		
			All checks were successful
		
		
	
	
		
			
				
	
				Build and Deploy Zola Website / build_and_deploy (push) Successful in 12s
				
			
		
		
	
	
				
					
				
			
		
			All checks were successful
		
		
	
	Build and Deploy Zola Website / build_and_deploy (push) Successful in 12s
				
			This commit is contained in:
		@@ -12,7 +12,7 @@ class DashboardController extends Controller {
 | 
				
			|||||||
            "mileage" => [],
 | 
					            "mileage" => [],
 | 
				
			||||||
            "liters" => []
 | 
					            "liters" => []
 | 
				
			||||||
        ];
 | 
					        ];
 | 
				
			||||||
        $raw_data = $default_car ? $refuel->latest_data($default_car['id'], 5) : [];
 | 
					        $raw_data = $default_car ? $refuel->latest_data($default_car['id'], 0) : [];
 | 
				
			||||||
        foreach($raw_data as $one) {
 | 
					        foreach($raw_data as $one) {
 | 
				
			||||||
            array_push($data['date'], date('d. m.', strtotime($one['created_at'])));
 | 
					            array_push($data['date'], date('d. m.', strtotime($one['created_at'])));
 | 
				
			||||||
            array_push($data['price'], $one['price_per_liter']);
 | 
					            array_push($data['price'], $one['price_per_liter']);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -38,15 +38,24 @@ class Refuel {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    public function latest_data($vehicle_id, $record_count) {
 | 
					    public function latest_data($vehicle_id, $record_count) {
 | 
				
			||||||
        try {
 | 
					        try {
 | 
				
			||||||
            $stmt = $this->db->prepare("
 | 
					            $sql = "
 | 
				
			||||||
                SELECT `liters`, `price_per_liter`, `total_price`, `mileage`, `created_at`
 | 
					                SELECT `liters`, `price_per_liter`, `total_price`, `mileage`, `created_at`
 | 
				
			||||||
                FROM `refueling_records`
 | 
					                FROM `refueling_records`
 | 
				
			||||||
                WHERE `vehicle_id` = ?
 | 
					                WHERE `vehicle_id` = ?
 | 
				
			||||||
                ORDER BY created_at DESC
 | 
					                ORDER BY created_at DESC";
 | 
				
			||||||
                LIMIT ?;
 | 
					
 | 
				
			||||||
            ");
 | 
					            if ($record_count > 0) {
 | 
				
			||||||
 | 
					                $sql .= " LIMIT ?";
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            $stmt = $this->db->prepare($sql);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if ($record_count > 0) {
 | 
				
			||||||
 | 
					                $stmt->bind_param("ii", $vehicle_id, $record_count);
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
 | 
					                $stmt->bind_param("i", $vehicle_id);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            $stmt->bind_param("ii", $vehicle_id, $record_count);
 | 
					 | 
				
			||||||
            if ($stmt->execute()) {
 | 
					            if ($stmt->execute()) {
 | 
				
			||||||
                $result = $stmt->get_result();
 | 
					                $result = $stmt->get_result();
 | 
				
			||||||
                $data = $result->fetch_all(MYSQLI_ASSOC);
 | 
					                $data = $result->fetch_all(MYSQLI_ASSOC);
 | 
				
			||||||
@@ -62,7 +71,7 @@ class Refuel {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    public function latest_one($vehicle_id, $record_count = 1) {
 | 
					    public function latest_one($vehicle_id, $record_count = 1) {
 | 
				
			||||||
        try {
 | 
					        try {
 | 
				
			||||||
            $stmt = $this->db->prepare("
 | 
					            $sql = "
 | 
				
			||||||
                SELECT 
 | 
					                SELECT 
 | 
				
			||||||
                    `r`.`vehicle_id`, 
 | 
					                    `r`.`vehicle_id`, 
 | 
				
			||||||
                    `v`.`name` AS `vehicle_name`, 
 | 
					                    `v`.`name` AS `vehicle_name`, 
 | 
				
			||||||
@@ -75,11 +84,20 @@ class Refuel {
 | 
				
			|||||||
                FROM `refueling_records` AS `r`
 | 
					                FROM `refueling_records` AS `r`
 | 
				
			||||||
                JOIN `vehicles` AS `v` ON `r`.`vehicle_id` = `v`.`id`
 | 
					                JOIN `vehicles` AS `v` ON `r`.`vehicle_id` = `v`.`id`
 | 
				
			||||||
                WHERE `r`.`vehicle_id` = ?
 | 
					                WHERE `r`.`vehicle_id` = ?
 | 
				
			||||||
                ORDER BY `r`.`created_at` DESC
 | 
					                ORDER BY `r`.`created_at` DESC";
 | 
				
			||||||
                LIMIT ?;
 | 
					
 | 
				
			||||||
            ");
 | 
					            if ($record_count > 0) {
 | 
				
			||||||
 | 
					                $sql .= " LIMIT ?";
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            $stmt = $this->db->prepare($sql);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if ($record_count > 0) {
 | 
				
			||||||
 | 
					                $stmt->bind_param("ii", $vehicle_id, $record_count);
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
 | 
					                $stmt->bind_param("i", $vehicle_id);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            $stmt->bind_param("ii", $vehicle_id, $record_count);
 | 
					 | 
				
			||||||
            if ($stmt->execute()) {
 | 
					            if ($stmt->execute()) {
 | 
				
			||||||
                $result = $stmt->get_result();
 | 
					                $result = $stmt->get_result();
 | 
				
			||||||
                $data = $result->fetch_all(MYSQLI_ASSOC);
 | 
					                $data = $result->fetch_all(MYSQLI_ASSOC);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -97,25 +97,23 @@
 | 
				
			|||||||
</script>
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<script>
 | 
					<script>
 | 
				
			||||||
    const data2 = <?= json_encode($data['date_price_data']); ?>;
 | 
						const data2 = <?= json_encode($data['date_price_data']); ?>;
 | 
				
			||||||
    let cnt_ltr = 0
 | 
						let cnt_ltr = 0;
 | 
				
			||||||
    let cnt_km = 0
 | 
					    let last_ltr = 0;
 | 
				
			||||||
    let first_km = 0
 | 
					    let last_km = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    console.log(data2)
 | 
						console.log(data2);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    for(let i = 0; i < data2['liters'].length; i++) {
 | 
						for (let i = 0; i < data2['liters'].length; i++) {
 | 
				
			||||||
        if(i == 0) {
 | 
							cnt_ltr += data2['liters'][i]
 | 
				
			||||||
            first_km = data2['mileage'][i]
 | 
					        last_ltr = data2['liters'][i]
 | 
				
			||||||
        }
 | 
					        last_km = data2['mileage'][i]
 | 
				
			||||||
        cnt_ltr += data2['liters'][i]
 | 
						}
 | 
				
			||||||
        cnt_km =+ data2['mileage'][i]
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    console.log("Liters", cnt_ltr, cnt_km, first_km)
 | 
					    cnt_ltr -= last_ltr
 | 
				
			||||||
    console.log("Avg", (cnt_km - first_km) / cnt_ltr)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    document.querySelector("#avg-fl-cnsmp").textContent = Math.floor((cnt_km - first_km) / cnt_ltr) + " l/100km"
 | 
						document.querySelector("#avg-fl-cnsmp").textContent =
 | 
				
			||||||
 | 
							(cnt_ltr/last_km*100).toFixed(1) + " l/100km";
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user