public function testSavePayeeUnpaidPayments()
 {
     $this->resetEvents();
     $path = $this->filePath();
     $s = $this->service();
     $companyId = rand(1000, 1000000);
     $rpf = $s->saveRoyaltyPaymentFile($path, $companyId, ["year" => 2015, "month" => 3]);
     $s->savePayments($rpf);
     $s->savePayees($rpf);
     $payees = User::all();
     $this->assertTrue(count($payees) == 2);
     $payee1 = $payees[0];
     $this->assertTrue($payee1->id == 1);
     $this->assertTrue($payee1->company_id == $companyId);
     $this->assertTrue($payee1->type == "payee");
     $this->assertTrue($payee1->email == null);
     $this->assertTrue($payee1->code == "1175");
     $this->assertTrue($payee1->name == "Studio 51");
     $payee2 = $payees[1];
     $this->assertTrue($payee2->id == 2);
     $this->assertTrue($payee2->company_id == $companyId);
     $this->assertTrue($payee2->type == "payee");
     $this->assertTrue($payee2->email == null);
     $this->assertTrue($payee2->code == "1379");
     $this->assertTrue($payee2->name == "Pop Virus (PACIFICA)");
     $s->savePayeePayments($rpf, ["year" => 2015, "month" => 3]);
     $payeePayments = PayeePayment::all();
     $this->assertTrue(count($payeePayments) == 2);
     $this->assertTrue($payeePayments[0]->payment_date == null);
     $this->assertTrue($payeePayments[0]->status == "unpaid");
     $this->assertTrue($payeePayments[0]->year == 2015);
     $this->assertTrue($payeePayments[0]->month == 3);
     $this->assertTrue($payeePayments[0]->quarter == null);
     $this->assertTrue($payeePayments[1]->year == 2015);
     $this->assertTrue($payeePayments[1]->month == 3);
     $this->assertTrue($payeePayments[1]->quarter == null);
     $paymentsSum = RoyaltyPayment::where("payee_payment_id", "=", $payeePayments[0]->id)->select(DB::raw('sum(amount_received) AS amount'))->get()[0];
     $this->assertTrue($paymentsSum->amount == $payeePayments[0]->amount);
     $paymentsSum = RoyaltyPayment::where("payee_payment_id", "=", $payeePayments[1]->id)->select(DB::raw('sum(amount_received) AS amount'))->get()[0];
     $this->assertTrue($paymentsSum->amount == $payeePayments[1]->amount);
     $this->resetEvents();
 }
 public static function cleanEmptyPayments()
 {
     RoyaltyPayment::where("payee_code", "=", 0)->where("client_code", "=", 0)->where("amount_received", "=", 0)->where("amount_earned", "=", 0)->delete();
 }