Tolong pilih kategori sesuai, jenis posting (pertanyaan atau bukan) dan sertakan tag/topik yang sesuai misal komputer, php, mysql, dll.
Promosi atau posting tidak pada tempatnya akan kami hapus.
Mencantumkan kode program di posting Anda, tolong ikuti aturan yang sesuai, baca http://diskusiweb.com/discussion/39204/aturan-cara-menyisipkan-kode-program-di-diskusiweb

Baca cara posting gambar/image di post Anda: http://www.diskusiweb.com/discussion/47345/cara-menyisipkan-menyertakan-image-pada-posting/p1

Bingung Program Reservasi

Siyang dwebber, mo ngrepotin lagi nih :D

ane lagi bljr buat reservasi hotel, tapi ada sedikit kebingungan nih dan skrng mau memohon bimbingan dr sampeyan

[img]http://aycu03.webshots.com/image/49562/2006328867087189604_rs.jpg[/img]

Kira2, kamar di hotel ada 2. mawar dan melati.
Tamu pilih ruang dan kelas, maka akan tercetak total tagihan.

1. Yg jadi kebingungan ane, jika ada tamu mendpt pelayanan lain selain dari layanan di atas dan di haruskan mengeluarkan biaya tambahan, bgmna memasukan dlm tagihan totalnya.
berhubung tabel di atas sudah di buat statik.

2. rumus akhirnya kira2 spt ini
biaya total + biaya tambahan(jikaada) * lama menginap

kira2 tagihan buat tamu spt ini :
[img]http://aycu13.webshots.com/image/50452/2003182681331540404_rs.jpg[/img]

Bener2 bingung membuat rancangan dbasenya nih


di help-in ya :D

