ce-saig / LeafBox

ระบบจัดการสื่อในห้องสมุด ศูนย์เทคโนโลยีคนตาบอด
http://lib.saig.kmitl.net
1 stars 4 forks source link

Apply Dependency injection in Media #125

Open zikosw opened 9 years ago

zikosw commented 9 years ago

In

So we didnt need to do repeat things like this

public function editAmountMediaPart($media_type, $media_id, $amount) {
    if($media_type == "braille") {
      $media = Braille::find($media_id);
      $lastItem = Brailledetail::where('braille_id', '=', $media_id)->get();
      $currentAmount = $lastItem->last()->part;
      if($amount - $currentAmount > 0) {
        for($i=$currentAmount + 1; $i<=$amount; $i++){
          $brailledetail = new Brailledetail();
          $brailledetail->part = $i;
          $brailledetail->status = 0;
          $brailledetail->date = (date("Y") + 543).date("-m-d H:i:s");
          $brailledetail->braille()->associate($media);
          $brailledetail->save();
        }
      }
      else {
        for($i=$currentAmount; $i>$amount; $i--){
          $brailledetail = Brailledetail::where('part', '=', $i);
          $brailledetail->delete();
        }
      }
    }
    else if($media_type == "cassette") {
      $media = Cassette::find($media_id);
      $lastItem = Cassettedetail::where('cassette_id', '=', $media_id)->get();
      $currentAmount = $lastItem->last()->part;
      if($amount - $currentAmount > 0) {
        for($i=$currentAmount + 1; $i<=$amount; $i++){
          $cassettedetail = new Cassettedetail();
          $cassettedetail->part = $i;
          $cassettedetail->status = 0;
          $cassettedetail->date = (date("Y") + 543).date("-m-d H:i:s");
          $cassettedetail->cassette()->associate($media);
          $cassettedetail->save();
        }
      }
      else {
        for($i=$currentAmount; $i>$amount; $i--){
          $cassettedetail = Cassettedetail::where('part', '=', $i);
          $cassettedetail->delete();
        }
      }
    }
    else if($media_type == "cd") {
      $media = CD::find($media_id);
      $lastItem = Cddetail::where('cd_id', '=', $media_id)->get();
      $currentAmount = $lastItem->last()->part;
      if($amount - $currentAmount > 0) {
        for($i=$currentAmount + 1; $i<=$amount; $i++){
          $cddetail = new Cddetail();
          $cddetail->part = $i;
          $cddetail->status = 0;
          $cddetail->date = (date("Y") + 543).date("-m-d H:i:s");
          $cddetail->cd()->associate($media);
          $cddetail->save();
        }
      }
      else {
        for($i=$currentAmount; $i>$amount; $i--){
          $cddetail = Cddetail::where('part', '=', $i);
          $cddetail->delete();
        }
      }
    }
    else if($media_type == "daisy") {
      $media = Daisy::find($media_id);
      $lastItem = Daisydetail::where('daisy_id', '=', $media_id)->get();
      $currentAmount = $lastItem->last()->part;
      if($amount - $currentAmount > 0) {
        for($i=$currentAmount + 1; $i<=$amount; $i++){
          $daisydetail = new Daisydetail();
          $daisydetail->part = $i;
          $daisydetail->status = 0;
          $daisydetail->date = (date("Y") + 543).date("-m-d H:i:s");
          $daisydetail->daisy()->associate($media);
          $daisydetail->save();
        }
      }
      else {
        for($i=$currentAmount; $i>$amount; $i--){
          $daisydetail = Daisydetail::where('part', '=', $i);
          $daisydetail->delete();
        }
      }
    }
    else {
      $media = DVD::find($media_id);
      $lastItem = Dvddetail::where('dvd_id', '=', $media_id)->get();
      $currentAmount = $lastItem->last()->part;
      if($amount - $currentAmount > 0) {
        for($i=$currentAmount + 1; $i<=$amount; $i++){
          $dvddetail = new Dvddetail();
          $dvddetail->part = $i;
          $dvddetail->status = 0;
          $dvddetail->date = (date("Y") + 543).date("-m-d H:i:s");
          $dvddetail->cassette()->associate($media);
          $dvddetail->save();
        }
      }
      else {
        for($i=$currentAmount; $i>$amount; $i--){
          $dvddetail = Dvddetail::where('part', '=', $i);
          $dvddetail->delete();
        }
      }
    }
    $media->numpart = $amount;
    $media->save();
  }
zikosw commented 9 years ago

https://ideone.com/XP9gjt

zikosw commented 9 years ago

https://gist.github.com/jigkoxsee/98ee13a16be0421d2b11