'Penjualan']; if (!$request->ajax()) { return view('page.dashboard.penjualan.index', compact('data')); } if ($request->isMethod('get')) { $barang = Barang::all(); return response()->json(['message' => $barang], 200); } $noTransaksi = $this->generateNoTransaksi(); $items = $request->items; $penjualan = Penjualan::create([ 'kasir' => Auth::user()->id, 'no_transaksi' => $noTransaksi, 'diskon' => 0, 'pembayaran' => $request->pembayaran, 'total'=> $request->total, 'bayar'=> $request->bayar, 'sisa'=> $request->sisa ]); foreach ($items as $item) { $barang = Barang::where('kode', $item['kode'])->first(); if ($barang) { ListItemPenjualan::create([ 'penjualan_id' => $penjualan->id, 'barang_id' => $barang->id, 'qty' => $item['qty'], 'harga_beli' => $barang->harga_beli, 'harga_jual' => $barang->harga_jual, 'nama_barang' => $barang->nama, 'ukuran_barang' => $barang->ukuran ]); } else { return response()->json(['message' => 'Opps! theres been an error.'], 404); } } $this->print_now($noTransaksi); return response()->json(['message' => 'Ok'], 200); } public function print(Request $request){ $this->print_now('TRN1716466056'); } public function print_now($noTransaksi){ $settingprinter = SettingPrinter::where("idprinter","=",1)->first(); $storeName = $settingprinter->nama_toko; $storeAddress = $settingprinter->alamat_toko; $buyerName = 'UMUM'; $transactionDate = Carbon::now()->format('d-m-Y H:i:s'); // $items = $request->input('items', [ // ['name' => 'Barang A', 'quantity' => 2, 'price' => 50000], // ['name' => 'Barang B', 'quantity' => 1, 'price' => 75000], // ]); // die(var_dump($request)); $penjualan = Penjualan::with("listItem","listItem.barang") ->where("no_transaksi","=",$noTransaksi)->first(); $items = $penjualan->listItem; $total = $penjualan->total; $totalPaid = $penjualan->bayar; $change = $penjualan->sisa; // echo "
";
        // print_r($printer);
        // echo "
"; // die(); $printerName = $settingprinter->nama_printer; try { $connector = new WindowsPrintConnector($printerName); $printer = new Printer($connector); // Header $printer->setJustification(Printer::JUSTIFY_CENTER); $printer->text("$storeName\n"); $printer->text("$storeAddress\n"); $printer->feed(); // Info Pembeli dan Tanggal $printer->setJustification(Printer::JUSTIFY_LEFT); $printer->text("Pembeli: $buyerName\n"); $printer->text("Tanggal: $transactionDate\n"); $printer->feed(); // Detail Barang $printer->text(str_pad("Barang", 15) . str_pad("Qty", 4, ' ', STR_PAD_LEFT) . str_pad("Harga", 9, ' ', STR_PAD_LEFT) . str_pad("Total", 9, ' ', STR_PAD_LEFT) . "\n"); $printer->text("--------------------------------\n"); foreach ($items as $key=>$item) { $name = str_pad(substr($item->barang->nama, 0, 15), 15); $quantity = str_pad($item->qty, 4, ' ', STR_PAD_LEFT); $price = str_pad(number_format($item->harga_jual, 0, ',', '.'), 9, ' ', STR_PAD_LEFT); $totalItem = str_pad(number_format($item->qty * $item->harga_jual, 0, ',', '.'), 9, ' ', STR_PAD_LEFT); $printer->text("$name $quantity $price $totalItem\n"); } $printer->feed(); // Total, Total Bayar, dan Sisa $printer->text("--------------------------------\n"); $printer->text(str_pad("Total", 15) . str_pad(number_format($total, 0, ',', '.'), 9, ' ', STR_PAD_LEFT) . "\n"); $printer->text(str_pad("Total Bayar", 15) . str_pad(number_format($totalPaid, 0, ',', '.'), 9, ' ', STR_PAD_LEFT) . "\n"); $printer->text(str_pad("Sisa", 15) . str_pad(number_format($change, 0, ',', '.'), 9, ' ', STR_PAD_LEFT) . "\n"); $printer->feed(4); // Potong struk $printer->cut(); // Tutup printer $printer->close(); // return response()->json(['status' => 'success', 'message' => 'Printed successfully.']); } catch (Exception $e) { // return response()->json(['status' => 'error', 'message' => $e->getMessage()]); } } }