public function testSaveDelete() { RoyaltyStream::truncate(); $rs = new RoyaltyStream(); $rs->stream_file_id = 2; $rs->save(); $this->assertTrue($rs->id != 0); $this->assertTrue($rs->created != null); $this->assertTrue($rs->updated != null); // $this->assertTrue($rp["deleted"] == 0); $rs->delete(); $this->assertTrue($rs->deleted == 1); RoyaltyStream::truncate(); }
public function convertToRoyaltyStreams($rpf) { $payments = RoyaltyPayment::attachedGroupedByPayeeCode($rpf->id)->get(); $royaltyStreamFiles = []; $rollupDeals = []; foreach ($payments as $payment) { $user = User::where('code', '=', $payment->payee_code)->first(); if ($user != null) { $deal = $this->findOrCreateDeal($user); $rollupDeals[] = $deal->id; $royaltyStreamFile = $this->saveRoyaltyStreamFile($rpf, $deal); $royaltyStreamFiles[] = $royaltyStreamFile; } } RoyaltyStream::loadFromFile($royaltyStreamFiles); RoyaltyStream::cleanEmptyStreams(); $this->runRollupDeals($rollupDeals); }
public static function apiStats($id) { $query = self::query(); $statsStartDate = new DateTime(); //get average if (sizeof(RoyaltyStreamFile::lastRoyaltyFile($id)->get()) > 0) { $lastRoyaltyStreamFile = RoyaltyStreamFile::lastRoyaltyFile($id)->get()[0]; $statsStartDate->setDate($lastRoyaltyStreamFile->period_year, $lastRoyaltyStreamFile->period_month, 1); } $last12monthDate = $statsStartDate->modify('-12 month'); $last12monthAmount = $query->select(DB::raw("SUM(royalty_stream.royalty_amount) as amount"))->join(RoyaltyStreamFile::table() . " as royalty_stream_file", 'royalty_stream_file.deal_id', '=', 'deal.id')->join(RoyaltyStream::table() . " as royalty_stream", 'royalty_stream_file.id', '=', 'stream_file_id')->where('deal_id', $id)->where(DB::raw("CONCAT(royalty_stream_file.period_year, '-',royalty_stream_file.period_month)"), '>=', $last12monthDate)->first()["amount"]; $query = self::query(); $last12monthAmountTop5Songs = $query->select('royalty_stream.song_title', DB::raw("SUM(royalty_stream.royalty_amount) as amount"))->join(RoyaltyStreamFile::table() . " as royalty_stream_file", 'royalty_stream_file.deal_id', '=', 'deal.id')->join(RoyaltyStream::table() . " as royalty_stream", 'royalty_stream_file.id', '=', 'stream_file_id')->groupBy('royalty_stream.song_title')->where('deal_id', $id)->orderBy('amount', 'desc')->limit(5)->where(DB::raw("CONCAT(royalty_stream_file.period_year, '-',royalty_stream_file.period_month)"), '>=', $last12monthDate)->get(); $sum = 0; foreach ($last12monthAmountTop5Songs as $song) { $sum += $song->amount; } return ['last_12_month_avg' => $last12monthAmount, 'top_5_song_avg' => $sum]; }
public function testEmptyLinesInFile() { $this->resetEvents(); $fileName = "with_empty_lines.csv"; $path = $this->copyFileToTemp($fileName); $s = $this->service(); $companyId = rand(1000, 1000000); $fileDetails = ["year" => 2015, "month" => 7]; $rpf = $s->process($path, $companyId, $fileDetails); $this->assertTrue($rpf->status == RoyaltyPaymentFile::STATUS_PAYMENTS_PROCESSED); $rpf = $s->processRoyaltyStreams($rpf); $this->assertTrue($rpf->status == RoyaltyPaymentFile::STATUS_PROCESSED); $payments = RoyaltyPayment::all(); $this->assertTrue(count($payments) == 4); $this->assertTrue($payments[0]->payee_code == 1128); $this->assertTrue($payments[1]->payee_code == 1111); $this->assertTrue($payments[2]->payee_code == 1545); $this->assertTrue($payments[3]->payee_code == 1332); $clients = Client::all(); $this->assertTrue(count($clients) == 4); $payeePayments = PayeePayment::all(); $this->assertTrue(count($payments) == 4); $deals = Deal::all(); $this->assertTrue(count($deals) == 4); $streams = RoyaltyStream::all(); $this->assertTrue(count($streams) == 4); $this->assertTrue($streams[0]->song_number == 33959); $this->assertTrue($streams[1]->song_number == 14402); $this->assertTrue($streams[2]->song_number == 12043); $this->assertTrue($streams[3]->song_number == 51311); $streamFiles = RoyaltyStreamFile::all(); $this->assertTrue(count($streamFiles) == 4); $this->resetEvents(); }
public static function cleanEmptyStreams() { RoyaltyStream::whereNull("stream_file_id")->delete(); }