public function postTicketSales($ev) { $all_input = Input::all(); eerror_log('>>>> TSAI ' . count($all_input['sales_data']) . ' --- ' . json_encode($all_input['sales_data'])); foreach ($all_input['sales_data'] as $key => $sales_ttype_data) { if (!isset($sales_ttype_data['sold']) || !is_numeric($sales_ttype_data['sold'])) { eerror_log('>> invalid sold ' . json_encode($sales_ttype_data['sold'])); continue; } // get the ticket type to dicount sold tickets $curr_ticket_type = TicketType::find((int) $sales_ttype_data['ttype_id']); if (!$curr_ticket_type) { eerror_log('>>>> could not find ticket type'); return Response::make('could not find ticket type', 500); } // discount $curr_ticket_type->num_available -= (int) $sales_ttype_data['sold']; $curr_ticket_type->update(); $sale_date = new DateTime(); $sale_date->setISODate((int) $sales_ttype_data['year'], (int) $sales_ttype_data['week']); $sales_date_ts = $sale_date->format('Y-m-d'); eerror_log('>>> Sales ' . $sales_date_ts . ' - ' . $sales_ttype_data['week']); $ttype_sales_entry = TicketSold::firstOrCreate(['week' => $sales_ttype_data['week'], 'year' => $sales_ttype_data['year'], 'sale_date' => $sales_date_ts, 'event_ticket_types_id' => $sales_ttype_data['ttype_id']]); $ttype_sales_entry->num_sold = (int) $sales_ttype_data['sold']; $ttype_sales_entry->update(); eerror_log('saved ticket entry ' . json_encode($ttype_sales_entry)); } return Response::make('OK', 200); }