コード例 #1
0
 /**
  * Reverse the migrations.
  *
  * @return void
  */
 public function down()
 {
     (new CreateCijeneTable())->up();
     $relations = DB::table('c_m_p')->get();
     foreach ($relations as $r) {
         $c = Cjenovnik::find($r->cjenovnik_id);
         DB::table('cijene')->insert(array('predmet_id' => $r->predmet_id, 'mjera_id' => $r->mjera_id, 'individualno' => $c->cijena_1_osoba, 'popust' => $c->cijena_1_osoba - $c->cijena_2_osobe, 'minimalno' => $c->cijena_vise_osoba));
     }
 }
コード例 #2
0
 /**
  * Run the migrations.
  *
  * @return void
  */
 public function up()
 {
     Schema::create('cjenovnici', function (Blueprint $table) {
         $table->increments('id');
         $table->string('ime', 50);
         $table->text('opis')->nullable();
         $table->integer('cijena_1_osoba')->unsigned();
         $table->integer('cijena_2_osobe')->unsigned();
         $table->integer('cijena_3_osobe')->unsigned();
         $table->integer('cijena_4_osobe')->unsigned();
         $table->integer('cijena_vise_osoba')->unsigned();
         $table->integer('instruktor_1_osoba')->unsigned();
         $table->integer('instruktor_2_osobe')->unsigned();
         $table->integer('instruktor_3_osobe')->unsigned();
         $table->integer('instruktor_4_osobe')->unsigned();
         $table->integer('instruktor_udio_vise_osoba')->unsigned();
         $table->timestamps();
     });
     //Populate
     $res = DB::table('cijene')->groupBy('individualno', 'popust', 'minimalno')->get();
     $po_osobi = function ($t, $n) {
         $x = $t->individualno - ($n - 1) * $t->popust;
         if ($x < $t->minimalno) {
             return $t->minimalno;
         }
         return $x;
     };
     $instruktoru = function ($t, $n) use($po_osobi) {
         $u = $po_osobi($t, $n) * $n;
         return $u - Naplata::getSatnicaZaTvrtku($u);
     };
     $i = 0;
     foreach ($res as $triplet) {
         $i++;
         $triplet->cjenovnik_id = Cjenovnik::create(array('ime' => "Cjenovnik {$i}", 'cijena_1_osoba' => $po_osobi($triplet, 1), 'cijena_2_osobe' => $po_osobi($triplet, 2), 'cijena_3_osobe' => $po_osobi($triplet, 3), 'cijena_4_osobe' => $po_osobi($triplet, 4), 'cijena_vise_osoba' => $triplet->minimalno, 'instruktor_1_osoba' => $instruktoru($triplet, 1), 'instruktor_2_osobe' => $instruktoru($triplet, 2), 'instruktor_3_osobe' => $instruktoru($triplet, 3), 'instruktor_4_osobe' => $instruktoru($triplet, 4), 'instruktor_udio_vise_osoba' => 50))->id;
     }
     //Populated
     Schema::create('c_m_p', function (Blueprint $table) {
         $table->integer('cjenovnik_id')->unsigned()->index();
         $table->integer('mjera_id')->unsigned()->index();
         $table->integer('predmet_id')->unsigned()->index();
         $table->primary(array('mjera_id', 'predmet_id'));
     });
     Schema::table('c_m_p', function (Blueprint $table) {
         $table->foreign('cjenovnik_id')->references('id')->on('cjenovnici')->onUpdate('cascade')->onDelete('cascade');
         $table->foreign('mjera_id')->references('id')->on('mjere')->onUpdate('cascade')->onDelete('cascade');
         $table->foreign('predmet_id')->references('id')->on('predmeti')->onUpdate('cascade')->onDelete('cascade');
     });
     // Populate c_m_p
     foreach ($res as $triplet) {
         $relations = DB::table('cijene')->where('individualno', '=', $triplet->individualno)->where('popust', '=', $triplet->popust)->where('minimalno', '=', $triplet->minimalno)->get();
         foreach ($relations as $relation) {
             DB::table('c_m_p')->insert(array('cjenovnik_id' => $triplet->cjenovnik_id, 'mjera_id' => $relation->mjera_id, 'predmet_id' => $relation->predmet_id));
         }
     }
     // populated c_m_p
 }
