/** * Update Events from CRM */ public function onUpdateFromCrm() { // echo "\nProcessing Events: \n"; $crmevents = CRMEvent::isNotUpdated()->with(['course'])->get(); if (count($crmevents) > 0) { $crmevents->each(function ($event) { $cmsevent = Event::firstOrNew(['crm_event_id' => $event->id]); $cmsevent->fill($event->toArray()); // print_r($cmsevent->toArray()); $cmscourse = Course::where('crm_course_id', $event->course->id)->first(); // $cmstypes = CMSType::whereIn('crm_type_id', $event->types->pluck('id'))->get(); // $cmscategories = CMSCategory::whereIn('crm_category_id', $event->categories->pluck('id'))->get(); // \CW::info(['event' => $event->id]); // \CW::info(['cmscourse' => $cmscourse]); // \CW::info(['cmsevent' => $cmsevent]); // \CW::info(['type' => $cmscourse->type]); if ($cmscourse && $cmscourse->type && $cmscourse->category) { $cmsevent->course()->associate($cmscourse); $cmsevent->type()->associate($cmscourse->type); // $cmsevent->category()->associate($cmscourse->category); $cmsevent->is_updated = true; $event->update(['is_updated' => true]); // $cmsevent = $cmscourse->events()->save($cmsevent); $cmsevent->save(); } }); Flash::success("Events is update"); } else { Flash::info("No Events to Create/Update"); } }
/** * Update Events from CRM */ public function onUpdateFromCrm() { $crmuserevents = CRMUserEvent::isNotUpdated()->with(['user', 'event'])->get(); \CW::info(['userevents' => $crmuserevents]); if (count($crmuserevents) == 0) { Flash::info("No UserEvents to Create/Update"); // echo "ERROR!"; return; } $crmuserevents->each(function ($userevent) { if ($userevent->user && $userevent->event) { \CW::info([$userevent]); $cmsuser = User::where('email', $userevent->user->email)->first(); $cmsevent = Event::where('crm_event_id', $userevent->event->id)->with('course')->first(); $cmscourse = $cmsevent->course; $cmsusereventstate = UserEventState::where('crm_state_id', $userevent->state_id)->first(); // $cmsuserevent = UserEvent::firstOrNew(['crm_event_id' => $userevent->event->id, 'user_id' => $cmsuser->id]); // $cmsuserevent = $cmsuser->userevents() // $cmsuserevent = $cmsuserevent $cmsuserevent = UserEvent::where('user_id', $cmsuser->id)->where('event_id', $cmsevent->id)->first(); if (!$cmsuserevent) { $cmsuserevent = new UserEvent(); } \CW::info([$cmsuser, $cmsevent, $cmscourse, $cmsuserevent, $cmsusereventstate]); // if (!$cmsuser) { // Log::warning("CMSUser is NULL\n"); // } // if (!$cmsevent) { // Log::warning("CMSEvent is NULL\n"); // } // if (!$cmscourse) { // Log::warning("CMSCourse is NULL\n"); // } // if (!$cmsuserevent) { // Log::warning("CMSUserEvent is NULL\n"); // } // if (!$cmsusereventstate) { // Log::warning("CMSUserEventState is NULL\n"); // } $cmsuserevent->user()->associate($cmsuser); $cmsuserevent->course()->associate($cmscourse); $cmsuserevent->state()->associate($cmsusereventstate); $cmsuserevent->event()->associate($cmsevent); $cmsuserevent->fill(['course_type_id' => $cmscourse->course_type_id, 'course_category_id' => $cmscourse->course_category_id, 'crm_event_id' => $userevent->event->id]); \CW::info([$cmsuserevent]); $cmsuserevent->save(); $userevent->update(['is_updated' => true]); } }); Flash::success("UserEvents is update"); }
/** * Execute the console command. * @return void */ public function fire() { // $cmstypes = CMSType::all(); echo "\nProcessing Types: \n"; $crmtypes = CRMType::isNotUpdated()->get(); if (count($crmtypes) > 0) { $crmtypes->each(function ($type) { $cmstype = CMSType::firstOrNew(['crm_type_id' => $type->id]); $cmstype->fill(['title' => $type->title]); $cmstype->is_updated = true; $type->is_updated = true; $cmstype->save(); $type->save(); echo " [^]\n"; }); echo "\n"; } else { $this->info(" No Types for Create/Update"); } echo "\nProcessing Categories: \n"; $crmcategories = CRMCategory::isNotUpdated()->get(); if (count($crmcategories) > 0) { $crmcategories->each(function ($category) { $cmscategory = CMSCategory::firstOrNew(['crm_category_id' => $category->id]); $cmscategory->fill(['title' => $category->title]); $cmscategory->is_updated = true; $category->is_updated = true; $cmscategory->save(); $category->save(); echo " [^]\n"; }); echo "\n"; } else { $this->info(" No Categories for Create/Update"); } echo "\nProcessing Courses: \n"; $crmcourses = CRMCourse::isNotUpdated()->with(['events', 'types', 'categories'])->get(); if (count($crmcourses) > 0) { $crmcourses->each(function ($course) { $cmscourse = CMSCourse::firstOrNew(['crm_course_id' => $course->id]); $cmscourse->fill($course->toArray()); $cmscourse->is_updated = true; $course->update(['is_updated' => true]); $cmscourse->save(); foreach ($course->types->toArray() as $type) { $cmstype = CMSType::where('crm_type_id', $type['id'])->first(); if (!is_null($cmstype) && !$cmscourse->types->contains($cmstype->id)) { $course->types()->updateExistingPivot($type['id'], ['is_updated' => true]); $cmscourse->types()->attach($cmstype->id, ['is_updated' => true]); } } foreach ($course->categories->toArray() as $category) { $cmscategory = CMSCategory::where('crm_category_id', $category['id'])->first(); if (!is_null($cmscategory) && !$cmscourse->categories->contains($cmscategory->id)) { $course->categories()->updateExistingPivot($category['id'], ['is_updated' => true]); $cmscourse->categories()->attach($cmscategory->id, ['is_updated' => true]); } } echo " [+]\n"; }); echo "\n"; } else { $this->info(" No Courses for Create/Update"); } echo "\nProcessing Events: \n"; $crmevents = CRMEvent::isNotUpdated()->with(['course', 'types', 'categories'])->get(); if (count($crmevents) > 0) { $crmevents->each(function ($event) { $cmsevent = CMSEvent::firstOrNew(['crm_event_id' => $event->id]); $cmsevent->fill($event->toArray()); print_r($cmsevent->toArray()); $cmscourse = CMSCourse::where('crm_course_id', $event->course->id)->first(); // $cmstypes = CMSType::whereIn('crm_type_id', $event->types->pluck('id'))->get(); // $cmscategories = CMSCategory::whereIn('crm_category_id', $event->categories->pluck('id'))->get(); $cmsevent->course()->associate($cmscourse); $cmsevent->type()->associate($cmscourse->types->first()); $cmsevent->category()->associate($cmscourse->categories->first()); $cmsevent->is_updated = true; $event->update(['is_updated' => true]); // $cmsevent = $cmscourse->events()->save($cmsevent); $cmsevent->save(); echo " [+]\n"; }); echo "\n"; } else { $this->info(" No Events to Create/Update"); } // echo "\nProcessing Courses Types: \n"; // $_test = CRMType::courses()->get(); // print_r($_test->toArray()); // $crmcourses = CRMCourse::find(1)->types()->where('types.is_updated', '=', true)->get(); // if (count($crmcourses) > 0) { // print_r($crmcourses->toArray()); // } else { // $this->info(" No Courses Types to Create/Update"); // } // $crmcourses = CRMCourse::with(['types'])->whereHas('types', function ($q) { // // $q->wherePivot('is_updated', '=', false); // $q // ->where('type_id', '=', 1) // // ->withPivot('is_updated') // ->wherePivot('is_updated', '=', true) // ; // })->get(); // if (count($crmcourses) > 0) { // print_r($crmcourses->toArray()); // } else { // $this->info(" No Courses Types to Create/Update"); // } }
public function onOrder() { extract(post()); if (!post()) { return; } $user = $this->user(); CW::info(['orderPOST' => post()]); // CW::info(['UserEventsId' => array_keys($course_events)]); // CW::info(['EventsId' => array_values($course_events)]); $ids = array_map('intval', $course_events); CW::info(['UserEventId: EventId' => $ids]); $_userevents = $user->userevents()->whereIn('id', array_keys($course_events))->get(); CW::info(['UserEvents' => $_userevents]); $_events = EventModel::whereIn('id', $ids)->get(); CW::info(['Events' => $_events]); // return; $_userevents->each(function ($userevent) use($ids) { if ($userevent->state_id == 9) { $userevent->delete(); } else { // $event = $_events->where('id', $ids[$userevent->id]); $event = EventModel::find($ids[$userevent->id]); // CW::info(['UserEvent' => $userevent]); CW::info(['Event' => $event]); if (!$event) { $userevent->state()->associate(UserEventStateModel::find(7)); // Статус: В списке $userevent->save(); // Flash::info('Войдите или Зарегистрируйтесь, чтобы записаться на курс!'); // return ['#flashMessages' => $this->renderPartial('@message')]; } else { $userevent->event()->associate($event); $userevent->state()->associate(UserEventStateModel::find(6)); // Статус: В обработке $userevent->save(); } } }); // return \Redirect::refresh()->with('order_state', 'complete'); // return \Redirect::to('personal/order/confirm'); $user['profile'] = $user->profile; $userevents = $user->userevents()->select('id', 'course_id', 'event_id', 'state_id')->with(['course' => function ($q) { $q->select('id', 'crm_course_id', 'title'); }, 'event' => function ($q) { $q->select('id', 'crm_event_id', 'hours', 'price', 'date_start', 'date_end', 'teacher'); }, 'state' => function ($q) { $q->select('id', 'crm_state_id', 'title'); }])->get(); // CW::info(['email_data' => $_userevents]); // CW::info(['email_data' => $email_data]); $this->sendEmail(['user' => $user, 'userevents' => $userevents]); Flash::info('Ваша заявка оформлена!'); return ['#layout-flash-messages' => $this->renderPartial('@message')]; // $event = new EventModel; // $userevent = new UserEventModel; }