| Server IP : 104.21.26.206 / Your IP : 216.73.216.227 [ Web Server : Apache System : Linux frog 6.1.0-49-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64 User : web13 ( 5017) PHP Version : 8.3.31 Disable Function : NONE Domains : 41 Domains MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/clients/client12/web13/web/ahelos/app/Http/Controllers/Backend/ |
Upload File : |
<?php
namespace App\Http\Controllers\Backend;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\Order;
use App\Class\Speedy;
use Auth;
class OrderShippingController extends Controller
{
public function store(Request $request, $order_id){
$order = Order::where('id', $order_id)->first();
$data = $request->input();
$data['country'] = $order->language;
if ($request->input('office_id') != '') {
$data['office_id'] = explode('|', $request->input('office_id'))[0];
$data['office_type'] = explode('|', $request->input('office_id'))[1];
}
$order->shipment()->updateOrCreate(['order_id' => $order_id], $data);
return redirect()->back()->with('success_shipment', 'Информацията за товарителницата е обновена.');
}
public function generateShipment($order_id){
$order = Order::where('id', $order_id)->first();
$speedy = new Speedy($order->language);
$speedy_service_id = ($order->language != 'bg') ? 202 : 505 ;
$processing_type = ($order->language != 'bg') ? 'CASH' : 'POSTAL_MONEY_TRANSFER' ;
$data_speedy = array(
'language' => $order->language,
'serviceId' => $speedy_service_id,
'saturdayDelivery' => $order->shipment->saturday_delivery,
'amount' => $order->total_sum,
'processingType' => $processing_type,
'senderPhone' => $order->shipment->account_info['phone'],
'companySender' => '',
'parcelsCount' => $order->shipment->packages,
'totalWeight' => 1,
'contents' => $order->shipment->contents,
'package' => 'BOX',
'courierServicePayer' => 'SENDER',
'obpdOption' => $order->shipment->obpt_option,
'clientPhone' => $order->phone,
'clientName' => $order->full_name,
'email' => $order->email,
'shipmentNote' => $order->shipment->description,
'ref1' => $order->id,
'fragile' => $order->shipment->fragile,
'insuranceAmount' => $order->shipment->insurance_amount,
'officeType' => $order->shipment->office_type,
'pickupOfficeId' => $order->shipment->office_id,
'siteId' => $order->shipment->city_id,
'siteName' => $order->shipment->city,
'postCode' => $order->shipment->zip,
'streetType' => $order->shipment->address_type,
'streetName' => $order->shipment->address,
'streetNo' => $order->shipment->no,
'blockNo' => $order->shipment->block,
'entranceNo' => $order->shipment->entrance,
'floorNo' => $order->shipment->floor,
'apartmentNo' => $order->shipment->apartment_no,
'addressNote' => $order->shipment->description,
);
$shipment = $speedy->create($data_speedy);
if (isset($shipment['error'])) {
return redirect()->back()->with('shipment_error', $shipment['error']['message']);
}
$info = $speedy->labelInfo($shipment['id']);
foreach ($info['printLabelsInfo'] as $key => $label) {
$barcodes[] = $label['fullBarcode'];
}
$barcode_string = implode('|', $barcodes);
$shipment_data = array(
'shipment_id' => $shipment['id'],
'username' => $speedy->getUsername(),
'amount' => $order->total_sum,
'admin_id' => Auth::guard('admin')->id(),
'barcodes' => $barcode_string,
);
$order->shipment()->update($shipment_data);
return redirect()->back()->with('success_shipment', 'Товарителницата е генерирана успешно.');
}
public function cancel($order_id){
$order = Order::where('id', $order_id)->first();
$speedy = new Speedy($order->language);
$speedy->cancel($order->shipment->shipment_id);
$shipment_data = array(
'shipment_id' => NULL,
'username' => NULL,
'amount' => 0.00,
'admin_id' => 0,
);
$order->shipment()->update($shipment_data);
return redirect()->back()->with('success_shipment', 'Товарителницата е отказана');
}
public function print($order_id){
$order = Order::where('id', $order_id)->first();
$speedy = new Speedy($order->language);
return response($speedy->print($order->shipment->shipment_id))->header('Content-Type', 'application/pdf');
}
}