コード例 #3
0
ファイル: create.blade.php プロジェクト: Firtzberg/Edu
}
?>
>
            {{ Form::label('Trajanje') }}
            <div class="row">
                <div class="col-xs-6">
                    {{ Form::input('number', 'stvarna_kolicina', null,
				$requiredPositive) }}</div>
                <div class="col-xs-6">
                    {{ Form::select('stvarna_mjera', \Mjera::all()->lists('simbol', 'id'), $rezervacija->mjera_id,
				$required) }}</div>
            </div>
            <script type="text/javascript">
                mjereManager.begin(<?php 
$cjenovnici = Cjenovnik::whereIn('id', $rezervacija->predmet->c_m_p->map(function ($mjera) {
    return $mjera->pivot->cjenovnik_id;
})->toArray())->get();
echo json_encode($rezervacija->predmet->c_m_p->map(function ($mjera) use($cjenovnici) {
    $cjenovnik = $cjenovnici->first(function ($index, $cjenovnik) use($mjera) {
        return $cjenovnik->id == $mjera->pivot->cjenovnik_id;
    });
    return array('id' => $mjera->id, 'ime' => $mjera->znacenje, 'cijena_1_osoba' => $cjenovnik->cijena_1_osoba, 'cijena_2_osobe' => $cjenovnik->cijena_2_osobe, 'cijena_3_osobe' => $cjenovnik->cijena_3_osobe, 'cijena_4_osobe' => $cjenovnik->cijena_4_osobe, 'cijena_vise_osoba' => $cjenovnik->cijena_vise_osoba);
})->toArray());
?>
);
            </script>
        </div>
        <p>Ukupno po osobi <strong class = "perPersonDisplay">{{ $poOsobi*$rezervacija->kolicina }}</strong></p>
    </div>
</div>
<p>Ukupno za platiti <strong class = "total_display">{{ $poOsobi*$rezervacija->kolicina*$brojPolaznika }}</strong></p>
コード例 #4
0
ファイル: Cjenovnik.php プロジェクト: Firtzberg/Edu
 /**
  * 
  * @param array $input
  * @return null|string
  */
 public function getErrorOrSync($input)
 {
     $ime = $this->ime;
     if (isset($input['ime'])) {
         $ime = $input['ime'];
     }
     if (!$ime) {
         return 'Ime cjenovnika je obvezno.';
     }
     $data[2]['key'] = 'cijena_2_osobe';
     $data[3]['key'] = 'cijena_3_osobe';
     $data[4]['key'] = 'cijena_4_osobe';
     $data[2]['key2'] = 'instruktor_2_osobe';
     $data[3]['key2'] = 'instruktor_3_osobe';
     $data[4]['key2'] = 'instruktor_4_osobe';
     $cijena_1_osoba = $this->cijena_1_osoba;
     if (isset($input['cijena_1_osoba'])) {
         $cijena_1_osoba = $input['cijena_1_osoba'];
     }
     if (!$cijena_1_osoba) {
         return 'Cijena za 1 osobu je obvezna.';
     }
     $prethodna_cijena = $cijena_1_osoba;
     $instruktor_1_osoba = $this->instruktor_1_osoba;
     if (isset($input['instruktor_1_osoba'])) {
         $instruktor_1_osoba = $input['instruktor_1_osoba'];
     }
     if (!$instruktor_1_osoba) {
         return 'Instruktorov udio za 1 osobu je obvezan.';
     }
     $prethodno_instruktoru = $instruktor_1_osoba;
     if ($prethodno_instruktoru > $prethodna_cijena) {
         return "Instruktorova zarada za 1 osobu je veća od ukupne zarade.";
     }
     for ($i = 2; $i < 5; $i++) {
         $data[$i]['value'] = $this[$data[$i]['key']];
         $data[$i]['value2'] = $this[$data[$i]['key2']];
         if (isset($input[$data[$i]['key']])) {
             $data[$i]['value'] = $input[$data[$i]['key']];
         }
         if (isset($input[$data[$i]['key2']])) {
             $data[$i]['value2'] = $input[$data[$i]['key2']];
         }
         if (!$data[$i]['value']) {
             return "Cijena za {$i} osobe je obvezna.";
         }
         if (!$data[$i]['value2']) {
             return "Instruktorov udio za {$i} osobe je obvezan.";
         }
         if ($prethodna_cijena < $data[$i]['value']) {
             return "Cijena po osobi je za {$i} osobe veća nego za " . ($i - 1) . '.';
         }
         $prethodna_cijena = $data[$i]['value'];
         if ($prethodno_instruktoru > $data[$i]['value2']) {
             return "Instruktorova satnica za {$i} osobe je manja nego za " . ($i - 1) . '.';
         }
         $prethodno_instruktoru = $data[$i]['value2'];
         if ($prethodno_instruktoru > $prethodna_cijena * $i) {
             return "Instruktorova zarada za {$i} osobe je veća od ukupne zarade.";
         }
     }
     $cijena_vise_osoba = $this->cijena_vise_osoba;
     if (isset($input['cijena_vise_osoba'])) {
         $cijena_vise_osoba = $input['cijena_vise_osoba'];
     }
     if (!$cijena_vise_osoba) {
         return 'Cijena za 5 i više osoba je obvezna.';
     }
     if ($prethodna_cijena < $cijena_vise_osoba) {
         return 'Cijena po osobi je za 5 i više osoba veća nego za 4.';
     }
     $instruktor_udio_vise_osoba = $this->instruktor_udio_vise_osoba;
     if (isset($input['instruktor_udio_vise_osoba'])) {
         $instruktor_udio_vise_osoba = $input['instruktor_udio_vise_osoba'];
     }
     if (!$instruktor_udio_vise_osoba) {
         return 'Instruktorov udio za 5 i više osoba je obvezan.';
     }
     //provjera zauzetosti imena
     $query = Cjenovnik::where('ime', '=', $ime);
     if ($this->id > 0) {
         $query = $query->where('id', '!=', $this->id);
     }
     if ($query->count() > 0) {
         return 'Već postoji cjenovnik s imenom ' . $ime . '.';
     }
     //kraj provjere zauzetosti imena
     //pohrana podataka
     $this->ime = $ime;
     $this->cijena_1_osoba = $cijena_1_osoba;
     $this->cijena_vise_osoba = $cijena_vise_osoba;
     $this->instruktor_1_osoba = $instruktor_1_osoba;
     $this->instruktor_udio_vise_osoba = $instruktor_udio_vise_osoba;
     for ($i = 2; $i < 5; $i++) {
         $this[$data[$i]['key']] = $data[$i]['value'];
         $this[$data[$i]['key2']] = $data[$i]['value2'];
     }
     if (isset($input['opis'])) {
         $this->opis = $input['opis'];
     }
     $this->save();
 }
