0) { $q.= " AND a.transport_provider_id=${tpid}"; } $r = pg_query($db, $q); if ($r && pg_num_rows($r) && $f=pg_fetch_row($r)) { $total = $f[0]; } if ($total>0 && $offset<$total) { $q = self::BASE_SQL_DATA . self::BASE_SQL_FROM . " AND lower(ls.address)='${db_origin}'"; $q.= " AND lower(le.address)='${db_destination}' ".($tpid>0?" AND a.transport_provider_id=${tpid}":""); $q.= " ORDER BY a.created DESC LIMIT ${limit} OFFSET ${offset}"; error_log($q); $r = pg_query($db, $q); if ($r && pg_num_rows($r)) { while ($f=pg_fetch_assoc($r)) { $f["location_start"] = html_entity_decode ($f["location_start"],ENT_QUOTES|ENT_HTML5,"UTF-8"); $f["location_end"] = html_entity_decode ($f["location_end"],ENT_QUOTES|ENT_HTML5,"UTF-8"); $results[] = $f; } } } return array($total, $results); } public function create($db, $data) { syslog(LOG_WARNING,'QuoteGroup::create()'); $location_start_id = Address::getAddress($db, $data, "location_start"); $location_end_id = Address::getAddress($db, $data, "location_end"); if ($location_start_id==NULL || $location_end_id==NULL) { syslog(LOG_WARNING,json_encode($data)); return array(NULL,"Failed to save address"); } $transport_providers = count($data["transport_providers"]); $q = "INSERT INTO quote_group (location_start_id,location_end_id,transport_providers,processed) VALUES(${location_start_id},${location_end_id},${transport_providers},0 ) RETURNING id"; syslog(LOG_WARNING,$q); $r = pg_query($db, $q); if ($r && pg_num_rows($r) && $f=pg_fetch_assoc($r)) { return array(self::getById($db, $f["id"]),NULL); } return array(NULL,pg_last_error($db)); } public function update($db, $data) { error_log('QuoteGroup::update()'); // transport_providers='".$data["transport_providers"]."', // created='".$data["created"]."', $q = "UPDATE quote_group SET cost=".($data["cost"]==""?"NULL":((float)$data["cost"])).","; $q.= " transport_provider_id=".($data["transport_provider_id"]==""?"NULL":((int)$data["transport_provider_id"])).","; $q.= " quote_id=".($data["quote_id"]==""?"NULL":((int)$data["quote_id"])).","; $q.= " completed=".($data["completed"]==""?"NULL":("'".$data["completed"]."'")).","; $q.= " location_start_id=".$data["location_start_id"].","; $q.= " location_end_id=".$data["location_end_id"].","; $q.= " processed=".((int)$data["processed"]); $q.= " WHERE id='".$data["id"]."' RETURNING id"; error_log($q); $r = pg_query($db, $q); if ($r && pg_num_rows($r) && $f=pg_fetch_assoc($r)) { $res = self::getById($db, $f["id"]); error_log('res count => '.count($res)); if (is_array($res) && count($res)) { return [$res,NULL]; } return [$data, NULL]; // fallback... } return [NULL, pg_last_error($db)]; } } // vi:ts=2