Pesquisar na Comunidade
Mostrando resultados para as tags ''php data sql allotment''.
Encontrado 1 registro
-
Olá,Estou com dificuldade de arrumar um bug de um sistema de reservas online de hotel O sistema ta a aceitando vender um quarto mesmo quando a disponibilidade(Allotment) está em zero. Devo adicionar uma linha de codigo para filtrar a disponibilidade caso allotment seja = 0 nas datas pesquisadas. Pra mim esta é a linha que está dando erro: (linha 11) $sql .= "AND pms_allotment.allotment >= '$rooms' \n"; DEVERIA SER ALGO TIPO: $sql .= "AND pms_allotment.allotment > 0 \n"; Mas mesmo com essa variação falta algo,porque o bug ainda persiste.... -A variável '$rooms' é sempre = 1 -este php é o que faz as contas finais para dizer no site se um quarto está disponivel e quanto custa -Front end desse sistema: http://yogaquantico.com.br/t9/ -O problema só aparece quando tenho mais de 2 ou mais quartos cadastrados,caso eu tenha só 1 quarto cadastrado a disponibilidade funciona bem quando chega a zero. - E quando tenho mais de 2 quartos cadstrados e por exemplo quero ficar na suite X por 5 dias,mas ela so tem disponibilidade para 3 dias, o site mostra que ela está disponivel e acaba vendendo-a com preços misturados de outras suites disponiveis na mesma data. <? $sql = "SELECT * \n"; $sql .= "FROM pms_ratecode_rate, pms_allotment \n"; $sql .= "WHERE pms_ratecode_rate.ratecode_id = '$rs[ratecode_id]' \n"; $sql .= "AND pms_allotment.allotmaster_id = '$allotmaster_id' \n"; $sql .= "AND pms_allotment.roomtype_id = '$rs[roomtype_id]' \n"; $sql .= "AND pms_ratecode_rate.ratedate = pms_allotment.allotdate \n"; $sql .= "AND pms_ratecode_rate.ratedate >= '$checkin' \n"; $sql .= "AND pms_ratecode_rate.ratedate < '$checkout' \n"; $sql .= "AND pms_ratecode_rate.ratedate = pms_allotment.allotdate \n"; $sql .= "AND pms_allotment.allotment >= '$rooms' \n"; $stmt1 = $db->prepare($sql); $stmt1->execute()or die("<pre>$sql</pre>".print_r($stmt1->errorInfo())); if($stmt1->rowCount()){ while($rs1 = $stmt1->fetch(PDO::FETCH_ASSOC)){ list($rate_yy,$rate_mm,$rate_dd) = explode("-",$rs1[ratedate]); $ratestamp = mktime(0,0,0,$rate_mm,$rate_dd,$rate_yy); $rate[$rs1[ratedate]] = $rs1; } $n = 0; $notavai = false; while($n < $nights){ $dailycheck_stamp = date("Y-m-d", mktime(0,0,0,$mm1,$dd1+$n,$yy1)); if(is_array($rate[$dailycheck_stamp]) == false){ $notavai = true; } if(is_array($promo) == false){ $ratetotal[$rs[ratecode_id]][] = ($rate[$dailycheck_stamp]["rate_$adults"] + ($rate[$dailycheck_stamp]["rate_child"] * $child)) * $rooms; }else{ $rate_promo = ($ratepromo[$dailycheck_stamp]["rate_$adults"] + ($ratepromo[$dailycheck_stamp]["rate_child"] * $child)) * $rooms; $rate_cross[$rs[ratecode_id]][] = ($cross_rate[$dailycheck_stamp]["rate_$adults"] + ($cross_rate[$dailycheck_stamp]["rate_child"] * $child)) * $rooms; $ratetotal[$rs[ratecode_id]][] = $rate_promo; $ratetotal_cross[$rs[ratecode_id]][] = $rate_promo; } $n++; } if($property[taxtype] == "inclusive"){ $tax = 0; $total = array_sum($ratetotal[$rs[ratecode_id]]); $total_notax = $total; }else{ $total_notax = array_sum($ratetotal[$rs[ratecode_id]]); $tax = $total_notax * ($property[taxamount]/100); $total = $total_notax + $tax; } $sql = "INSERT INTO pms_rateavai \n"; $sql .= "SET \n"; $sql .= "agent_id = '$agent_id', \n"; $sql .= "session_id = '$session_id', \n"; $sql .= "property_id = '$property[property_id]', \n"; $sql .= "ratemaster_id = '$ratemaster_id', \n"; $sql .= "allotmaster_id = '$allotmaster_id', \n"; $sql .= "ratecode_id = '$rs[ratecode_id]', \n"; $sql .= "roomtype_id = '$rs[roomtype_id]', \n"; $sql .= "checkin = '$checkin', \n"; $sql .= "checkout = '$checkout', \n"; $sql .= "nights = '$nights', \n"; $sql .= "rooms = '$rooms', \n"; $sql .= "adults = '$adults', \n"; $sql .= "child = '$child', \n"; $sql .= "inclusion = '$rs[ratecode_inclusion]', \n"; $sql .= "policy_id = '$rs[policy_id]', \n"; $sql .= "taxtype = '$property[taxtype]', \n"; $sql .= "tax = '$tax', \n"; $sql .= "room_total = '$total_notax', \n"; $sql .= "total_notax = '$total_notax', \n"; $sql .= "total = '$total', \n"; $sql .= "currency = '$rs[ratecode_currency]' \n"; $stmtInsert = $db->prepare($sql); $stmtInsert->execute()or die("<pre>$sql</pre>".print_r($stmtInsert->errorInfo())); $rateavai_id = $db->lastInsertId(); $uri = "?action=bookingcart&rateavai_id=".($rateavai_id); $ratecode_total_summary = array_sum($ratetotal[$rs[ratecode_id]]); if($notavai == false){ $n = 0; if($weeks == 1){ if($nights == 1){ include("inc.rateavai.query.night.php"); }else{ include("inc.rateavai.query.nights.php"); } }else{ include("inc.rateavai.query.weeks.php"); } $available = true; $ratecode_id_count[] = $rs[ratecode_i]; $roomtype_name = json_decode($rs[roomtype_name],true); $data_rate_filter[] = crc($ratecode_total_summary,$rs[ratecode_currency],$currency); if($data_roomtype_name_filter[$rs[roomtype_id]] == false){ if($roomtype_name[$locale] == false){ $roomtype_name[$locale] = $roomtype_name[en_US]; } $data_roomtype_name_filter[$rs[roomtype_id]] = $roomtype_name[$locale]; } unset($stamp_checkpromo_start); unset($stamp_checkpromo_end); unset($cross_rate); unset($rate_cross); unset($promo); unset($ratepromo); unset($ratetotal_cross); unset($rate); } } ?>