ThermalPrintingController.php 1.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Http\Controllers\Controller;
  4. // use App\Http\Controllers\Helpers\ThermalPrinting;
  5. use App\Models\Transaction;
  6. use Hoa\Websocket\Client as WebsocketClient;
  7. use Hoa\Socket\Client as SocketClient;
  8. class ThermalPrintingController extends Controller
  9. {
  10. public function __invoke(Transaction $transaction)
  11. {
  12. // $thermalPrinting = new ThermalPrinting($transaction);
  13. // $thermalPrinting->startPrinting(1);
  14. $transaction->load(['outlet','customer','transactionDetails.laundry']);
  15. $discountAsString = $transaction->discountAsString();
  16. $subTotalAsString = $transaction->subTotalAsString();
  17. $totalPriceAsString = $transaction->totalPriceAsString();
  18. foreach ($transaction->transactionDetails as $transactionDetail) {
  19. $totalPriceAsStringDetail = $transactionDetail->totalPriceAsString();
  20. $transactionDetail->totalPriceAsString = $totalPriceAsStringDetail;
  21. }
  22. $transaction->discountAsString = $discountAsString;
  23. $transaction->subTotalAsString = $subTotalAsString;
  24. $transaction->totalPriceAsString = $totalPriceAsString;
  25. try {
  26. $socket = new WebsocketClient(
  27. new SocketClient('ws://103.157.96.20:5544')
  28. );
  29. $socket->setHost('escpos-server');
  30. $socket->connect();
  31. $socket->send(json_encode($transaction));
  32. $socket->close();
  33. } catch (Exception $e) {
  34. return back()->with('error', __('messages.error.store.transaction'));
  35. }
  36. return back();
  37. }
  38. }