コード例 #5
0
ファイル: CjenovnikController.php プロジェクト: Firtzberg/Edu
 /**
  * Remove the specified resource from storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function destroy($id)
 {
     $cjenovnik = Cjenovnik::find($id);
     if (!$cjenovnik) {
         return $this->itemNotFound();
     }
     if ($cjenovnik->c_m_p()->count()) {
         Session::flash(self::DANGER_MESSAGE_KEY, 'Nije moguće ukloniti cjenovnik, dok ga još neki predmeti koriste.');
         return Redirect::route('Cjenovnik.show', array($cjenovnik->id));
     }
     $cjenovnik->delete();
     Session::flash(self::SUCCESS_MESSAGE_KEY, 'Cjenovnik je uspješno uklonjen!');
     return Redirect::route('Cjenovnik.index');
 }
コード例 #6
0
ファイル: create.blade.php プロジェクト: Firtzberg/Edu
$cjenovnici = Cjenovnik::lists('ime', 'id');
?>
    @foreach($mjere as $id => $znacenje)
    <div class="form-group">
        <?php 
$cjenovnik = null;
$cjenovnik_id = null;
if (isset($predmet)) {
    $cjenovnik = $predmet->cjenovnik($id);
    if ($cjenovnik) {
        $cjenovnik_id = $cjenovnik->id;
    }
}
$cjenovnik_id = Input::old("cjenovnik_id_{$id}", $cjenovnik_id);
if ($cjenovnik_id) {
    $cjenovnik = Cjenovnik::find($cjenovnik_id);
} else {
    $cjenovnik = null;
}
?>
        @if($cjenovnik)
        Cjenovnik za <strong>{{ $znacenje }}</strong> {{ Form::select("cjenovnik_id_$id", $cjenovnici, $cjenovnik->id, $required) }}
        <div class="cjenovnik_table">
            {{ View::make('Cjenovnik.table')->with('cjenovnik', $cjenovnik)->render() }}
        </div>
        @else
        Cjenovnik za <strong>{{ $znacenje }}</strong> {{ Form::select("cjenovnik_id_$id", $cjenovnici, null, $required) }}
        <div class="cjenovnik_table"></div>
        @endif
    </div>
    @endforeach
コード例 #7
0
ファイル: Predmet.php プロジェクト: Firtzberg/Edu
 public function getErrorOrCijenaSyncArray($input)
 {
     $syncArray = array();
     //obilazak za svaku mjeru u sustavu
     foreach (Mjera::all() as $mjera) {
         //začimanje potrebnih podataka
         if (isset($input["cjenovnik_id_{$mjera->id}"])) {
             $cjenovnik_id = $input["cjenovnik_id_{$mjera->id}"];
         } else {
             return 'Niste odabrali cjenovnik za ' . $mjera->znacenje . '.';
         }
         //kraj začimanja potrebnih podataka
         //provjera vrijednosti podataka
         $cjenovnik = Cjenovnik::find($cjenovnik_id);
         if (!$cjenovnik) {
             return "Zadani cjenovnik za {$mjera->znacenje} nije pronađen u sustavu.";
         }
         //kraj provjere vrijednosti podataka
         //pridruživanje vrijednosti
         $syncArray[$mjera->id] = array('cjenovnik_id' => $cjenovnik_id);
         //kraj pridruživanja
     }
     //kraj obilaska za svaku mjeru u sustavu
     return $syncArray;
 }