mirror of
https://gitlab.com/omair-personal/exchange.git
synced 2026-08-19 04:24:08 +00:00
excel upload old bookings
This commit is contained in:
@@ -0,0 +1,123 @@
|
||||
<?php
|
||||
|
||||
namespace App\Classes\Service;
|
||||
|
||||
|
||||
use App\Booking;
|
||||
use App\ChinaBankSlip;
|
||||
use App\Invoice;
|
||||
use App\SupplierBooking;
|
||||
use App\User;
|
||||
use App\UserBankSlip;
|
||||
use Carbon\Carbon;
|
||||
|
||||
class BulkBookings
|
||||
{
|
||||
/** @var Carbon */
|
||||
protected $date;
|
||||
/** @var int */
|
||||
protected $referenceNumber;
|
||||
/** @var float */
|
||||
protected $customerDeposit;
|
||||
/** @var string */
|
||||
protected $marking;
|
||||
/** @var float */
|
||||
protected $vendorDeposit;
|
||||
/** @var float */
|
||||
protected $bookingAmount;
|
||||
|
||||
/**
|
||||
* BulkBookings constructor.
|
||||
* @param Carbon $date
|
||||
* @param int $referenceNumber
|
||||
* @param float $customerDeposit
|
||||
* @param string $marking
|
||||
* @param float $vendorDeposit
|
||||
* @param float $bookingAmount
|
||||
*/
|
||||
public function __construct(Carbon $date, int $referenceNumber, float $customerDeposit, string $marking, float $vendorDeposit, float $bookingAmount)
|
||||
{
|
||||
$this->date = $date;
|
||||
$this->referenceNumber = $referenceNumber;
|
||||
$this->customerDeposit = floatval($customerDeposit);
|
||||
$this->marking = $marking;
|
||||
$this->vendorDeposit = $vendorDeposit;
|
||||
$this->bookingAmount = $bookingAmount;
|
||||
}
|
||||
|
||||
|
||||
public function execute(){
|
||||
$booking = new Booking();
|
||||
$booking->id = $this->referenceNumber;
|
||||
$booking->term = 'x1_cash';
|
||||
$booking->account_name = '';
|
||||
$booking->account_num = '';
|
||||
$booking->bank_name = '';
|
||||
$booking->bank_branch = '';
|
||||
$booking->rate_id = 1;
|
||||
$booking->amount = $this->bookingAmount;
|
||||
$booking->user_id = $this->userID();
|
||||
$booking->bia = $this->customerDeposit;
|
||||
$booking->rmb_book_amount = $this->bookingAmount;
|
||||
$booking->verification_status = true;
|
||||
$booking->rate = $this->customerRate();
|
||||
$booking->status = 7;
|
||||
$booking->admin_status = 7;
|
||||
$booking->payment_for = 'Full Payment';
|
||||
$booking->created_at = $this->date;
|
||||
$booking->save();
|
||||
|
||||
$supplierBooking = new SupplierBooking();
|
||||
$supplierBooking->rate = $this->vendorRate();
|
||||
$supplierBooking->rebate = 0;
|
||||
$supplierBooking->amountInRMB= $this->bookingAmount;
|
||||
$supplierBooking->supplier_id= 2;
|
||||
$supplierBooking->salestax_amount = 0;
|
||||
$supplierBooking->booking_id= $this->referenceNumber;
|
||||
$supplierBooking->amount_in_myr = $this->vendorDeposit;
|
||||
$supplierBooking->tax_rate = 1;
|
||||
$supplierBooking->amount_after_tax = $this->vendorDeposit;
|
||||
$supplierBooking->save();
|
||||
|
||||
$bankSlip = new UserBankSlip();
|
||||
$bankSlip->transfer_amount = $this->customerDeposit;
|
||||
$bankSlip->booking_id = $this->referenceNumber;
|
||||
$bankSlip->is_approve = true;
|
||||
$bankSlip->save();
|
||||
|
||||
$chinaBankSlip = new ChinaBankSlip();
|
||||
$chinaBankSlip->china_bank_slip_path = '';
|
||||
$chinaBankSlip->actual_transfer_amount = $this->vendorDeposit;
|
||||
$chinaBankSlip->booking_id = $this->referenceNumber;
|
||||
$chinaBankSlip->save();
|
||||
|
||||
$invoice = new Invoice();
|
||||
$invoice->invoice_path = '';
|
||||
$invoice->amount = 0;
|
||||
$invoice->booking_id = $this->referenceNumber;
|
||||
$invoice->save();
|
||||
|
||||
}
|
||||
|
||||
private function userID(){
|
||||
if($this->marking === "721PCV"){
|
||||
$user = User::where('marking', 'SRW/CIEF/'.$this->marking)->first();
|
||||
} else {
|
||||
$user = User::where('marking', 'CIEF/'.$this->marking)->first();
|
||||
}
|
||||
|
||||
return $user->id;
|
||||
}
|
||||
|
||||
private function customerRate(){
|
||||
return $this->currencyRate(($this->bookingAmount + (($this->bookingAmount / 100) * 2)) / $this->customerDeposit);
|
||||
}
|
||||
|
||||
private function vendorRate(){
|
||||
return $this->currencyRate($this->bookingAmount / $this->vendorDeposit);
|
||||
}
|
||||
|
||||
private function currencyRate($rate){
|
||||
return floor($rate * 1000) / 1000;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
|
||||
use App\Classes\Service\BulkBookings;
|
||||
use App\Imports\BookingImport;
|
||||
use Illuminate\Http\Request;
|
||||
use Maatwebsite\Excel\Facades\Excel;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Support\Collection;
|
||||
|
||||
class BulkBookingController
|
||||
{
|
||||
public function index(Request $request){
|
||||
$bookings = Excel::toArray(new BookingImport(), $request->file('xsl'));
|
||||
foreach (array_slice($bookings[0],1) as $booking){
|
||||
(new BulkBookings(Carbon::createFromTimestamp(($booking[0] - 25569) * 86400), $booking[1], $booking[2], $booking[3], $booking[4], $booking[5]))->execute();
|
||||
}
|
||||
return redirect()->route('booking.bulk.form');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace App\Imports;
|
||||
|
||||
use Maatwebsite\Excel\Concerns\ToModel;
|
||||
|
||||
class BookingImport implements ToModel
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* @param array $row
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function model(array $row)
|
||||
{
|
||||
return [
|
||||
//
|
||||
];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user