Problemer med købt script og ingen reaktion fra programmør efter betaling
Hejsa,Jeg har købt og betalt for et script som indhenter en bestemt valuta-kurs fra National-banken XML-feed. Da scriptet kørte helt efter hensigten på hverdage, så betalte jeg for arbejdet og opdagede først bagefter at scriptet ikke tager højde for dage i weekenden og andre helligdage hvor Nationalbanken ikke kommer med en ny kurs i deres XML-feed. Programmøren hører jeg selvfølgelig intet til mere, efter han har fået sin betaling - derfor prøver jeg nu herinde.
Jeg har sporet problemet til følgende del af koden:
class updateclass {
private $db;
private $xmldoc;
private $date;
private $currency = array();
public function __construct($db, $url) {
$this->db = $db;
$this->xmldoc = new SimpleXMLElement($url, NULL, TRUE);
$date = $this->xmldoc->children()->attributes();
$this->date = $date["id"];
foreach($this->xmldoc->dailyrates->currency as $value) {
$this->currency[(string) $value["code"]] = number_format((float) $this->replaceComma($value["rate"]),2);
}
$this->updateDB();
}
private function updateDB() {
$sql = "SELECT id FROM exchangerates WHERE date=?";
$stmt = $this->db->prepare($sql);
$stmt->bind_param("s",$this->date);
$stmt->execute();
$stmt->store_result();
if($stmt->num_rows == 0) {
$stmt->close();
$sql = "INSERT INTO exchangerates(date,rate) VALUES(?,?)";
$stmt = $this->db->prepare($sql);
$sql = "SELECT rate,date FROM exchangerates ORDER BY date DESC LIMIT 1";
$last = $this->db->query($sql);
if($last->num_rows > 0) {
$fetched = $last->fetch_row();
$old_rate = $fetched[0];
$old_date = new Datetime($fetched[1]);
if($rate == 0) {
$rate = $old_rate;
}
$date = new Datetime($this->date);
$mk_date = mktime(0,0,0,$date->format("m"),$date->format("d"),$date->format("Y"));
$mk_odate = mktime(0,0,0, $old_date->format("m"), $old_date->format("d"), $old_date->format("Y"));
$date_diff = $mk_date - $mk_odate;
$diff_str = floor($date_diff/(60*60*24))-1;
if($diff_str > 0) {
for($i=0;$i<$diff_str;$i++) {
$new_date = date("Y-m-d",strtotime(date("Y-m-d", strtotime($old_date->format("Y-m-d"))) . " +" . ($i+1) . " day"));
$stmt->bind_param("sd", $new_date, $old_rate);
$stmt->execute();
}
}
}
$stmt->bind_param("sd", $this->date, $this->currency["THB"]);
$stmt->execute();
}
}
private function replaceComma($str) {
return str_replace(",",".",$str);
}
}
Det jeg ønsker er at scriptet tilføjer dags dato (i weekenden og på helligdage) med den sidst opdateret kurs (det vil almindeligvis sige fredagens kurs).
Linket til Nationalbankens feed er http://www.nationalbanken.dk/dndk/valuta.nsf/valuta.xml hvis det skal bruges.
Håber på at en eller anden skarp hjerne herinde kan hjælpe mig da jeg er helt på herrens mark.
På forhånd tusind tak.