public function update(Transaction $transaction, StoreTransactionRequest $request)
 {
     $data = $request->all();
     $data['ignore'] = !isset($data['ignore']) ? false : $data['ignore'];
     $transaction->fill($data)->save();
     flash()->success('Transaction updated successfully');
     return redirect()->route('transaction.index');
 }
예제 #2
0
 /**
  * @param TransactionRequest $request
  * @return \Illuminate\Http\RedirectResponse
  */
 public function store(TransactionRequest $request)
 {
     $lastTransaction = Transaction::findLatest($request->equipment_id);
     if ($lastTransaction->get()->isEmpty() || $lastTransaction->in_or_out == 'IN') {
         $transaction = new Transaction();
         $transaction->fill($request->all());
         $transaction->username = Auth::id();
         $transaction->in_or_out = 'OUT';
         $transaction->transaction_id = $this->generateTransactionId('OUT');
         $transaction->save();
         $this->generateReceiptEmail($transaction);
     }
     return redirect()->route('inventory.index');
 }
 /**
  * Store a newly created resource in storage.
  *
  * @param  \Illuminate\Http\Request $request
  * @param Transaction $transaction
  * @return \Illuminate\Http\Response
  */
 public function store(Request $request, Transaction $transaction)
 {
     if ($request->input('type') == 'transfer') {
         return $this->storeTransfer($request);
     }
     $this->validate($request, ['type' => 'required|in:expense,transfer,income', 'account' => 'required:exists:accounts,id', 'vendor' => 'required|exists:vendors,id', 'category' => 'exists:categories,id', 'description' => 'max:255', 'timestamp' => 'required|date_format:Y-m-d\\TH:i|before:' . date('Y-m-d\\TH:i'), 'amount' => 'required|numeric']);
     $input = $request->except(['_token']);
     if ($input['type'] == 'expense' && $input['amount'] > 0) {
         $input['amount'] = $input['amount'] * -1;
     }
     $input['account_id'] = $input['account'];
     $input['vendor_id'] = $input['vendor'];
     $input['category_id'] = $input['category'];
     unset($input['type'], $input['account'], $input['vendor'], $input['category']);
     $transaction->fill($input)->save();
     return redirect('transactions')->with('success', 'Transaction successfully added.');
 }
 public function process($fileContents)
 {
     //set_time_limit( 800 );
     $fileLines = explode("\r\n", $fileContents);
     $maxLineCount = count($fileLines);
     $user = Auth::user();
     for ($x = 0; $x < $maxLineCount; $x++) {
         if ($x == 0) {
             continue;
         }
         $lineArray = explode("\t", $fileLines[$x]);
         $customerEmail = @$lineArray[10];
         $customerName = @$lineArray[11];
         $amazonOrderId = @$lineArray[0];
         $recipientName = @$lineArray[24];
         $amazonOrderItemId = @$lineArray[4];
         $itemQuantity = @$lineArray[15];
         $productSku = @$lineArray[13];
         $productName = @$lineArray[14];
         $productPrice = @$lineArray[17];
         $shipAddress1 = @$lineArray[25];
         $shipAddress2 = @$lineArray[26];
         $shipAddress3 = @$lineArray[27];
         $shipCity = @$lineArray[28];
         $shipState = @$lineArray[29];
         $shipPostalCode = @$lineArray[30];
         $shipCountry = @$lineArray[31];
         $carrier = @$lineArray[42];
         $trackingNumber = @$lineArray[43];
         $itemPromotionDiscount = @$lineArray[40];
         $customer = Customer::where('email', '=', $customerEmail)->where('user_id', '=', $user->id)->first();
         if (!$customer) {
             $customer = new Customer();
             $customer->fill(['email' => $customerEmail, 'name' => $customerName]);
             $customer = $user->customers()->save($customer);
         } else {
             $customer->name = $customerName;
             $customer->save();
         }
         $transaction = Transaction::where('amazon_order_id', '=', $amazonOrderId)->where('customer_id', '=', $customer->id)->first();
         if (!$transaction) {
             $transaction = new Transaction();
             $transactionData = ['amazon_order_id' => $amazonOrderId, 'recipient_name' => $recipientName, 'ship_address_1' => $shipAddress1, 'ship_address_2' => $shipAddress2, 'ship_address_3' => $shipAddress3, 'ship_city' => $shipCity, 'ship_state' => $shipState, 'ship_postal_code' => $shipPostalCode, 'ship_postal_country' => $shipCountry, 'carrier' => $carrier, 'tracking_number' => $trackingNumber];
             $transaction->fill($transactionData);
             $transaction = $customer->transactions()->save($transaction);
         } else {
             $transaction->recipient_name = $recipientName;
             $transaction->save();
         }
         $productSku = str_replace('-', '', $productSku);
         // Products ...
         $product = AmazonProduct::whereSku($productSku)->where('user_id', '=', $user->id)->first();
         if (!$product) {
             $product = new AmazonProduct();
             $product->fill(['sku' => $productSku, 'name' => $productName, 'price' => $productPrice]);
             $product = $user->products()->save($product);
         } else {
             $product->name = $productName;
             $product->price = $productPrice;
             $product->save();
         }
         if ($itemPromotionDiscount != 0) {
             $payout = $itemQuantity * ($product->price - $itemPromotionDiscount);
         } else {
             $payout = $itemQuantity * $product->price;
         }
         $transactionItem = TransactionItem::whereAmazonOrderItemId($amazonOrderItemId)->where('transaction_id', '=', $transaction->id)->first();
         if (!$transactionItem) {
             $transactionItem = new TransactionItem();
             $arrayData = ['amazon_product_id' => $product->id, 'amazon_order_item_id' => $amazonOrderItemId, 'quantity' => $itemQuantity, 'payout' => $payout];
             $transactionItem->fill($arrayData);
             $transaction->items()->save($transactionItem);
         } else {
             $transactionItem->amazon_product_id = $product->id;
             $transactionItem->quantity = $itemQuantity;
             $transactionItem->payout = $payout;
             $transactionItem->save();
         }
     }
     return $this->json->success('SUCCESS!!! Import data done ....');
 }