1640 1641 $this->moduleUtil->getModuleData('after_sale_saved', ['transaction' => $transaction, 'input' => $input]); 1642 1643 Media::uploadMedia($business_id, $transaction, $request, 'documents'); 1644 1645 $this->transactionUtil->activityLog($transaction, 'edited', $transaction_before); 1646 1647 SellCreatedOrModified::dispatch($transaction); 1648 1649 DB::commit(); 1650 1651 if ($request->input('is_save_and_print') == 1) { 1652 $url = $this->transactionUtil->getInvoiceUrl($id, $business_id); 1653 1654 return redirect()->to($url . '?print_on_load=true'); 1655 } 1656 1657 $msg = __('lang_v1.updated_success'); 1658 $receipt = ''; 1659 $can_print_invoice = auth()->user()->can('print_invoice'); 1660 $invoice_layout_id = $request->input('invoice_layout_id'); 1661 1662 if ($input['status'] == 'draft' && $input['is_quotation'] == 0) { 1663 $msg = trans('sale.draft_added'); 1664 1665 // ZRX: Unpaid Invoice is still a normal Suspend/Draft, 1666 // but it must return the standard POS receipt preview. 1667 if ( 1668 (int) $request->input('is_unpaid_invoice', 0) === 1 1669 && !$is_direct_sale 1670 && $can_print_invoice 1671 ) { 1672 $receipt = $this->receiptContent( 1673 $business_id, 1674 $input['location_id'], 1675 $transaction->id, 1676 null, 1677 false, 1678 true, 1679 $invoice_layout_id 1680 ); 1681 } 1682 } elseif ($input['status'] == 'draft' && $input['is_quotation'] == 1) { 1683 $msg = trans('lang_v1.quotation_updated'); 1684 if (!$is_direct_sale && $can_print_invoice) { 1685 $receipt = $this->receiptContent($business_id, $input['location_id'], $transaction->id, null, false, true, $invoice_layout_id); 1686 } else { 1687 $receipt = ''; 1688 } 1689 } elseif ($input['status'] == 'final') { 1690 $msg = trans('sale.pos_sale_updated'); 1691 if (!$is_direct_sale && $can_print_invoice) { 1692 $receipt = $this->receiptContent($business_id, $input['location_id'], $transaction->id, null, false, true, $invoice_layout_id); 1693 } else { 1694 $receipt = ''; 1695 } 1696 } 1697 1698 $output = ['success' => 1, 'msg' => $msg, 'receipt' => $receipt]; 1699 1700 if (!empty($whatsapp_link)) { 1701 $output['whatsapp_link'] = $whatsapp_link; 1702 } 1703 } else { 1704 $output = ['success' => 0, 1705 'msg' => trans('messages.something_went_wrong'), 1706 ]; 1707 } 1708 } catch (\Exception $e) { 1709 DB::rollBack(); 1710 \Log::emergency('File:' . $e->getFile() . 'Line:' . $e->getLine() . 'Message:' . $e->getMessage());