public static function apiQuery() { $query = self::query(); if (!Auth::user()->isAdmin()) { $query->where(PayeeCompany::table() . '.company_id', '=', Auth::user()["company_id"]); } $query->join(User::table() . " as user", 'user.id', '=', 'user_id'); return $query; }
public function savePayees($rpf) { // $payments = RoyaltyPayment::groupedByPayeeCode($rpf->id)->get(); // foreach ($payments as $payment) { // $user = User::where('code', '=', $payment->payee_code)->first(); // if ($user == null) { // $user = User::create(["name" => $payment->payee_name, // "deleted_at" => null, // "email" => null, // "code" => $payment->payee_code, // "company_id" => $rpf->company_id, // "password" => $payment->payee_code, // "type" => "payee"]); // PayeeCompany::create(["user_id" => $user->id, "code" => $user->code, "company_id" => $rpf->company_id]); // } else { // if (PayeeCompany::findByUserAndCompany($user->id, $rpf->company_id) == null) // PayeeCompany::create(["user_id" => $user->id, "code" => $user->code, "company_id" => $rpf->company_id]); // } // } DB::connection()->getpdo()->exec('INSERT IGNORE INTO ' . User::table() . '(`name`, `deleted_at`, `email`, `code`, `company_id`, `password`, `type`) SELECT `payee_name`, NULL, NULL, `payee_code`, ' . $rpf->company_id . ', ENCRYPT(`payee_code`), \'payee\' FROM ' . RoyaltyPayment::table() . ' WHERE `royalty_payment_file_id` = ' . $rpf->id . ' AND `payee_payment_id` IS NULL GROUP BY `payee_code` ORDER BY `payee_code`'); DB::connection()->getpdo()->exec('INSERT IGNORE INTO ' . PayeeCompany::table() . '(`user_id`, `code`, `company_id`) SELECT u.id, `payee_code`, ' . $rpf->company_id . ' FROM ' . RoyaltyPayment::table() . ' as rp LEFT JOIN ' . User::table() . ' as u on rp.payee_code = u.code WHERE `royalty_payment_file_id` = ' . $rpf->id . ' AND `payee_payment_id` IS NULL GROUP BY `payee_code` ORDER BY `payee_code`'); }
public function testMultipleCompaniesForTheSamePayees() { $this->resetEvents(); $path = $this->copyFileToTemp($this->fileName()); $s = $this->service(); $companyId1 = rand(1000, 1000000); $companyId2 = rand(1000, 1000000); $fileDetails = ["year" => 2015, "month" => 7]; $rpf = $s->process($path, $companyId1, $fileDetails); $this->assertTrue($rpf->status == RoyaltyPaymentFile::STATUS_PAYMENTS_PROCESSED); $path = $this->copyFileToTemp($this->fileName()); $rpf = $s->process($path, $companyId2, $fileDetails); $this->assertTrue($rpf->status == RoyaltyPaymentFile::STATUS_PAYMENTS_PROCESSED); $payees = User::all(); $this->assertTrue(count($payees) == 2); $payee1 = $payees[0]; $this->assertTrue($payee1->id == 1); $this->assertTrue($payee1->company_id == $companyId1); $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 == $companyId1); $this->assertTrue($payee2->type == "payee"); $this->assertTrue($payee2->email == null); $this->assertTrue($payee2->code == "1379"); $this->assertTrue($payee2->name == "Pop Virus (PACIFICA)"); $payeeCompany = PayeeCompany::all(); $this->assertTrue(count($payeeCompany) == 4); $this->assertTrue($payeeCompany[0]->user_id == 1); $this->assertTrue($payeeCompany[0]->code == 1175); $this->assertTrue($payeeCompany[0]->company_id == $companyId1); $this->assertTrue($payeeCompany[1]->user_id == 2); $this->assertTrue($payeeCompany[1]->code == 1379); $this->assertTrue($payeeCompany[1]->company_id == $companyId1); $this->assertTrue($payeeCompany[2]->user_id == 1); $this->assertTrue($payeeCompany[2]->code == 1175); $this->assertTrue($payeeCompany[2]->company_id == $companyId2); $this->assertTrue($payeeCompany[3]->user_id == 2); $this->assertTrue($payeeCompany[3]->code == 1379); $this->assertTrue($payeeCompany[3]->company_id == $companyId2); $path = $this->copyFileToTemp($this->fileName()); $rpf = $s->process($path, $companyId2, $fileDetails); $this->assertTrue($rpf->status == RoyaltyPaymentFile::STATUS_PAYMENTS_PROCESSED); $payeeCompany = PayeeCompany::all(); $this->assertTrue(count($payeeCompany) == 4); $this->assertTrue($payeeCompany[0]->user_id == 1); $this->assertTrue($payeeCompany[0]->code == 1175); $this->assertTrue($payeeCompany[0]->company_id == $companyId1); $this->assertTrue($payeeCompany[1]->user_id == 2); $this->assertTrue($payeeCompany[1]->code == 1379); $this->assertTrue($payeeCompany[1]->company_id == $companyId1); $this->assertTrue($payeeCompany[2]->user_id == 1); $this->assertTrue($payeeCompany[2]->code == 1175); $this->assertTrue($payeeCompany[2]->company_id == $companyId2); $this->assertTrue($payeeCompany[3]->user_id == 2); $this->assertTrue($payeeCompany[3]->code == 1379); $this->assertTrue($payeeCompany[3]->company_id == $companyId2); $this->resetEvents(); }
public static function apiPayeesCounts() { return ["new_payees" => PayeeCompany::payeesWithoutEmail()->count(), "all_payees" => PayeeCompany::payeesWithEmail()->count(), "unpaid_statements" => PayeePayment::unpaid()->count(), "paid_statements" => PayeePayment::paid()->count()]; }