fix bug in function import invoices

This commit is contained in:
Steve Ng
2023-10-24 21:21:51 +08:00
parent 05b5823fe4
commit bc5a8a9193
3 changed files with 19 additions and 8 deletions
@@ -137,16 +137,10 @@ class ImportStatementInvoiceController
private function mappingExchange(Array $row) {
$date = $row['date'];
$transactions = Transaction::where('original_amount', $row['net_total'])->whereRaw("DATE(created_at) = '$date'")
->whereHas('receiverCompany', function($q) use($row) {
$q->where('debtor',$row['debtor_code']);
})->get();
$transactions = Transaction::getReceiverWithJoinStatementTransactionAndOwner($row)->select('transactions.*')->where('statement_transactions.amount', $row['net_total'])->whereRaw("DATE(posting_date) = '$date'")->get();
if ($transactions && $transactions->count() == 0) {
$transactions = Transaction::where(DB::raw('FLOOR(original_amount)'), floor($row['net_total']))->whereRaw("DATE(created_at) = '$date'")
->whereHas('receiverCompany', function($q) use($row) {
$q->where('debtor',$row['debtor_code']);
})->get();
$transactions = Transaction::getReceiverWithJoinStatementTransactionAndOwner($row)->select('transactions.*')->where(DB::raw('FLOOR(statement_transactions.amount)'), floor($row['net_total']))->whereRaw("DATE(posting_date) = '$date'")->get();
}
if ($transactions && $transactions->count() == 1) {
+1
View File
@@ -5,6 +5,7 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\MorphTo;
class StatementTransactionOwner extends Model
{
+16
View File
@@ -221,6 +221,22 @@ class Transaction extends AbstractModel implements Documentable, Transactionable
return $query->whereIn('status', [ApprovalStatus::APPROVED]);
}
/**
* @param Builder $query
* @return Builder
*/
public function scopeGetReceiverWithJoinStatementTransactionAndOwner(Builder $query, Array $row) {
$query->join('companies',function($q) use ($row) {
$q->on('companies.id','=','transactions.receiver');
$q->where('debtor',$row['debtor_code']);
})
->join('statement_transaction_owners', function ($q) {
$q->on('statement_transaction_owners.owner_id','=','transactions.id');
$q->where('statement_transaction_owners.owner_type','=',Transaction::class);
})
->join('statement_transactions','statement_transactions.id','=','statement_transaction_owners.statement_transaction_id');
}
/**
* @return MorphMany
*/