本文整理汇总了PHP中app\models\Order::create方法的典型用法代码示例。如果您正苦于以下问题:PHP Order::create方法的具体用法?PHP Order::create怎么用?PHP Order::create使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类app\models\Order
的用法示例。
在下文中一共展示了Order::create方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: run
public function run()
{
DB::table('orders')->delete();
Order::create(array('id' => '1', 'user_id' => '1', 'total' => '4000', 'comment' => 'Позвоните мне.', 'delivery_price' => '1200', 'weight' => '40', 'distance' => '168', 'volume' => '50'));
Order::create(array('id' => '2', 'user_id' => '1', 'total' => '7200', 'comment' => 'Есть в наличие?', 'delivery_price' => '1200', 'weight' => '80', 'distance' => '568', 'volume' => '50'));
Order::create(array('id' => '3', 'user_id' => '1', 'total' => '1000', 'comment' => 'Когда отправите?', 'delivery_price' => '1200', 'distance' => '269', 'weight' => '50', 'volume' => '50'));
}
示例2: storeNewOrder
protected function storeNewOrder(array $data)
{
$id = Auth::user()->id_user;
$data['advPay'] = isset($data['advPay']) ? 1 : 0;
Log::info('User: ' . $id . ' submitted new order, destination: ' . $data['orderDestination'] . ', departure: ' . $data['dateFrom'] . ', arrival: ' . $data['dateFrom'] . 'advPay: ' . $data['advPay']);
// LOG
$order = Order::create(['destination' => $data['orderDestination'], 'date_departure' => $data['dateFrom'], 'date_arrival' => $data['dateTo'], 'adv_pay' => $data['advPay'], 'user_id_user' => $id]);
}
示例3: create
/**
* Create an order with products
*
* @param $kiosk_id
* @param $participant_id
* @param $products
* @return static
*/
public function create($kiosk_id, $participant_id, $products)
{
$order = Order::create(['kiosk_id' => $kiosk_id, 'finished' => null, 'participant_id' => $participant_id]);
foreach ($products as $product) {
//check if subproduct is added
if (isset($product->sub)) {
$sub = $product->sub;
} else {
$sub = null;
}
$order->products()->attach($product->id, ["price" => $product->price, "amount" => $product->amount, "product_id_sub" => $sub]);
}
return $order;
}
示例4: store
/**
* Store a newly created resource in storage.
*
* @return Response
*/
public function store(Request $request)
{
unset($request['_token']);
$cartNotes = CartNote::GetCartList();
var_dump($cartNotes);
$Order = Order::create(['price_full' => 0, 'description' => json_encode($request->all())]);
$sum = 0;
foreach ($cartNotes as $key => $value) {
$sum += $value->price * $value->count;
$orderNote = OrderNote::create(['order_id' => $Order->id, 'product_id' => $value->prodid, 'price' => $value->price, 'count' => $value->count]);
$orderNote->save();
// ??
}
$Order->price_full = $sum;
$Order->save();
Session::flash('flash_message', 'Order added!');
return redirect('/backoffice/orders');
}
示例5: save_order_list
public function save_order_list(Request $request, Order $order)
{
$data = $request->all();
$order_id = $data[0]['order_id'];
$status = true;
foreach ($data as $val) {
$val['available'] = $val['available'] ? 1 : 0;
if (!$val['order_id']) {
$val['order_id'] = $order_id;
$status = $status && Order::create($val);
} else {
$update_data['price'] = $val['price'];
$update_data['description'] = $val['description'];
$update_data['available'] = $val['available'];
$status = $status && $order->update_order_by_id($val['id'], $update_data);
}
}
return response()->json(['status' => $status]);
}
示例6: orderimport_xls
/**
* static function to read the xls and store
*
* @param int $id
* @return Response*/
public static function orderimport_xls($pathname, $camp_id, $campid, $description, $object_id)
{
$camp = Camp::findOrFail($camp_id);
Excel::load($pathname, function ($reader) use($camp) {
$results = $reader->get();
foreach ($results as $result) {
$save['order_id'] = $result->order_id;
$save['warehouse'] = $result->warehouse;
$save['ship_date'] = date('Y-m-d H:i:s', strtotime($result->ship_date));
$save[$status] = $result->status;
$save['order_amount'] = $result->order_amount;
$save['actual_time_to_deliver'] = $result->actual_time_to_deliver;
$save['payment_method'] = $result->payment_method;
$save['associate'] = $result->associate;
$save['address_type'] = $result->address_type;
$save['address'] = $result->customer_name . ',' . $result->status . ',' . $result->city . ',' . $result->district . ',' . $result->province . ',' . $result->customer_phone;
$save[$campid] = $camp->id;
Order::create($save);
Session::flash('success', Lang::get('ruban.camp.updated'));
unset($save);
}
$timeline[$description] = Auth::user()->first_name . ' ' . Auth::user()->last_name . ' has imported the daily camp xls for <a href="javascript:;">' . $camp->title . '</a>';
$timeline[$object_type] = 5;
$timeline[$object_id] = $camp->id;
Timeline::create($timeline);
});
}
示例7: run
public function run()
{
DB::table('orders')->delete();
for ($i = 0; $i < $this->num_records; $i++) {
$array = ['user_id' => $this->getRandRec()];
Order::create($array);
}
}
示例8: getRebuy
public function getRebuy (Request $request)
{
if (Session::get('rebuy_code') == $request->input('order_code')) {
$mb = $request->input('mb');
if (empty($mb)) {
return redirect('/order/pay?order=' . Session::get('order_code'));
} else {
return redirect('/order/pay?order=' . Session::get('order_code') . '&mb=true');
}
} else {
Session::put('rebuy_code', $request->input('order_code'));
}
$order_code = $request->input('order_code');
if (empty($order_code)) {
//todo
}
$user = Auth::user();
$orderInfo = OrderAllInfo::where('order_code', '=', $order_code)
->where('uid', '=', $user->id)
->first();
if (empty($orderInfo->oid)) {
//todo
}
$newOrder = [
'code' => $this->generateOrderCode($user->id),
'uid' => $user->id,
'rid' => $orderInfo->rid,
'cid' => $orderInfo->cid,
'gid' => $orderInfo->gid,
'num' => $orderInfo->num,
'sum' => $orderInfo->orig_price,
'comment' => $orderInfo->comment,
'status' => 0,
'active' => 1
];
$order = Order::create($newOrder);
Session::put('order_code', $order->code);
$orderPrices = [
'oid' => $order->id,
'orig_price' => $order->sum,
'cut_fee' => 0,
'extra_fee' => 0,
'final_price' => $orderInfo->orig_price,
'active' => 1
];
$op = OrderPrice::create($orderPrices);
$good = Good::where('id', '=', $order->gid)->first();
$receiver = ReceiverInfo::where('id', '=', $order->rid)->first();
$pay_token = md5($order->id . time());
$banks = Bank::all();
$bouns = Boun::where('uid', '=', $user->id)
//.........这里部分代码省略.........
示例9: handle
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
Order::create(['user_id' => '', 'email' => $this->formData['email'], 'name' => $this->formData['name'], 'phone' => $this->formData['phone'], 'flight_nr' => '', 'coming_from' => '', 'resident_phone' => '', 'from' => $this->formData['from'], 'from_nr' => $this->formData['from_nr'], 'to' => $this->formData['to'], 'to_nr' => $this->formData['to_nr'], 'to_street' => '', 'up_date_time' => $this->formData['up_date_time'], 'nr_passegers' => '', 'nr_luggages' => '', 'nr_hand_luggages' => '', 'details' => $this->formData['details'], 'meet_and_greet' => @$this->formData['meet_and_greet'], 'return_50' => @$this->formData['return_50'], 'pay_cash' => $this->formData['pay_cash'], 'request' => 0]);
$mailler = new Mailer();
$mailler->sendTo(config('owner.email'), 'New customer', 'emails.client.confirmare', ['body' => view('emails.client.email-content')->with(['data' => $this->formData])->render(), 'client' => null]);
}
示例10: run
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
Model::unguard();
$now = date('Y-m-d H:i:s');
// Test Oauth session
$session_id = DB::table('oauth_sessions')->insertGetId(['client_id' => 'default', 'owner_type' => 'user', 'owner_id' => "user:1", 'created_at' => $now, 'updated_at' => $now]);
DB::table('oauth_access_tokens')->insert(['id' => 'SyjKhdQ1JcKs1S6X18VQW2LaTclJYzW4AC1dfkFk', 'session_id' => $session_id, 'expire_time' => time() + 86400 * 30, 'created_at' => $now, 'updated_at' => $now]);
$session_id = DB::table('oauth_sessions')->insertGetId(['client_id' => 'default', 'owner_type' => 'user', 'owner_id' => "admin:1", 'created_at' => $now, 'updated_at' => $now]);
DB::table('oauth_access_tokens')->insert(['id' => 'L3gkUwlwCQpUFGwbbX9HuAmc9YsMh8Oe42OQRNiY', 'session_id' => $session_id, 'expire_time' => time() + 86400 * 30, 'created_at' => $now, 'updated_at' => $now]);
// User
DB::table('users')->truncate();
$user = new User();
$users = array(array('email' => 'garbinh@gmail.com', 'nickname' => 'garbin', 'name' => 'Garbin Huang', 'password' => '123456', 'avatar' => 'http://tp3.sinaimg.cn/1812747674/180/5606472968/1'));
foreach ($users as $user) {
$user = new User($user);
$user->save();
}
// Operator
$operator_user = User::find(1);
$operator_admin = Admin::find(1);
$operator_system = new SystemOperator();
// Category
DB::table('categories')->truncate();
$cate_mac = Category::create(array('category_name' => 'Mac', 'parent_id' => 0));
$cate_mac->children()->create(['category_name' => 'Macbook Pro']);
$cate_mac->children()->create(['category_name' => 'Macbook Air']);
$cate_mac->children()->create(['category_name' => 'iMac']);
$cate_mac->children()->create(['category_name' => 'Mac mini']);
$cate_mac->children()->create(['category_name' => 'Mac Pro']);
$cate_mac = Category::create(array('category_name' => 'iPhone', 'parent_id' => 0));
$cate_iphone6 = $cate_mac->children()->create(['category_name' => 'iPhone 6']);
$cate_iphone5s = $cate_mac->children()->create(['category_name' => 'iPhone 5s']);
// Product
foreach (['products', 'product_2_category', 'product_photos', 'product_stocks'] as $table) {
DB::table($table)->truncate();
}
$iphone6 = Product::create(array('product_name' => 'iPhone 6', 'status' => 'available', 'product_desc' => 'Bigger than bigger', 'options' => array(['name' => '颜色', 'options' => ['银色', '深空灰', '香槟金']], ['name' => '容量', 'options' => ['16GB', '64GB', '128GB']]), 'specifications' => [['attr_name' => '高度', 'attr_group' => '重量和尺寸', 'attr_value' => '138.1 毫米(5.44 英寸)'], ['attr_name' => '宽度', 'attr_group' => '重量和尺寸', 'attr_value' => '67.0 毫米 (2.64 英寸)'], ['attr_name' => '厚度', 'attr_group' => '重量和尺寸', 'attr_value' => '6.9 毫米 (0.27 英寸)'], ['attr_name' => '重量', 'attr_group' => '重量和尺寸', 'attr_value' => '129 克 (4.55 盎司)']]));
$all_photo = new UploadFile(array('file' => (string) Image::make(database_path() . '/seeds/files/iphone6p-all.png')->encode('data-url'), 'file_name' => 'iphone6p-all.png'));
$all_photo->save();
$gray_photo = new UploadFile(array('file' => (string) Image::make(database_path() . '/seeds/files/iphone6p-gray.png')->encode('data-url'), 'file_name' => 'iphone6p-gray.png'));
$gray_photo->save();
$gold_photo = new UploadFile(array('file' => (string) Image::make(database_path() . '/seeds/files/iphone6p-gold.png')->encode('data-url'), 'file_name' => 'iphone6p-gold.png'));
$gold_photo->save();
$gold_photo = new UploadFile(array('file' => (string) Image::make(database_path() . '/seeds/files/iphone6p-silver.png')->encode('data-url'), 'file_name' => 'iphone6p-silver.png'));
$gold_photo->save();
$iphone6->photos()->save(new ProductPhoto(['product_id' => $iphone6->id, 'file_id' => $all_photo->id, 'sort_index' => 0]));
$iphone6->photos()->save(new ProductPhoto(['product_id' => $iphone6->id, 'file_id' => $gray_photo->id, 'sort_index' => 1]));
$iphone6->photos()->save(new ProductPhoto(['product_id' => $iphone6->id, 'file_id' => $gold_photo->id, 'sort_index' => 2]));
$gray_iphone616 = $iphone6->stocks()->create(array('sku' => uniqid(), 'option' => ['深空灰', '16GB'], 'stocks' => 100, 'price' => 5288, 'cover_id' => $gray_photo->id));
$gray_iphone664 = $iphone6->stocks()->create(array('sku' => 'iphone664-gray', 'option' => ['深空灰', '64GB'], 'stocks' => 100, 'price' => 6088));
$gray_iphone6128 = $iphone6->stocks()->create(array('sku' => 'iphone6128-gray', 'option' => ['深空灰', '128GB'], 'stocks' => 100, 'price' => 6888));
$silver_iphone616 = $iphone6->stocks()->create(array('sku' => 'iphone616-gray', 'option' => ['银色', '16GB'], 'stocks' => 100, 'price' => 5288));
$gold_iphone616 = $iphone6->stocks()->create(array('sku' => 'iphone616-gold', 'option' => ['香槟金', '16GB'], 'stocks' => 100, 'price' => 5288));
$iphone5s = Product::create(array('product_name' => 'iPhone 5S', 'status' => 'available', 'product_desc' => 'out stock', 'options' => array(['name' => '颜色', 'options' => ['银色', '深空灰', '香槟金']], ['name' => '容量', 'options' => ['16GB', '32GB', '64GB']])));
$iphone6->categories()->attach($cate_iphone6->id);
// Bag
foreach (['bags', 'orders', 'order_products', 'logistics', 'payments'] as $table) {
DB::table($table)->truncate();
}
$logistics = Logistics::create(array('logistics_name' => '标准运送', 'status' => 'enabled', 'logistics_desc' => '标准运送,免费送货', 'deliverer_name' => '\\App\\Plugins\\Offical\\Deliverers\\Simple', 'deliverer_settings' => array('effective' => '当日达', 'price' => 8), 'deliverer_cod' => array('北京' => array('北京' => array('朝阳区')), '福建' => array('福州' => array('仓山区')))));
$payment = Payment::create(array('payment_name' => '支付宝', 'status' => 'enabled', 'payment_desc' => '支付宝即时到账支付', 'gateway_name' => '\\App\\Plugins\\Offical\\Payments\\Alipay\\Main', 'gateway_settings' => array('pid' => '111', 'key' => '222')));
$page = Page::create(["title" => "首页轮播", "pathname" => "index", "position" => "index", "settings" => ['widgets' => json_decode('[{"widget":"Offical.Slider","style":{"padding":"0px","margin":"-50px 0px 0px 0px"},"data":["<div class=\\"slide-item\\" style=\\"background-image:url(http://images.apple.com/v/home/bx/images/music_hero_medium_2x.jpg)\\"><div class=\\"carousel-caption\\"><h3>Apple Music</h3><p>Free, three-month trial now available</p></div></div>","<div class=\\"slide-item\\" style=\\"background-image:url(http://images.apple.com/v/home/bx/images/music_hero_medium_2x.jpg)\\"><div class=\\"carousel-caption\\"><h3>Apple Music</h3><p>Free, three-month trial now available</p></div></div>"]},{"widget":"Offical.ItemsBelowText","className":"avatar","data":{"title":"Our Customers","subtitle":"They says Apple is awesome!","items":["<img src=\\"https://almsaeedstudio.com/themes/AdminLTE/dist/img/user5-128x128.jpg\\" alt=\\"User Image\\" /><a class=\\"users-list-name\\" href=\\"#\\">Alexander Pierce</a><span class=\\"users-list-date\\">Today</span>","<img src=\\"https://almsaeedstudio.com/themes/AdminLTE/dist/img/user7-128x128.jpg\\" alt=\\"User Image\\" /><a class=\\"users-list-name\\" href=\\"#\\">Alexander Pierce</a><span class=\\"users-list-date\\">Today</span>","<img src=\\"https://almsaeedstudio.com/themes/AdminLTE/dist/img/user6-128x128.jpg\\" alt=\\"User Image\\" /><a class=\\"users-list-name\\" href=\\"#\\">Alexander Pierce</a><span class=\\"users-list-date\\">Today</span>"]}}]')]]);
$page = Page::create(["title" => "GoPro Hero 4", "pathname" => "hero4", "position" => "nav", "settings" => ['widgets' => json_decode('[{"widget":"Offical.Header","data":{"title":"GoPro Hero4","subtitle":"Be a hero","links":[{"text":"Overview","active":true,"href":"/hero4"},{"text":"Specs","href":"/hero4/specs"},{"text":"Gallery","href":"/hero4/gallery"},{"text":"Buy now","className":"btn btn-primary btn-sm","href":"/hero4/buy"}]}},{"widget":"Offical.Slider","style":{"padding":"0px","margin":"0px"},"data":["<div class=\\"slide-item\\" style=\\"background-image:url(http://images.apple.com/v/home/bx/images/music_hero_medium_2x.jpg)\\"><div class=\\"carousel-caption\\"><h3>Apple Music</h3><p>Free, three-month trial now available</p></div></div>","<div class=\\"slide-item\\" style=\\"background-image:url(http://images.apple.com/v/home/bx/images/music_hero_medium_2x.jpg)\\"><div class=\\"carousel-caption\\"><h3>Apple Music</h3><p>Free, three-month trial now available</p></div></div>"]},{"widget":"Offical.ImageParkText","style":{"backgroundColor":"whitesmoke"},"data":{"text":{"title":"Professional video quality.","subtitle":"HERO4 Session delivers stunning video quality. Capture high-resolution 1440p30 and 1080p60 video that’s sharp and lifelike. High frame rate 720p100 video enables exceptionally smooth slow-motion playback of your best moments."},"img":"http://demandware.edgesuite.net/aasj_prd/on/demandware.static/-/Sites-gopro-products/default/dw3d8fb012/cam-respresent-four/HERO4_Session_Feature_2_video.jpg"}},{"style":{"backgroundColor":"white"},"widget":"Offical.ImageParkText","data":{"text":{"title":"Smallest, lightest GoPro yet.","subtitle":"50% smaller and 40% lighter than other HERO4 cameras,1 HERO4 Session is the most wearable and mountable GoPro ever. With a sleek, versatile design, it’s at home anywhere—from the surf to the snow, to hanging with friends."},"img":"http://demandware.edgesuite.net/aasj_prd/on/demandware.static/-/Sites-gopro-products/default/dw80d5e42d/cam-respresent-four/HERO4_Session_Feature_1_smallestlightest.jpg"}},{"style":{"backgroundColor":"white"},"widget":"Offical.ImageParkText","data":{"text":{"title":"Easy one-button control.","subtitle":"A single press of the shutter button powers on the camera and begins capturing video or Time Lapse photos automatically. A second press of the shutter button stops recording and powers off the camera. It’s that simple."},"img":"http://demandware.edgesuite.net/aasj_prd/on/demandware.static/-/Sites-gopro-products/default/dw9f2ed908/cam-respresent-four/HERO4_Session_Feature_6_OneButton.jpg"}}]')]]);
$page = Page::create(["title" => "Buy now", "pathname" => "hero4/buy", "position" => "hero4", "settings" => ['widgets' => json_decode('[{"widget":"Offical.Header","data":{"title":"GoPro Hero4","subtitle":"Be a hero","links":[{"text":"Overview","active":true,"href":"/hero4"},{"text":"Specs","href":"/hero4/specs"},{"text":"Gallery","href":"/hero4/gallery"},{"text":"Buy now","className":"btn btn-primary btn-sm","href":"/hero4/buy"}]}},{"widget":"Offical.Slider","style":{"padding":"0px","margin":"0px"},"data":["<div class=\\"slide-item\\" style=\\"background-image:url(http://images.apple.com/v/home/bx/images/music_hero_medium_2x.jpg)\\"><div class=\\"carousel-caption\\"><h3>Apple Music</h3><p>Free, three-month trial now available</p></div></div>","<div class=\\"slide-item\\" style=\\"background-image:url(http://images.apple.com/v/home/bx/images/music_hero_medium_2x.jpg)\\"><div class=\\"carousel-caption\\"><h3>Apple Music</h3><p>Free, three-month trial now available</p></div></div>"]},{"widget":"Offical.ImageParkText","style":{"backgroundColor":"whitesmoke"},"data":{"text":{"title":"Professional video quality.","subtitle":"HERO4 Session delivers stunning video quality. Capture high-resolution 1440p30 and 1080p60 video that’s sharp and lifelike. High frame rate 720p100 video enables exceptionally smooth slow-motion playback of your best moments."},"img":"http://demandware.edgesuite.net/aasj_prd/on/demandware.static/-/Sites-gopro-products/default/dw3d8fb012/cam-respresent-four/HERO4_Session_Feature_2_video.jpg"}},{"style":{"backgroundColor":"white"},"widget":"Offical.ImageParkText","data":{"text":{"title":"Smallest, lightest GoPro yet.","subtitle":"50% smaller and 40% lighter than other HERO4 cameras,1 HERO4 Session is the most wearable and mountable GoPro ever. With a sleek, versatile design, it’s at home anywhere—from the surf to the snow, to hanging with friends."},"img":"http://demandware.edgesuite.net/aasj_prd/on/demandware.static/-/Sites-gopro-products/default/dw80d5e42d/cam-respresent-four/HERO4_Session_Feature_1_smallestlightest.jpg"}},{"style":{"backgroundColor":"white"},"widget":"Offical.ImageParkText","data":{"text":{"title":"Easy one-button control.","subtitle":"A single press of the shutter button powers on the camera and begins capturing video or Time Lapse photos automatically. A second press of the shutter button stops recording and powers off the camera. It’s that simple."},"img":"http://demandware.edgesuite.net/aasj_prd/on/demandware.static/-/Sites-gopro-products/default/dw9f2ed908/cam-respresent-four/HERO4_Session_Feature_6_OneButton.jpg"}}]')]]);
$page = Page::create(["title" => "DJI Phantom 3", "pathname" => "phantom3", "position" => "nav", "settings" => ['widgets' => []]]);
$page = Page::create(["title" => "Apple Watch", "pathname" => "watch", "position" => "nav", "settings" => ['widgets' => []]]);
$stock = ProductStock::with('product')->where('sku', '=', 'iphone616-gray')->first();
$order = Order::create(['logistics_consignee' => 'Garbin Huang', 'logistics_region' => ['福建', '福州', '仓山区'], 'logistics_address' => '福湾新城春风苑2区6号楼802', 'logistics_zipcode' => '3500001', 'logistics_mobile' => '18610073651', 'logistics_phone' => '', 'logistics_email' => 'garbinh@gmail.com', 'logistics_id' => 1, 'logistics_cod' => false, 'logistics_tracking_number' => '', 'payment_id' => 1, 'user_id' => 1]);
$order_products = [new OrderProduct(['product_id' => $stock->product->id, 'product_name' => $stock->product->product_name, 'sku' => $stock->sku, 'option' => $stock->option, 'price' => $stock->price, 'quantity' => 1, 'custom_info' => []])];
$order->calc($order_products);
$order->save();
$order_product = $order->products()->saveMany($order_products);
// Test Order
$stock = ProductStock::with('product')->where('sku', '=', 'iphone616-gold')->first();
$order = Order::create(['logistics_consignee' => 'Garbin Huang', 'logistics_region' => ['福建', '福州', '仓山区'], 'logistics_address' => '福湾新城春风苑2区6号楼802', 'logistics_zipcode' => '3500001', 'logistics_mobile' => '18610073651', 'logistics_phone' => '', 'logistics_email' => 'garbinh@gmail.com', 'logistics_id' => 1, 'logistics_cod' => true, 'logistics_tracking_number' => '', 'payment_id' => 1, 'user_id' => 1]);
$order_products = [new OrderProduct(['product_id' => $stock->product->id, 'product_name' => $stock->product->product_name, 'sku' => $stock->sku, 'option' => $stock->option, 'price' => $stock->price, 'quantity' => 1, 'custom_info' => []])];
$order->calc($order_products);
$order->save();
$order_product = $order->products()->saveMany($order_products);
$this->command->info('Test Data seeded');
}
示例11: pay
/**
* Proccess payment
*
* @param Request $request
* @return Response
*/
public function pay(Request $request)
{
$user = Auth::user();
if ($request->session()->has('addressId')) {
$address = Address::find($request->session()->get('addressId'));
$request->session()->forget('addressId');
} else {
$address = $user->address;
}
// array for order data
$orderData = [];
$orderData['full_price'] = Cart::totalWithShipping();
$orderData['user_id'] = $user->id;
$orderData['address_id'] = $address->id;
if ($request->has('stripeToken')) {
\Stripe\Stripe::setApiKey(env('STRIPE_TEST_SECRET_KEY'));
$orderData['stripeToken'] = $request->get('stripeToken');
$orderData['payment_method_id'] = 1;
try {
$charge = \Stripe\Charge::create(array("amount" => $orderData['full_price'] * 100, "currency" => "usd", "source" => $orderData['stripeToken'], "description" => "Test charge; user e-mail: " . $user->email));
} catch (\Stripe\Error\Card $e) {
$request->session()->flash('status', 'Card declined, please fill your card and try again later.');
return redirect('/');
}
} else {
$orderData['payment_method_id'] = 2;
}
$cartProducts = \Cart::associate('Product', 'App\\Models')->content();
$products = new Collection();
foreach ($cartProducts as $item) {
$products->push(['product' => \App\Models\Product::find($item->id), 'quantity' => $item->qty]);
}
// Get the order weight
$orderData['weight'] = 0;
foreach ($products as $product) {
$orderData['weight'] += $product['product']->weight * $product['quantity'];
}
$order = Order::create($orderData);
foreach ($products as $product) {
OrderProduct::create(['order_id' => $order->id, 'product_id' => $product['product']->id, 'quantity' => $product['quantity'], 'price' => (double) $product['product']->price * $product['quantity']]);
}
Event::fire(new OrderWasPlaced($order));
Cart::destroy();
$request->session()->flash('status', 'Order recieved.');
return redirect('/');
}