Tanggapan

  • Originally posted by DeathnotE
    @kang badman
    itu data2 tagihan dr tabel statik perlu di masukan di dabase tagihan tammu skalian gk kang?

    atau cuma di select aja berdsrkn jenis ruang dan kelas nya?

    total tagihan di tabel itu total tagihan kamar/hari
    weleh...
    mendingan pake tabel referensi layanan spt ide saya yg kedua
    sekalian layanan standar-nya dimasukin situ, soalnya layanan standar kan gak semua diambil
    dibedakan aja id layanan tambahan dan id standar-nya,
    id kamar masukin situ juga, soalnya ada beda harga

    tabel layanannya jadi :

    id | fk(id_tamu) | fk(id_kamar) | fk(id_layanan)

    referensi layanan tambahan tetep

    id | layanan tambahan | harga
  • @bem Goku
    iya bem

    @kang badman
    itu data2 tagihan dr tabel statik perlu di masukan di dabase tagihan tammu skalian gk kang?

    atau cuma di select aja berdsrkn jenis ruang dan kelas nya?

    total tagihan di tabel itu total tagihan kamar/hari
  • Nanya dulu jeng

    Kelas III sampai VIP itu kelas ruangnya?

    Jadi ada kamar mawar kelas III,mawar kelas II ?
  • kalo tabel sudah fix / statik gak bisa diubah ... bikin tabel tambahan baru

    id | fk(id_tamu) | layanan_tambahan | harga

    satu tamu bisa dapet lebih dr 1 layanan tambahan,
    ntar tinggal pas select pake where id_tamu = ...
    lalu harga di sum()

    kalo layanan tambahan fix, bisa dibuat tabel referensi layanan tambahan

    id | fk(id_tamu) | fk(id_layanan_tambahan)

    referensi layanan tambahan

    id | layanan tambahan | harga
  • kode tamu itu adalah id_rev di tabel_reservasi
  • query mengambil dari tabel harga kamar statik dan dari tabel layanan tambahan gimana kang?

    di tabel harga kamar statik kan gk ada kode tamu?

    penghubunge apa?
  • Dalam perancangan database jangan berasumsi data sudah fix. Siapa tahu hotelnya pindah dan lebih luas.
    Otomatis entar nama ruangan akan bertambah

    tabel_ruangan
    id_ruang,nama
    Contoh :
    1->melati
    2->mawar

    tb_kelas
    id_kelas,nama
    Contoh :
    1->VIP
    2->Kelas I
    3->Kelas II
    4->Kelas III

    tabel_ruangan_kelas
    id,id_ruang,id_kelas
    1->1->1 (Melati VIP)
    2->1->2 (Melati Kelas I)
    3->1->3 (Melati kelas II)
    4->1->4->(Melati kelas III)
    5->2->1->(Mawar kelas VIP)

    tabel_service
    id_service,nama
    Contoh :
    1->room service
    2->breakfast
    3->spa
    4->Laundry
    5->Fitness

    tabel_service_ruang
    id_ruang_kelas,id_service,harga
    Contoh
    1->1->150000 (Room service melati kelas VIP)
    2->1->120000 (Room service melati kelas I
    5->2->200000 (Spa mawar kelas VIP)

    tabel_reservasi
    id_rev,nama_pemesan,alamat,email,id_ruang_kelas,check_in(datetime),check_out(datetime)

    tabel detail_billing (One->Many)
    id_rev,id_service,harga

    Untuk service 1-3 sudah fix harganya jadi ambil aja di tabel_service_ruang. Untuk 4 dan 5 tergantung
    jumlah pakaian dan lama pemakaian ruang fitness. Jadi isi langsung aja.
    Untuk mengecek apakah masuk service ruang atau tidak cek aja di tabel_service_ruang apakah ada id-nya?
  • angkat lagi ah..:D
    saya lagi bikin reservasi online juga.

    Gimana bikin tampilan kayak denah kamar ya?
    jadi ntar user bisa tau kamar mana yg masih kosong ataupun yg sudah terisi gt..
    nah pesennya bisa langsung klik di gambar denahnya?
  • Kayaknya jarang website hotel reservasi seperti itu. Biasanya ya cuma pakai form biasa. Tgl cek in/cek out, tipe kamar dan jumlah orangnya. Kalau pengunjung mau tahu spesifikasi kamar buatkan halaman tersendiri.
  • coba manfaatkan tip dan trik dari buku:
    http://www.solusi-media.com/buku.php

    baca baik-baik dan amatilah tip dan triknya mulai halaman 248-264.
    semua konsep dan pelaksanaan perintah sejenis:
    1. reservasi hotel/kamar hotel: jenjang/harga/lantai/tingkat/tempat/dls.
    2. reservasi pesawat terbang: penerbangan dari dan ke tujuan: dari kota ke kota tujuan/waktu/jumlah peserta/toal harga/diskon waktu tertentu dan waktu ke sekiannya/harga u/ anak kecil/di bawah 12 tahun/transit sebelum tujuan.
    3. reservasi restoran/rumah makan: jenis tempat/lokasi/jenis menu makanan/diskon/dls
    4. reservasi vila di Puncak/Kota Bunga/Bandung/Tailand /dls.


    semuanya sejenis: multiple database/multipel select/event.

    konsep dasarnya dibahas pada buku sakti php.
    coba dulu, beri masukkan/kritisi tajam setiap tip/triknyha/kode sumbernya.

    selamat memanfaatkan tip/trik sederhana tapi punya nilai jual.
  • Originally posted by Goku
    Kayaknya jarang website hotel reservasi seperti itu. Biasanya ya cuma pakai form biasa. Tgl cek in/cek out, tipe kamar dan jumlah orangnya. Kalau pengunjung mau tahu spesifikasi kamar buatkan halaman tersendiri.

    kalo dibikin kayak gt kayaknya merupakan nilai lebih ya :D..
    oke kalo yg biasa aja form biasa, tgl cek in/out.. truz itu ntar masuk tabel sementara atau langsung masuk tabel transaksi bos?
    soalnya bisa aja khan kamar tu dah penuh dipesen ama orang.
    biasanya gmn validasi kamarnya masih ada atau dah penuh?
  • Originally posted by junan
    coba manfaatkan tip dan trik dari buku:
    http://www.solusi-media.com/buku.php

    baca baik-baik dan amatilah tip dan triknya mulai halaman 248-264.
    semua konsep dan pelaksanaan perintah sejenis:
    1. reservasi hotel/kamar hotel: jenjang/harga/lantai/tingkat/tempat/dls.
    2. reservasi pesawat terbang: penerbangan dari dan ke tujuan: dari kota ke kota tujuan/waktu/jumlah peserta/toal harga/diskon waktu tertentu dan waktu ke sekiannya/harga u/ anak kecil/di bawah 12 tahun/transit sebelum tujuan.
    3. reservasi restoran/rumah makan: jenis tempat/lokasi/jenis menu makanan/diskon/dls
    4. reservasi vila di Puncak/Kota Bunga/Bandung/Tailand /dls.


    semuanya sejenis: multiple database/multipel select/event.

    konsep dasarnya dibahas pada buku sakti php.
    coba dulu, beri masukkan/kritisi tajam setiap tip/triknyha/kode sumbernya.

    selamat memanfaatkan tip/trik sederhana tapi punya nilai jual.


    e-booknya yg free aja ada ga :D
    junan aja yg baca, nah ntar di ketik lagi trus di share disini ya.. hehehehe... :D
  • sejak tahun 2005 & 2007 cukup banyak contoh kode sumber lengkap dpt dimanfaatkan/dikembangkan lagi:
    salah satu yg pernah saya lihat:
    http://php-residence-hotel-software.digitaldruid-net.qarchive.org/

    misal: file tabel:
    $pag = "tabella2.php";
    $titolo = "tabelle mesi";

    include("./dati/dati_connessione.php");
    include("./includes/funzioni_$PHPR_DB_TYPE.php");
    $numconnessione = connetti_db($PHPR_DB_NAME,$PHPR_DB_HOST,$PHPR_DB_PORT,$PHPR_DB_USER,$PHPR_DB_PASS,$PHPR_LOAD_EXT);
    include("./includes/funzioni.php");
    include("./includes/funzioni_testo.php");
    $tablenometariffe = $PHPR_TAB_PRE."ntariffe".$anno;
    $tableprenota = $PHPR_TAB_PRE."prenota".$anno;
    $tableperiodi = $PHPR_TAB_PRE."periodi".$anno;
    $tableappartamenti = $PHPR_TAB_PRE."appartamenti";
    $tableclienti = $PHPR_TAB_PRE."clienti";
    $tablepersonalizza = $PHPR_TAB_PRE."personalizza";
    $tableregole = $PHPR_TAB_PRE."regole".$anno;


    $id_utente = controlla_login($numconnessione,$PHPR_TAB_PRE,$id_sessione,$nome_utente_phpr,$password_phpr,$anno);
    if ($id_utente) {

    if ($id_utente != 1) {
    $tableprivilegi = $PHPR_TAB_PRE."privilegi";
    $privilegi_annuali_utente = esegui_query("select * from $tableprivilegi where idutente = '$id_utente' and anno = '$anno'");
    if (numlin_query($privilegi_annuali_utente) == 0) $anno_utente_attivato = "NO";
    else {
    $anno_utente_attivato = "SI";
    $privilegi_globali_utente = esegui_query("select * from $tableprivilegi where idutente = '$id_utente' and anno = '1'");
    $priv_ins_clienti = risul_query($privilegi_globali_utente,0,priv_ins_clienti);
    if (substr($priv_ins_clienti,2,1) == "s") $vedi_clienti = "SI";
    if (substr($priv_ins_clienti,2,1) == "p") $vedi_clienti = "PROPRI";
    if (substr($priv_ins_clienti,2,1) != "s" and substr($priv_ins_clienti,2,1) != "p") $vedi_clienti = "NO";
    $priv_mod_prenota = risul_query($privilegi_annuali_utente,0,priv_mod_prenota);
    $priv_mod_prenotazioni = substr($priv_mod_prenota,0,1);
    $priv_mod_prenota_iniziate = substr($priv_mod_prenota,11,1);
    $priv_mod_prenota_ore = substr($priv_mod_prenota,12,3);
    $priv_vedi_tab = risul_query($privilegi_annuali_utente,0,priv_vedi_tab);
    $priv_vedi_tab_mesi = substr($priv_vedi_tab,0,1);
    if ($priv_vedi_tab_mesi == "p") {
    $regole1_consentite = risul_query($privilegi_annuali_utente,0,regole1_consentite);
    $attiva_regole1_consentite = substr($regole1_consentite,0,1);
    if ($attiva_regole1_consentite != "n") $regole1_consentite = explode("#@^";,substr($regole1_consentite,3));
    $tariffe_consentite = risul_query($privilegi_annuali_utente,0,tariffe_consentite);
    $attiva_tariffe_consentite = substr($tariffe_consentite,0,1);
    if ($attiva_tariffe_consentite == "s") {
    $tariffe_consentite = explode(",",substr($tariffe_consentite,2));
    unset($tariffe_consentite_vett);
    for ($num1 = 0 ; $num1 < count($tariffe_consentite) ; $num1++) if ($tariffe_consentite[$num1]) $tariffe_consentite_vett[$tariffe_consentite[$num1]] = "SI";
    } # fine if ($attiva_tariffe_consentite == "s")
    $priv_ins_prenota = risul_query($privilegi_annuali_utente,0,priv_ins_prenota);
    $priv_ins_nuove_prenota = substr($priv_ins_prenota,0,1);
    $priv_ins_assegnazione_app = substr($priv_ins_prenota,1,1);
    $priv_mod_assegnazione_app = substr($priv_mod_prenota,2,1);
    } # fine if ($priv_vedi_tab_mesi == "p")
    } # fine else if (numlin_query($privilegi_annuali_utente) == 0)
    } # fine if ($id_utente != 1)
    else {
    $anno_utente_attivato = "SI";
    $vedi_clienti = "SI";
    $priv_mod_prenotazioni = "s";
    $priv_mod_prenota_iniziate = "s";
    $priv_mod_prenota_ore = "000";
    $priv_vedi_tab_mesi = "s";
    } # fine else if ($id_utente != 1)
    if ($anno_utente_attivato == "SI" and $priv_vedi_tab_mesi != "n") {

    if (@is_file(";./dati/dati_subordinazione.php")) $priv_mod_prenotazioni = "n";


    if ($tema[$id_utente] and $tema[$id_utente] != "base" and @is_dir(";./includes/themes/".$tema[$id_utente])) include("./includes/themes/".$tema[$id_utente]."/head.php");
    else include("./includes/head.php");


    #$tabelle_lock = array("$tableprenota");
    $altre_tab_lock = array("$tableprenota","$tablenometariffe","$tableperiodi","$tableappartamenti","$tableclienti","$tableregole","$tablepersonalizza");
    $tabelle_lock = lock_tabelle($tabelle_lock,$altre_tab_lock);

    if ($priv_mod_prenota_iniziate != "s") $id_periodo_corrente = calcola_id_periodo_corrente ($anno);

    $oggi = date("j/n/Y",(time() + (C_DIFF_ORE * 3600)));
    $ora = date("H:i",(time() + (C_DIFF_ORE * 3600)));
    echo "<small><small>".mex("situazione alle",$pag)." $ora ".mex("del",$pag)." $oggi</small></small><br>";

    if ($anno_succ == "SI") { $mese = $mese + 12; }

    $data_inizio_periodi = esegui_query("select * from $tableperiodi where idperiodi = 1");
    $data_inizio_periodi = risul_query($data_inizio_periodi,0,datainizio);
    $data_inizio_periodi = explode("-",$data_inizio_periodi);
    $mese_inizio_periodi = $data_inizio_periodi[1];
    if ($mese < $mese_inizio_periodi) { $mese = $mese_inizio_periodi; }
    $data_fine_periodi = esegui_query("select max(idperiodi) from $tableperiodi");
    $id_data_fine_periodi = risul_query($data_fine_periodi,0,0);
    $data_fine_periodi = esegui_query("select * from $tableperiodi where idperiodi = '$id_data_fine_periodi'");
    $data_fine_periodi = risul_query($data_fine_periodi,0,datainizio);
    $data_fine_periodi = explode("-",$data_fine_periodi);
    $mese_fine_periodi = $data_fine_periodi[1] + (($data_fine_periodi[0] - $anno) * 12);
    if ($mese > $mese_fine_periodi) { $mese = $mese_fine_periodi; }

    $appartamenti = esegui_query("select * from $tableappartamenti order by idappartamenti");
    $num_appartamenti = numlin_query($appartamenti);

    $aggiunta_tronca = esegui_query("select valpersonalizza_num from $tablepersonalizza where idpersonalizza = 'aggiunta_tronca_nomi_tab1' and idutente = '$id_utente'");
    $aggiunta_tronca = risul_query($aggiunta_tronca,0,valpersonalizza_num);

    if ($priv_vedi_tab_mesi == "p") {
    unset($condizioni_regole1_consentite);
    unset($appartamenti_consentiti);
    unset($appartamenti_consentiti_regola1);
    unset($appartamenti_consentiti_regola2);
    unset($periodo_consentito_app);
    if ($attiva_regole1_consentite != "n") {
    for ($num1 = 0 ; $num1 < $num_appartamenti ; $num1++) {
    $id_appartamento = risul_query($appartamenti,$num1,idappartamenti);
    $appartamenti_consentiti_regola1[$id_appartamento] = "NO";
    } # fine for $num1
    for ($num1 = 0 ; $num1 < count($regole1_consentite) ; $num1++) if ($regole1_consentite[$num1]) $condizioni_regole1_consentite .= "motivazione = '".$regole1_consentite[$num1]."' or ";
    if ($condizioni_regole1_consentite) {
    $condizioni_regole1_consentite = "(".str_replace("motivazione = ' '","motivazione = '' or motivazione is null",substr($condizioni_regole1_consentite,0,-4)).")";
    $appartamenti_regola1 = esegui_query("select idregole,iddatainizio,iddatafine,app_agenzia from $tableregole where $condizioni_regole1_consentite order by app_agenzia");
    for ($num1 = 0 ; $num1 < numlin_query($appartamenti_regola1) ; $num1++) {
    $id_appartamento = risul_query($appartamenti_regola1,$num1,app_agenzia);
    if ($appartamenti_consentiti_regola1[$id_appartamento] != "SI") {
    $appartamenti_consentiti_regola1[$id_appartamento] = "SI";
    for ($num2 = 1 ; $num2 <= $id_data_fine_periodi ; $num2++) $periodo_consentito_app[$id_appartamento][$num2] = "NO";
    } # fine if ($appartamenti_consentiti_regola1[$id_appartamento] != "SI")
    $iddatainizio_regola1 = risul_query($appartamenti_regola1,$num1,iddatainizio);
    $iddatafine_regola1 = risul_query($appartamenti_regola1,$num1,iddatafine);
    for ($num2 = $iddatainizio_regola1 ; $num2 <= $iddatafine_regola1 ; $num2++) $periodo_consentito_app[$id_appartamento][$num2] = "SI";
    } # fine for $num1
    } # fine if ($condizioni_regole1_consentite)
    } # fine if ($attiva_regole1_consentite != "n")
    if (($priv_mod_assegnazione_app != "s" or $priv_mod_prenotazioni != "s") and ($priv_ins_assegnazione_app != "s" or $priv_ins_nuove_prenota != "s")) {
    $tutti_app_consentiti = "NO";
    $rigatariffe = esegui_query("select * from $tablenometariffe where idntariffe = 1 ");
    $numero_tariffe = risul_query($rigatariffe,0,nomecostoagg);
    for ($numtariffa = 1 ; $numtariffa <= $numero_tariffe ; $numtariffa++) {
    if ($attiva_tariffe_consentite == "n" or $tariffe_consentite_vett[$numtariffa] == "SI") {
    $tariffa = "tariffa".$numtariffa;
    $regola2 = esegui_query("select motivazione from $tableregole where tariffa_per_app = '$tariffa'");
    if (numlin_query($regola2) == 0) {
    $tutti_app_consentiti = "SI";
    break;
    } # fine if (numlin_query($regola2) == 0)
    else {
    $appartamenti_regola2 = explode(",",risul_query($regola2,0,motivazione));
    for ($num1 = 0 ; $num1 < count($appartamenti_regola2) ; $num1++) $appartamenti_consentiti_regola2[$appartamenti_regola2[$num1]] = "SI";
    } # fine else if (numlin_query($regola2) == 0)
    } # fine if ($attiva_tariffe_consentite == "n" or $tariffe_consentite_vett[$numtariffa] == "SI")
    } # fine for $numtariffa
    if ($tutti_app_consentiti != "SI") {
    for ($num1 = 0 ; $num1 < $num_appartamenti ; $num1++) {
    $id_appartamento = risul_query($appartamenti,$num1,idappartamenti);
    if ($appartamenti_consentiti_regola2[$id_appartamento] != "SI") $appartamenti_consentiti_regola2[$id_appartamento] = "NO";
    } # fine for $num1
    } # fine if ($tutti_app_consentiti != "SI")
    } # fine if (($priv_mod_assegnazione_app != "s" or...
    for ($num1 = 0 ; $num1 < $num_appartamenti ; $num1++) {
    $id_appartamento = risul_query($appartamenti,$num1,idappartamenti);
    if ($appartamenti_consentiti_regola1[$id_appartamento] != "NO" and $appartamenti_consentiti_regola2[$id_appartamento] != "NO") $appartamenti_consentiti[$id_appartamento] = "SI";
    else $appartamenti_consentiti[$id_appartamento] = "NO";
    } # fine for $num1
    } # fine if ($priv_vedi_tab_mesi == "p")

    $linee_ripeti_date_tab_mesi = esegui_query("select valpersonalizza_num from $tablepersonalizza where idpersonalizza = 'linee_ripeti_date_tab_mesi' and idutente = '$id_utente'");
    $linee_ripeti_date_tab_mesi = risul_query($linee_ripeti_date_tab_mesi,0,valpersonalizza_num);
    $mostra_giorni_tab_mesi = esegui_query("select valpersonalizza from $tablepersonalizza where idpersonalizza = 'mostra_giorni_tab_mesi' and idutente = '$id_utente'");
    $mostra_giorni_tab_mesi = risul_query($mostra_giorni_tab_mesi,0,valpersonalizza);

    function ins_nome_giorno (&$var,$g_corr) {
    $var .= "<small>";
    if ($g_corr == "0") $var .= mex(" Do","giorni_mesi.php");
    if ($g_corr == "1") $var .= mex(" Lu","giorni_mesi.php");
    if ($g_corr == "2") $var .= mex(" Ma","giorni_mesi.php");
    if ($g_corr == "3") $var .= mex(" Me","giorni_mesi.php");
    if ($g_corr == "4") $var .= mex(" Gi","giorni_mesi.php");
    if ($g_corr == "5") $var .= mex(" Ve","giorni_mesi.php");
    if ($g_corr == "6") $var .= mex(" Sa","giorni_mesi.php");
    $var = str_replace(" ","<br>",$var);
    $var .= "</small>";
    } # fine function ins_nome_giorno

    $num_righe_app_max = esegui_query("select valpersonalizza_num from $tablepersonalizza where idpersonalizza = 'num_linee_tab2_prenota' and idutente = '$id_utente'");
    $num_righe_app_max = risul_query($num_righe_app_max,0,valpersonalizza_num);
    $num_tabelle = floor($num_righe_app_max/$num_appartamenti);
    $mese_ini_for = $mese;
    $mese_fine_for = $mese;
    $mese_da_aggiungere = "dopo";
    for ($num1 = 2 ; $num1 <= $num_tabelle ; $num1++) {
    if ($mese_fine_for >= $mese_fine_periodi) $mese_da_aggiungere = "prima";
    if ($mese_da_aggiungere == "prima") {
    if ($mese_ini_for <= $mese_inizio_periodi) $mese_da_aggiungere = "dopo";
    else $mese_ini_for--;
    } # fine if ($mese_da_aggiungere == "prima")
    if ($mese_da_aggiungere == "dopo" and $mese_fine_for < $mese_fine_periodi) $mese_fine_for++;
    if ($mese_da_aggiungere == "prima") $mese_da_aggiungere = "dopo";
    else $mese_da_aggiungere = "prima";
    } # fine for $num1

    if ($tutti_mesi) {
    $mese_ini_for = $mese_inizio_periodi;
    $mese_fine_for = $mese_fine_periodi;
    $orig_tutti_mesi = "&tutti_mesi=SI";
    } # fine if ($tutti_mesi)

    for ($mese2 = $mese_ini_for ; $mese2 <= $mese_fine_for ; $mese2 = $mese2 + 1) {

    if ($mese2 > 48) {
    $mese_mostra = $mese2 - 48;
    $anno_mostra = $anno + 4;
    } # fine if ($mese2 > 48)
    else {
    if ($mese2 > 36) {
    $mese_mostra = $mese2 - 36;
    $anno_mostra = $anno + 3;
    } # fine if ($mese2 > 36)
    else {
    if ($mese2 > 24) {
    $mese_mostra = $mese2 - 24;
    $anno_mostra = $anno + 2;
    } # fine if ($mese2 > 24)
    else {
    if ($mese2 > 12) {
    $mese_mostra = $mese2 - 12;
    $anno_mostra = $anno + 1;
    } # fine if ($mese2 > 12)
    else {
    $mese_mostra = $mese2;
    $anno_mostra = $anno;
    } # fine else if ($mese2 > 12)
    } # fine else if ($mese2 > 24)
    } # fine else if ($mese2 > 36)
    } # fine else if ($mese2 > 48)

    if ($mese2 != $mese_ini_for) echo "<table><tr><td style=\"height: 6px;\"></td></tr></table>";
    echo "<table style=\"margin-left: auto; margin-right: auto;\"><tr><td style=\"width: 100px;\" align=\"right\">";
    if ($mese != 1) {
    $mese_prec = $mese - 1;
    echo "<a href=\"tabella2.php?anno=$anno&id_sessione=$id_sessione&mese=$mese_prec\"><--</a>    ";
    } # fine if ($mese != 1)
    echo "</td><td align=\"center\">
    <big><b>".mex("Tabella prenotazioni del",$pag)." $mese_mostra-$anno_mostra.</b></big>
    </td><td style=\"width: 100px;\" align=\"left\">";
    if ($mese != 48) {
    $mese_succ = $mese + 1;
    echo "    <a href=\"tabella2.php?anno=$anno&id_sessione=$id_sessione&mese=$mese_succ\">--></a>";
    } # fine if ($mese != 12)
    echo "</td></tr></table>
    <table style=\"margin-left: auto; margin-right: auto;\" border=1 cellspacing=0 cellpadding=1>";
    $mese_inizio_tab = $mese2;
    $data_inizio_tab = date("Y-m-d" , mktime(0,0,0,$mese_inizio_tab,1,$anno));
    $data_inizio_tab = esegui_query("select * from $tableperiodi where datainizio >= '$data_inizio_tab' order by idperiodi");
    $id_data_inizio_tab = risul_query($data_inizio_tab,0,idperiodi);
    if ($mese2 != $mese_inizio_periodi) {
    $g_inizio_tab = risul_query($data_inizio_tab,0,datainizio);
    $g_inizio_tab = explode("-",$g_inizio_tab);
    $g_inizio_tab = $g_inizio_tab[2];
    if ($g_inizio_tab == 7 or $g_inizio_tab == 6) { $id_data_inizio_tab = $id_data_inizio_tab - 1; }
    } # fine else if ($mese2 != $mese_inizio_periodi)
    $mese_fine_tab = $mese2;
    $data_fine_tab = date("Y-m-d" , mktime(0,0,0,$mese_fine_tab,31,$anno));
    $data_fine_tab = esegui_query("select * from $tableperiodi where datainizio <= '$data_fine_tab' order by idperiodi");
    $num_date = numlin_query($data_fine_tab);
    $num_date = $num_date - 1;
    $id_data_fine_tab = risul_query($data_fine_tab,$num_date,idperiodi);
    $g_fine_tab = risul_query($data_fine_tab,$num_date,datafine);
    $g_fine_tab = explode("-",$g_fine_tab);
    $g_fine_tab = $g_fine_tab[2];
    if ($g_fine_tab == 8 or $g_fine_tab == 9 or $g_fine_tab == 10) { $id_data_fine_tab = $id_data_fine_tab - 1; }
    if ($mese2 != $mese_fine_periodi) {
    if ($g_fine_tab == 7 or $g_fine_tab == 6) { $id_data_fine_tab = $id_data_fine_tab - 1; }
    } # fine else if ($mese2 != $mese_fine_periodi)
    $num_colonne = $id_data_fine_tab - $id_data_inizio_tab + 1;

    # controllo se vi sono prenotazioni in appartamenti cancellati o non mostrati
    $num_appartamenti_cancellati = 0;
    $query_prenota_app_canc = "select * from $tableprenota where iddatainizio <= '$id_data_fine_tab' and iddatafine >= '$id_data_inizio_tab'";
    for ($num1 = 0 ; $num1 < $num_appartamenti ; $num1 = $num1 + 1) {
    $id_appartamento = risul_query($appartamenti,$num1,idappartamenti);
    if ($priv_vedi_tab_mesi != "p" or $appartamenti_consentiti[$id_appartamento] != "NO") $query_prenota_app_canc .= " and idappartamenti != '$id_appartamento'";
    } # fine for $num1
    if ($priv_vedi_tab_mesi == "p") $query_prenota_app_canc .= " and utente_inserimento = '$id_utente'";
    $prenota_app_canc = esegui_query($query_prenota_app_canc);
    $num_prenota_app_canc = numlin_query($prenota_app_canc);
    $num_app_canc = 0;
    unset($app_canc_trovato);
    for ($num1 = 0 ; $num1 < $num_prenota_app_canc; $num1 = $num1 + 1) {
    $idapp_prenota_app_canc = risul_query($prenota_app_canc,$num1,idappartamenti);
    if ($app_canc_trovato[$idapp_prenota_app_canc] != "SI") {
    $app_canc_trovato[$idapp_prenota_app_canc] = "SI";
    $app_canc[$num_app_canc] = $idapp_prenota_app_canc;
    $num_app_canc++;
    } # fine if ($app_canc_trovato[$idapp_prenota_app_canc] != "SI")
    } # fine for $num1

    $linea_date = "<tr><td> </td>
    ";
    for ($num1 = 0 ; $num1 < $num_colonne ; $num1 = $num1 + 1) {
    $id_settimana = $id_data_inizio_tab + $num1;
    $riga_setimana = esegui_query("select * from $tableperiodi where idperiodi = '$id_settimana'");
    $inizio_settimana = risul_query($riga_setimana,0,datainizio);
    $inizio_settimana = explode("-",$inizio_settimana);
    $g_inizio_settimana = $inizio_settimana[2];
    $m_inizio_settimana = $inizio_settimana[1];
    $fine_settimana = risul_query($riga_setimana,0,datafine);
    $fine_settimana = explode("-",$fine_settimana);
    $g_fine_settimana = $fine_settimana[2];
    $m_fine_settimana = $fine_settimana[1];
    for ($num2 = 0 ; $num2 < 8 ; $num2 = $num2 + 1) {
    $num_giorno = $g_fine_settimana - 7 + $num2;
    if ($num_giorno < 1) { $num_giorno = $g_inizio_settimana + $num2; }
    if ($num2 != 7 or $num1 == ($num_colonne - 1)) {
    $linea_date .= "<td align=\"center\"";
    if ($num2 == 0 or $num2 == 7) {
    $linea_date .= " style=\"background-color: #cccccc;\"";
    if ($num1 != 0 and $num2 != 7) $linea_date .= " colspan=\"2\"";
    } # fine if ($num2 == 0)
    $lunghezza = strlen($num_giorno);
    if ($lunghezza == 1) { $num_giorno = "0".$num_giorno; }
    if ($mostra_giorni_tab_mesi == "SI") {
    $a_inizio_settimana = $inizio_settimana[0];
    $giorno_sett_corr = date("w" , mktime(0,0,0,$m_fine_settimana,($g_fine_settimana - 7 + $num2),$a_inizio_settimana));
    ins_nome_giorno($num_giorno,$giorno_sett_corr);
    } # fine if ($mostra_giorni_tab_mesi == "SI")
    $linea_date .= "><small><small>$num_giorno</small></small></td>
    ";
    } # fine if ($num2 != 7 or $num1 == ($num_colonne - 1))
    } # fine for $num2
    } # fine for $num1
    $linea_date .= "<td> </td></tr>";
    echo $linea_date;

    $num_ripeti = 1;

    for ($num1 = 0 ; $num1 < ($num_appartamenti + $num_app_canc) ; $num1 = $num1 + 1) {
    if ($num1 < $num_appartamenti) {
    $id_appartamento = risul_query($appartamenti,$num1,idappartamenti);
    $condizione_prenota_propria = "";
    } # fine if ($num1 < $num_appartamenti)
    else {
    $id_appartamento = $app_canc[($num1 - $num_appartamenti)];
    if ($priv_vedi_tab_mesi == "p") $condizione_prenota_propria = " and utente_inserimento = '$id_utente'";
    else $condizione_prenota_propria = "";
    } # fine else if ($num1 < $num_appartamenti)
    if ($priv_vedi_tab_mesi != "p" or $appartamenti_consentiti[$id_appartamento] != "NO" or $num1 >= $num_appartamenti) {

    if ($num1 > $num_appartamenti) echo "<tr><td style=\"color: red;\">";
    else echo "<tr><td>";
    if (num_caratteri_testo($id_appartamento) > 2) echo "<small><small>";
    else echo "<small>";
    echo "$id_appartamento";
    if (num_caratteri_testo($id_appartamento) > 2) echo "</small></small></td>";
    else echo "</small></td>";
    $prenotazione_presente = esegui_query("select * from $tableprenota where idappartamenti = '$id_appartamento' and iddatainizio <= '".($id_data_inizio_tab + $num_colonne - 1)."' and iddatafine >= '$id_data_inizio_tab'$condizione_prenota_propria order by iddatainizio");
    $num_prenotazione_presente = numlin_query($prenotazione_presente);
    $prenota_succ = 0;
    if ($num_prenotazione_presente > 0) $ini_prenota_succ = risul_query($prenotazione_presente,0,iddatainizio);
    else $ini_prenota_succ = $id_data_inizio_tab + $num_colonne + 1;

    for ($num2 = 0 ; $num2 < $num_colonne ; $num2 = $num2 + 1) {
    $id_settimana = $id_data_inizio_tab + $num2;
    if ($id_settimana >= $ini_prenota_succ) {
    $esiste = 1;
    $prenota_corr = $prenota_succ;
    $prenota_succ++;
    if ($num_prenotazione_presente > $prenota_succ) $ini_prenota_succ = risul_query($prenotazione_presente,$prenota_succ,iddatainizio);
    else {
    $ini_prenota_succ = (risul_query($prenotazione_presente,$prenota_corr,iddatafine) + 1);
    if (($id_data_inizio_tab + $num_colonne + 1) > $ini_prenota_succ) $ini_prenota_succ = $id_data_inizio_tab + $num_colonne + 1;
    } # fine else if ($num_prenotazione_presente > $prenota_succ)
    } # fine if ($id_settimana >= $ini_prenota_succ)
    else $esiste = 0;

    if ($esiste == 1) $utente_inserimento = risul_query($prenotazione_presente,$prenota_corr,utente_inserimento);
    else $utente_inserimento = $id_utente;
    if ($priv_vedi_tab_mesi == "p" and ($utente_inserimento != $id_utente or ($periodo_consentito_app[$id_appartamento][$id_settimana] == "NO" and $esiste != 1))) {
    if ($utente_inserimento != $id_utente) {
    $id_inizio_prenota = risul_query($prenotazione_presente,$prenota_corr,iddatainizio);
    $id_fine_prenota = risul_query($prenotazione_presente,$prenota_corr,iddatafine);
    if ($id_inizio_prenota > $id_data_inizio_tab) $id_inizio = $id_inizio_prenota;
    else $id_inizio = $id_data_inizio_tab;
    if ($id_fine_prenota < $id_data_fine_tab) $id_fine = $id_fine_prenota;
    else $id_fine = $id_data_fine_tab;
    $colonne = $id_fine - $id_inizio + 1;
    } # fine if ($utente_inserimento != $id_utente)
    else {
    $id_inizio = $id_settimana;
    $id_fine = $id_settimana;
    $colonne = 1;
    } # fine else if ($utente_inserimento != $id_utente)
    $fatto = "NO";
    if ($id_fine == $id_data_fine_tab) $fatto = "SI";
    while ($fatto == "NO") {
    $id_inizio2 = $id_fine + 1;
    if ($id_inizio2 >= $ini_prenota_succ) {
    $utente_inserimento2 = risul_query($prenotazione_presente,$prenota_succ,utente_inserimento);
    if ($utente_inserimento2 != $id_utente) {
    $id_fine_prenota = risul_query($prenotazione_presente,$prenota_succ,iddatafine);
    if ($id_fine_prenota < $id_data_fine_tab) $id_fine = $id_fine_prenota;
    else {
    $id_fine = $id_data_fine_tab;
    $id_fine_prenota = $id_fine;
    $fatto = "SI";
    } # fine else if ($id_fine_prenota < $id_data_fine_tab)
    $colonne = $id_fine - $id_inizio + 1;
    $prenota_corr = $prenota_succ;
    $prenota_succ++;
    if ($num_prenotazione_presente > $prenota_succ) $ini_prenota_succ = risul_query($prenotazione_presente,$prenota_succ,iddatainizio);
    else {
    $ini_prenota_succ = (risul_query($prenotazione_presente,$prenota_corr,iddatafine) + 1);
    if (($id_data_inizio_tab + $num_colonne + 1) > $ini_prenota_succ) $ini_prenota_succ = $id_data_inizio_tab + $num_colonne + 1;
    } # fine else if ($num_prenotazione_presente > $prenota_succ)
    } # fine if ($utente_inserimento2 != $id_utente)
    else $fatto = "SI";
    } # fine if ($id_inizio2 >= $ini_prenota_succ)
    else {
    if ($periodo_consentito_app[$id_appartamento][$id_inizio2] == "NO") {
    $id_fine++;
    if ($id_fine == $id_data_fine_tab) $fatto = "SI";
    $colonne++;
    } # fine if ($periodo_consentito_app[$id_appartamento][$$id_inizio2] == "NO")
    else $fatto = "SI";
    } # fine else if (numlin_query($prenotazione_successiva) == 1)
    } # fine while ($fatto == "NO")
    $colonne_span = $colonne * 8;
    echo "<td align=\"center\" colspan=\"$colonne_span\"><b>-</b></td>";
    $num2 = $num2 + $colonne - 1;
    } # fine if ($priv_vedi_tab_mesi == "p" and ($utente_inserimento != $id_utente or...
    else {

    if ($esiste == 1) {
    $id_prenota = risul_query($prenotazione_presente,$prenota_corr,idprenota);
    $id_clienti = risul_query($prenotazione_presente,$prenota_corr,idclienti);
    if ($id_clienti) {
    $cognome = esegui_query("select cognome,utente_inserimento from $tableclienti where idclienti = '$id_clienti'");
    $mostra_cliente = "SI";
    if ($vedi_clienti == "NO") $mostra_cliente = "NO";
    if ($vedi_clienti == "PROPRI") {
    $utente_inserimento = risul_query($cognome,0,utente_inserimento);
    if ($utente_inserimento != $id_utente) $mostra_cliente = "NO";
    } # fine if ($vedi_clienti == "PROPRI")
    if ($mostra_cliente == "NO") $cognome = $id_prenota;
    else $cognome = risul_query($cognome,0,cognome);
    } # fine if ($id_clienti)
    else $cognome = "?";

    $colore = "";
    $pagato = risul_query($prenotazione_presente,$prenota_corr,pagato);
    if (!$pagato) { $pagato = 0; }
    $caparra = risul_query($prenotazione_presente,$prenota_corr,caparra);
    if (!$caparra) { $caparra = 0; }
    $costo_tot = risul_query($prenotazione_presente,$prenota_corr,tariffa_tot);
    if ($pagato < $caparra) { $colore = "#CC0000"; }
    else { if ($pagato < $costo_tot) { $colore = "#FFCC00"; } }

    $id_inizio_prenota = risul_query($prenotazione_presente,$prenota_corr,iddatainizio);
    $id_fine_prenota = risul_query($prenotazione_presente,$prenota_corr,iddatafine);
    if ($id_inizio_prenota > $id_data_inizio_tab) { $id_inizio = $id_inizio_prenota; }
    else { $id_inizio = $id_data_inizio_tab; }
    if ($id_fine_prenota < $id_data_fine_tab) { $id_fine = $id_fine_prenota; }
    else { $id_fine = $id_data_fine_tab; }
    $colonne = $id_fine - $id_inizio + 1;

    $link_modifica = "SI";
    if ($priv_mod_prenotazioni == "n") $link_modifica = "NO";
    if ($priv_mod_prenotazioni == "p") {
    $utente_inserimento = risul_query($prenotazione_presente,$prenota_corr,utente_inserimento);
    if ($utente_inserimento != $id_utente) $link_modifica = "NO";
    } # fine if ($priv_mod_prenotazioni == "p")
    if ($priv_mod_prenota_iniziate != "s" and $id_periodo_corrente >= $id_inizio_prenota) $link_modifica = "NO";
    if ($priv_mod_prenota_ore != "000") {
    $adesso = date("YmdHis",(time() + (C_DIFF_ORE * 3600)));
    $data_ins = risul_query($prenotazione_presente,$prenota_corr,datainserimento);
    $limite = date("YmdHis",mktime((substr($data_ins,11,2) + $priv_mod_prenota_ore),substr($data_ins,14,2),substr($data_ins,17,2),substr($data_ins,5,2),substr($data_ins,8,2),substr($data_ins,0,4)));
    if ($adesso > $limite) $link_modifica = "NO";
    } # fine if ($priv_mod_prenota_ore != "000")
    if ($link_modifica == "SI" and $id_clienti) {
    $link_modifica_inizio = "<a href=\"modifica_prenota.php?id_prenota=$id_prenota&anno=$anno&id_sessione=$id_sessione&mese=$mese&origine=tabella2.php$orig_tutti_mesi\">";
    $link_modifica_fine = "</a>";
    } # fine if ($link_modifica == "SI" and $id_clienti)
    else {
    unset($link_modifica_inizio);
    unset($link_modifica_fine);
    } # fine else if ($link_modifica == "SI" and $id_clienti)

    $riduci_font = "";
    $lung_cognome = num_caratteri_testo($cognome);
    $lung_freccia = 0;
    if ($id_fine_prenota > $id_data_fine_tab or $id_inizio_prenota < $id_data_inizio_tab) $lung_freccia = 3;
    $lung_non_ridotta = (12+$aggiunta_tronca)*$colonne - $lung_freccia;
    if ($lung_cognome > $lung_non_ridotta) $riduci_font = "SI";
    $lung_non_tronca = (15+$aggiunta_tronca)*$colonne;
    if ($lung_freccia == 3) $lung_non_tronca = $lung_non_tronca - 1;
    if ($lung_cognome > ($lung_non_tronca+1) and $cognome != " ") $cognome = tronca_testo($cognome,0,$lung_non_tronca).".";
    echo "<td";
    #if ($colore) { echo " bgcolor =\"$colore\""; }
    $colonne_span = $colonne * 8;
    echo" align=\"center\" colspan=\"$colonne_span\">";
    if ($id_inizio_prenota < $id_data_inizio_tab) { echo "<- "; }
    echo "<small><small>
    $link_modifica_inizio$cognome$link_modifica_fine
    </small></small>";
    if ($id_fine_prenota > $id_data_fine_tab) { echo " ->"; }
    echo "</td>
    ";
    $num2 = $num2 + $colonne - 1;
    } # fine if ($esiste == 1)
    else {
    for ($num3 = 0 ; $num3 < 8 ; $num3 = $num3 + 1) {
    echo "<td";
    if ($num3 == 0 or $num3 == 7) { echo " style=\"background-color: #cccccc;\""; }
    echo "> </td>
    ";
    } # fine for $num3
    } # fine else if ($esiste == 1)

    } # fine else if ($priv_vedi_tab_mesi == "p" and ($utente_inserimento != $id_utente or...
    } # fine for $num2

    if ($num1 > $num_appartamenti) echo "<td style=\"color: red;\">";
    else echo "<td>";
    if (num_caratteri_testo($id_appartamento) > 2) echo "<small><small>";
    else echo "<small>";
    echo "$id_appartamento";
    if (num_caratteri_testo($id_appartamento) > 2) echo "</small></small></td>";
    else echo "</small></td>";
    echo "</tr>";

    if ($num_ripeti == $linee_ripeti_date_tab_mesi) {
    echo $linea_date;
    $num_ripeti = 1;
    } # fine if ($num_ripeti == $linee_ripeti_date_tab_mesi)
    else $num_ripeti++;
    } # fine if ($priv_vedi_tab_mesi != "p" or $appartamenti_consentiti[$id_appartamento] != "NO") {
    } # fine for $num1

    echo "</table>";

    } # fine for $mese2


    unlock_tabelle($tabelle_lock);

    echo "<table><tr><td style=\"height: 2px;\"></td></tr></table>
    <table style=\"margin-left: auto; margin-right: auto;\"><tr><td style=\"width: 100px;\" align=\"right\">";
    if ($mese != 1) {
    $mese_prec = $mese - 1;
    echo "<a href=\"tabella2.php?anno=$anno&id_sessione=$id_sessione&mese=$mese_prec\"><--</a>    ";
    } # fine if ($mese != 1)
    echo "</td><td align=\"center\">
    <form accept-charset=\"utf-8\" method=\"post\" action=\"tabella.php\"><div>
    <input type=\"hidden\" name=\"anno\" value=\"$anno\">
    <input type=\"hidden\" name=\"id_sessione\" value=\"$id_sessione\">
    <input type=\"hidden\" name=\"mese\" value=\"$mese\">
    <input class=\"sbutton\" type=\"submit\" name=\"tab2\" value=\"".mex("Visualizza la tabella normale",$pag)."\">
    </div></form></td><td style=\"width: 100px;\" align=\"left\">";
    if ($mese != 48) {
    $mese_succ = $mese + 1;
    echo "    <a href=\"tabella2.php?anno=$anno&id_sessione=$id_sessione&mese=$mese_succ\">--></a>";
    } # fine if ($mese != 12)
    echo "</td></tr><tr><td style=\"height: 2px;\"></td></tr>";

    if (!$tutti_mesi) echo "<tr><td></td><td align=\"center\">
    <form accept-charset=\"utf-8\" method=\"post\" action=\"tabella2.php\"><div>
    <input type=\"hidden\" name=\"anno\" value=\"$anno\">
    <input type=\"hidden\" name=\"id_sessione\" value=\"$id_sessione\">
    <input type=\"hidden\" name=\"mese\" value=\"$mese\">
    <input class=\"sbutton\" type=\"submit\" name=\"tutti_mesi\" value=\"".mex("Visualizza tutti i mesi",$pag)."\">
    </div></form></td><td></td></tr>";

    echo "<tr><td style=\"height: 2px;\"></td></tr><tr><td></td><td align=\"center\">
    <form accept-charset=\"utf-8\" method=\"post\" action=\"inizio.php\"><div>
    <input type=\"hidden\" name=\"anno\" value=\"$anno\">
    <input type=\"hidden\" name=\"id_sessione\" value=\"$id_sessione\">
    <input class=\"sbutton\" type=\"submit\" name=\"torna\" value=\"".mex("Torna al menù principale",$pag)."\">
    </div></form></td><td></td></tr><tr><td style=\"height: 20px;\"></td></tr></table>";



    if ($tema[$id_utente] and $tema[$id_utente] != "base" and @is_dir(";./includes/themes/".$tema[$id_utente])) include("./includes/themes/".$tema[$id_utente]."/foot.php");
    else include("./includes/foot.php");


    contoh tabel 3:
    $id_utente = controlla_login($numconnessione,$PHPR_TAB_PRE,$id_sessione,$nome_utente_phpr,$password_phpr,$anno);
    if ($id_utente) {

    if ($id_utente != 1) {
    $tableprivilegi = $PHPR_TAB_PRE."privilegi";
    $privilegi_annuali_utente = esegui_query("select * from $tableprivilegi where idutente = '$id_utente' and anno = '$anno'");
    if (numlin_query($privilegi_annuali_utente) == 0) $anno_utente_attivato = "NO";
    else {
    $anno_utente_attivato = "SI";
    $privilegi_globali_utente = esegui_query("select * from $tableprivilegi where idutente = '$id_utente' and anno = '1'");
    $priv_ins_clienti = risul_query($privilegi_globali_utente,0,priv_ins_clienti);
    if (substr($priv_ins_clienti,2,1) == "s") $vedi_clienti = "SI";
    if (substr($priv_ins_clienti,2,1) == "p") $vedi_clienti = "PROPRI";
    if (substr($priv_ins_clienti,2,1) != "s" and substr($priv_ins_clienti,2,1) != "p") $vedi_clienti = "NO";
    $priv_mod_prenota = risul_query($privilegi_annuali_utente,0,priv_mod_prenota);
    $priv_mod_prenotazioni = substr($priv_mod_prenota,0,1);
    $priv_mod_prenota_iniziate = substr($priv_mod_prenota,11,1);
    $priv_mod_prenota_ore = substr($priv_mod_prenota,12,3);
    $priv_vedi_tab = risul_query($privilegi_annuali_utente,0,priv_vedi_tab);
    $priv_vedi_tab_mesi = substr($priv_vedi_tab,0,1);
    if ($priv_vedi_tab_mesi == "p") {
    $regole1_consentite = risul_query($privilegi_annuali_utente,0,regole1_consentite);
    $attiva_regole1_consentite = substr($regole1_consentite,0,1);
    if ($attiva_regole1_consentite != "n") $regole1_consentite = explode("#@^";,substr($regole1_consentite,3));
    $tariffe_consentite = risul_query($privilegi_annuali_utente,0,tariffe_consentite);
    $attiva_tariffe_consentite = substr($tariffe_consentite,0,1);
    if ($attiva_tariffe_consentite == "s") {
    $tariffe_consentite = explode(",",substr($tariffe_consentite,2));
    unset($tariffe_consentite_vett);
    for ($num1 = 0 ; $num1 < count($tariffe_consentite) ; $num1++) if ($tariffe_consentite[$num1]) $tariffe_consentite_vett[$tariffe_consentite[$num1]] = "SI";
    } # fine if ($attiva_tariffe_consentite == "s")
    $priv_ins_prenota = risul_query($privilegi_annuali_utente,0,priv_ins_prenota);
    $priv_ins_nuove_prenota = substr($priv_ins_prenota,0,1);
    $priv_ins_assegnazione_app = substr($priv_ins_prenota,1,1);
    $priv_mod_assegnazione_app = substr($priv_mod_prenota,2,1);
    } # fine if ($priv_vedi_tab_mesi == "p")
    } # fine else if (numlin_query($privilegi_annuali_utente) == 0)
    } # fine if ($id_utente != 1)
    else {
    $anno_utente_attivato = "SI";
    $vedi_clienti = "SI";
    $priv_mod_prenotazioni = "s";
    $priv_mod_prenota_iniziate = "s";
    $priv_mod_prenota_ore = "000";
    $priv_vedi_tab_mesi = "s";
    } # fine else if ($id_utente != 1)
    if ($anno_utente_attivato == "SI" and $priv_vedi_tab_mesi != "n") {

    if (@is_file(";./dati/dati_subordinazione.php")) $priv_mod_prenotazioni = "n";


    if ($tema[$id_utente] and $tema[$id_utente] != "base" and @is_dir(";./includes/themes/".$tema[$id_utente])) include("./includes/themes/".$tema[$id_utente]."/head.php");
    else include("./includes/head.php");


    #$tabelle_lock = array("$tableprenota");
    $altre_tab_lock = array("$tableprenota","$tablenometariffe","$tableperiodi","$tableappartamenti","$tableclienti","$tableregole","$tablepersonalizza");
    $tabelle_lock = lock_tabelle($tabelle_lock,$altre_tab_lock);

    if ($priv_mod_prenota_iniziate != "s") $id_periodo_corrente = calcola_id_periodo_corrente ($anno);

    $oggi = date("j/n/Y",(time() + (C_DIFF_ORE * 3600)));
    $ora = date("H:i",(time() + (C_DIFF_ORE * 3600)));
    echo "<small><small>".mex("situazione alle",$pag)." $ora ".mex("del",$pag)." $oggi</small></small><br>";

    if ($anno_succ == "SI") { $mese = $mese + 12; }

    $data_inizio_periodi = esegui_query("select * from $tableperiodi where idperiodi = 1");
    $data_inizio_periodi = risul_query($data_inizio_periodi,0,datainizio);
    $data_inizio_periodi = explode("-",$data_inizio_periodi);
    $mese_inizio_periodi = $data_inizio_periodi[1];
    if ($mese < $mese_inizio_periodi) { $mese = $mese_inizio_periodi; }
    $data_fine_periodi = esegui_query("select max(idperiodi) from $tableperiodi");
    $id_data_fine_periodi = risul_query($data_fine_periodi,0,0);
    $data_fine_periodi = esegui_query("select * from $tableperiodi where idperiodi = '$id_data_fine_periodi'");
    $data_fine_periodi = risul_query($data_fine_periodi,0,datainizio);
    $data_fine_periodi = explode("-",$data_fine_periodi);
    $mese_fine_periodi = $data_fine_periodi[1] + (($data_fine_periodi[0] - $anno) * 12);
    if ($mese > $mese_fine_periodi) { $mese = $mese_fine_periodi; }

    $tipo_periodi = "g";
    $aggiunta_tronca = esegui_query("select valpersonalizza_num from $tablepersonalizza where idpersonalizza = 'aggiunta_tronca_nomi_tab1' and idutente = '$id_utente'");
    $aggiunta_tronca = risul_query($aggiunta_tronca,0,valpersonalizza_num);
    if ($aggiunta_tronca < -2) $aggiunta_tronca = -2;

    $appartamenti = esegui_query("select * from $tableappartamenti order by idappartamenti");
    $num_appartamenti = numlin_query($appartamenti);

    if ($priv_vedi_tab_mesi == "p") {
    unset($condizioni_regole1_consentite);
    unset($appartamenti_consentiti);
    unset($appartamenti_consentiti_regola1);
    unset($appartamenti_consentiti_regola2);
    unset($periodo_consentito_app);
    if ($attiva_regole1_consentite != "n") {
    for ($num1 = 0 ; $num1 < $num_appartamenti ; $num1++) {
    $id_appartamento = risul_query($appartamenti,$num1,idappartamenti);
    $appartamenti_consentiti_regola1[$id_appartamento] = "NO";
    } # fine for $num1
    for ($num1 = 0 ; $num1 < count($regole1_consentite) ; $num1++) if ($regole1_consentite[$num1]) $condizioni_regole1_consentite .= "motivazione = '".$regole1_consentite[$num1]."' or ";
    if ($condizioni_regole1_consentite) {
    $condizioni_regole1_consentite = "(".str_replace("motivazione = ' '","motivazione = '' or motivazione is null",substr($condizioni_regole1_consentite,0,-4)).")";
    $appartamenti_regola1 = esegui_query("select idregole,iddatainizio,iddatafine,app_agenzia from $tableregole where $condizioni_regole1_consentite order by app_agenzia");
    for ($num1 = 0 ; $num1 < numlin_query($appartamenti_regola1) ; $num1++) {
    $id_appartamento = risul_query($appartamenti_regola1,$num1,app_agenzia);
    if ($appartamenti_consentiti_regola1[$id_appartamento] != "SI") {
    $appartamenti_consentiti_regola1[$id_appartamento] = "SI";
    for ($num2 = 1 ; $num2 <= $id_data_fine_periodi ; $num2++) $periodo_consentito_app[$id_appartamento][$num2] = "NO";
    } # fine if ($appartamenti_consentiti_regola1[$id_appartamento] != "SI")
    $iddatainizio_regola1 = risul_query($appartamenti_regola1,$num1,iddatainizio);
    $iddatafine_regola1 = risul_query($appartamenti_regola1,$num1,iddatafine);
    for ($num2 = $iddatainizio_regola1 ; $num2 <= $iddatafine_regola1 ; $num2++) $periodo_consentito_app[$id_appartamento][$num2] = "SI";
    } # fine for $num1
    } # fine if ($condizioni_regole1_consentite)
    } # fine if ($attiva_regole1_consentite != "n")
    if (($priv_mod_assegnazione_app != "s" or $priv_mod_prenotazioni != "s") and ($priv_ins_assegnazione_app != "s" or $priv_ins_nuove_prenota != "s")) {
    $tutti_app_consentiti = "NO";
    $rigatariffe = esegui_query("select * from $tablenometariffe where idntariffe = 1 ");
    $numero_tariffe = risul_query($rigatariffe,0,nomecostoagg);
    for ($numtariffa = 1 ; $numtariffa <= $numero_tariffe ; $numtariffa++) {
    if ($attiva_tariffe_consentite == "n" or $tariffe_consentite_vett[$numtariffa] == "SI") {
    $tariffa = "tariffa".$numtariffa;
    $regola2 = esegui_query("select motivazione from $tableregole where tariffa_per_app = '$tariffa'");
    if (numlin_query($regola2) == 0) {
    $tutti_app_consentiti = "SI";
    break;
    } # fine if (numlin_query($regola2) == 0)
    else {
    $appartamenti_regola2 = explode(",",risul_query($regola2,0,motivazione));
    for ($num1 = 0 ; $num1 < count($appartamenti_regola2) ; $num1++) $appartamenti_consentiti_regola2[$appartamenti_regola2[$num1]] = "SI";
    } # fine else if (numlin_query($regola2) == 0)
    } # fine if ($attiva_tariffe_consentite == "n" or $tariffe_consentite_vett[$numtariffa] == "SI")
    } # fine for $numtariffa
    if ($tutti_app_consentiti != "SI") {
    for ($num1 = 0 ; $num1 < $num_appartamenti ; $num1++) {
    $id_appartamento = risul_query($appartamenti,$num1,idappartamenti);
    if ($appartamenti_consentiti_regola2[$id_appartamento] != "SI") $appartamenti_consentiti_regola2[$id_appartamento] = "NO";
    } # fine for $num1
    } # fine if ($tutti_app_consentiti != "SI")
    } # fine if (($priv_mod_assegnazione_app != "s" or...
    for ($num1 = 0 ; $num1 < $num_appartamenti ; $num1++) {
    $id_appartamento = risul_query($appartamenti,$num1,idappartamenti);
    if ($appartamenti_consentiti_regola1[$id_appartamento] != "NO" and $appartamenti_consentiti_regola2[$id_appartamento] != "NO") $appartamenti_consentiti[$id_appartamento] = "SI";
    else $appartamenti_consentiti[$id_appartamento] = "NO";
    } # fine for $num1
    } # fine if ($priv_vedi_tab_mesi == "p")

    $linee_ripeti_date_tab_mesi = esegui_query("select valpersonalizza_num from $tablepersonalizza where idpersonalizza = 'linee_ripeti_date_tab_mesi' and idutente = '$id_utente'");
    $linee_ripeti_date_tab_mesi = risul_query($linee_ripeti_date_tab_mesi,0,valpersonalizza_num);
    $mostra_giorni_tab_mesi = esegui_query("select valpersonalizza from $tablepersonalizza where idpersonalizza = 'mostra_giorni_tab_mesi' and idutente = '$id_utente'");
    $mostra_giorni_tab_mesi = risul_query($mostra_giorni_tab_mesi,0,valpersonalizza);

    function ins_nome_giorno (&$var,$g_corr) {
    $var .= "<small>";
    if ($g_corr == "0") $var .= mex(" Do","giorni_mesi.php");
    if ($g_corr == "1") $var .= mex(" Lu","giorni_mesi.php");
    if ($g_corr == "2") $var .= mex(" Ma","giorni_mesi.php");
    if ($g_corr == "3") $var .= mex(" Me","giorni_mesi.php");
    if ($g_corr == "4") $var .= mex(" Gi","giorni_mesi.php");
    if ($g_corr == "5") $var .= mex(" Ve","giorni_mesi.php");
    if ($g_corr == "6") $var .= mex(" Sa","giorni_mesi.php");
    $var = str_replace(" ","<br>",$var);
    $var .= "</small>";
    } # fine function ins_nome_giorno

    $num_righe_app_max = esegui_query("select valpersonalizza_num from $tablepersonalizza where idpersonalizza = 'num_linee_tab2_prenota' and idutente = '$id_utente'");
    $num_righe_app_max = risul_query($num_righe_app_max,0,valpersonalizza_num);
    $num_tabelle = floor($num_righe_app_max/$num_appartamenti);
    $mese_ini_for = $mese;
    $mese_fine_for = $mese;
    $mese_da_aggiungere = "dopo";
    for ($num1 = 2 ; $num1 <= $num_tabelle ; $num1++) {
    if ($mese_fine_for >= $mese_fine_periodi) $mese_da_aggiungere = "prima";
    if ($mese_da_aggiungere == "prima") {
    if ($mese_ini_for <= $mese_inizio_periodi) $mese_da_aggiungere = "dopo";
    else $mese_ini_for--;
    } # fine if ($mese_da_aggiungere == "prima")
    if ($mese_da_aggiungere == "dopo" and $mese_fine_for < $mese_fine_periodi) $mese_fine_for++;
    if ($mese_da_aggiungere == "prima") $mese_da_aggiungere = "dopo";
    else $mese_da_aggiungere = "prima";
    } # fine for $num1

    if ($tutti_mesi) {
    $mese_ini_for = $mese_inizio_periodi;
    $mese_fine_for = $mese_fine_periodi;
    $orig_tutti_mesi = "&amp;tutti_mesi=SI";
    } # fine if ($tutti_mesi)

    for ($mese2 = $mese_ini_for ; $mese2 <= $mese_fine_for ; $mese2 = $mese2 + 1) {

    if ($mese2 > 48) {
    $mese_mostra = $mese2 - 48;
    $anno_mostra = $anno + 4;
    } # fine if ($mese2 > 48)
    else {
    if ($mese2 > 36) {
    $mese_mostra = $mese2 - 36;
    $anno_mostra = $anno + 3;
    } # fine if ($mese2 > 36)
    else {
    if ($mese2 > 24) {
    $mese_mostra = $mese2 - 24;
    $anno_mostra = $anno + 2;
    } # fine if ($mese2 > 24)
    else {
    if ($mese2 > 12) {
    $mese_mostra = $mese2 - 12;
    $anno_mostra = $anno + 1;
    } # fine if ($mese2 > 12)
    else {
    $mese_mostra = $mese2;
    $anno_mostra = $anno;
    } # fine else if ($mese2 > 12)
    } # fine else if ($mese2 > 24)
    } # fine else if ($mese2 > 36)
    } # fine else if ($mese2 > 48)

    if ($mese2 != $mese_ini_for) echo "<table><tr><td style=\"height: 6px;\"></td></tr></table>";
    echo "<table style=\"margin-left: auto; margin-right: auto;\"><tr><td style=\"width: 100px;\" align=\"right\">";
    if ($mese != 1) {
    $mese_indietro = $mese - 1;
    echo "<a href=\"tabella3.php?anno=$anno&amp;id_sessione=$id_sessione&amp;mese=$mese_indietro\"><--</a>&nbsp;&nbsp;&nbsp;&nbsp;";
    } # fine if ($mese != 1)


    yg lain dpt dilihat via url di atas.
  • Anda hanya memberi skrip tanpa menerangkan logikanya seperti apa. Jadi kayaknya percuma deh. Kayaknya dari website spanyol atau itali yah. Nama variabelnya itu aneh banget

    if ($condizioni_regole1_consentite) {
    ...
    for ($mese2 = $mese_ini_for ; $mese2 <= $mese_fine_for ; $mese2 = $mese2 + 1) {
    ...

    Saya jamin TSnya nggk ngerti deh :D
  • Oh ya. Saya baru nge waku baca ulang script itu sebab sudah lama sekali. tadi iseng-iseng saya buka trus jalankan di appserv 2.5.9 berjalan mulus dan sangat bagus karena bilingual/ada pilihan bahasa Inggris atau yg lain. waktu saya pilih English dpt saya set dg baik maka saya ambil beberapa pokok varibel pengelolaan database yg secara prinsip CMS sdh memenuhi kriteria, memang ada sepertiga bagian saya buang spy jangan terlalu panjang.
    Tujuannya memang bukan u/ pemula krn kode sumber lengkap paket itu sdh termasuk katergori profesional dan sdh diuji coba kalau tidak salah sejak tahun 2001 yang lalu.
    Sebenarnya saya hanya ingin menegaskan satu hal saja bahwa spt yg saya katakan pada prinsipnya sejenis multiple select database : gabung, cari, urut dan tampilkan. itu saja tidak lebih dan tidak kurang.
    Saya sengaja merujuk ke kode sumber luar yg memang dpt diandalkan krn saya amati anggota di diskusiweb.com ini alergi dg karya putra bangsa yg kadang-kadang tidak kalah dg kode sumber dari luar Indonesia karena merekapun melihat-mengambil dan menata ulang kode sumber berikutnya.
    Secara pribadi saya mencoba mengangkat programmer dini yg ingin memulai kariernya berupa menulis buku dan menata website salah satunya penulis buku sakti php. Kelihatannya memang sombong banget dhe. Dulu saya mengikuti buku itu dan posting sekitar Next Prev/paginasi, ada beberapa anggota memrotes tegas termasuk si jogo PHP Mr. Yosun_Lie. saya ingat itu. maka saya mencoba mengirim data bergaya low profile dan mengirim url mengejutkan berlevel sourceforge.
    Saya katakan ini karena saya ingin model dan gaya endonesia.com, bahasa pemrograman BATAK (murni pakai C/C++, buku sakti php, buku resep pemrograman PHP, dls dpt menjadi acuan belajar.
    Setelah saya melihat dan menguji kode sumber dari buku-buku terbitan Andi Offset/PT Elex/Dian Rakyat maka saya menyimpulkan banyak hal tip dan trik pemrograman PHP/MySQL telah dibahas hanya belum tuntas. Bagi yg terbiasa baca buku/ebook/internet ala speedy maka tidak banyak masalah.
    Saya sedang menyiapkan yahoogroups u/ satu komunitas dan sedang mencoba upload bahan/file2, diharapkan dg apa yang saya kirim dan komentari nantinya menjadi bahan pembelajaran. saya memakai forum ini sebagai media penelitian masyarakat pemakai media maya u/ bidang2 khusus. saya menulis ini secara terbuka sengaja u/ dikritisi. tapi bukan soal panjang pendeknya tulisan/posting saya tapi adalah masalah mutu bahan pembelajaran. jurus jitu dan ampuh.
  • Ya kalau di jalanka pasti bisa. cuma kodingnya itu bikin bingung. Pemakain nama variabel yang bahasanya kurang dipahami. Juga nama fungsi buatannya.
    Siapa bilang alergi. Banyak kok contohnya. Lihat saja topik php snippets. Disana banyak kok yang memakai.
  • @Lenox
    angkat lagi ah.. saya lagi bikin reservasi online juga. Gimana bikin tampilan kayak denah kamar ya? jadi ntar user bisa tau kamar mana yg masih kosong ataupun yg sudah terisi gt.. nah pesennya bisa langsung klik di gambar denahnya?

    KLo membuat tampilan denah kamar sptnya susah banget, bikin saja dalam bentuk gambar biasa misal kotak. merah utk kamar yg terisi dan hijau utk kamar kosong. mirip seperti denah untuk perumahan. gunakan koordinat(X,Y) tiap kamar utk menentukan lokasi kamar2 tersebut.
  • Masuk ke tabel transaksi aja. Kalau membatalkan tinggal hapus aja.
    Buat 1 tabel lg untuk pembayaran. Kan bisa saja dia kasih DP dulu.
  • programnya udah jadi, uang proyeknya udah habis xixixixi
  • *detnot koplak* :))
Sign In or Register to comment.