public function create($pdata) { $data = array(); $data['isActive'] = $pdata['isActive']; $data['profileUpdated'] = $pdata['profileUpdated']; $data['city'] = $pdata['city']; $data['currency'] = $pdata['currency']; $data['createdTime'] = new \DateTime('now'); $data['lastLogin'] = new \DateTime('now'); $data['email'] = $pdata['email']; $data['firstName'] = $pdata['firstname']; $data['lastName'] = $pdata['lastname']; $data['username'] = $pdata['username']; $data['password'] = $pdata['password']; $data['phone'] = $pdata['phone']; $data['gender'] = $pdata['gender']; $entityManager = $this->getEntityManager(); $data['country'] = $entityManager->getRepository('User\\Entity\\Country')->findOneBy(array('id' => $pdata['country'])); $userExist = $entityManager->getRepository('User\\Entity\\User')->findOneBy(array('email' => $pdata['email'])); if ($userExist) { return new JsonModel(['success' => 'failed', 'msg' => '']); } else { $user = new User(); $user->setData($data); $user->save($entityManager); $user->createFreelancer($this, $data, $entityManager, $pdata['lang_code']); $freelancer = $user->getFreelancer(); $tmp = array('Resources' => $pdata['resources'], 'DesktopCatTools' => $pdata['desktopcattools'], 'DesktopOperatingSystems' => $pdata['desktopoperatingsystems'], 'InterpretingSpecialisms' => $pdata['interpretingspecialisms'], 'TranslationCatTools' => $pdata['translationcattools'], 'TranslationSpecialisms' => $pdata['translationspecialisms']); $freelancer->updateData($tmp, $entityManager); $freelancer->save($entityManager); $ret_data = $user->getData(); // Set Translation Price foreach ($pdata['translationPrices'] as $k => $v) { $translationPrice = array('user' => $user, 'sourceLanguage' => $entityManager->getRepository('User\\Entity\\Language')->findOneBy(array('id' => $v['sourceLanguage']['id'])), 'targetLanguage' => $entityManager->getRepository('User\\Entity\\Language')->findOneBy(array('id' => $v['targetLanguage']['id'])), 'price' => $v['price']); $pTranslationPrice = new UserTranslationPrice(); $pTranslationPrice->setData($translationPrice); $pTranslationPrice->save($entityManager); } // Set Desktop Prices foreach ($pdata['desktopPrices'] as $k => $v) { $desktopPrice = array('user' => $user, 'language' => $entityManager->getRepository('User\\Entity\\Language')->findOneBy(array('id' => $v['language']['id'])), 'software' => $entityManager->getRepository('User\\Entity\\DesktopSoftware')->findOneBy(array('id' => $v['language']['id'])), 'priceMac' => $v['priceMac'], 'pricePc' => $v['pricePc'], 'priceHourMac' => $v['priceHourMac'], 'priceHourPc' => $v['priceHourPc']); $pDesktopPrice = new UserDesktopPrice(); $pDesktopPrice->setData($desktopPrice); $pDesktopPrice->save($entityManager); } // Set Interpreting Price foreach ($pdata['interpretingPrices'] as $k => $v) { $interpretingPrice = array('user' => $user, 'sourceLanguage' => $entityManager->getRepository('User\\Entity\\Language')->findOneBy(array('id' => $v['sourceLanguage']['id'])), 'targetLanguage' => $entityManager->getRepository('User\\Entity\\Language')->findOneBy(array('id' => $v['targetLanguage']['id'])), 'service' => $entityManager->getRepository('User\\Entity\\InterpretingService')->findOneBy(array('id' => $v['service']['id'])), 'priceDay' => $v['priceDay'], 'priceHalfDay' => $v['priceHalfDay']); $pInterpretingPrice = new UserInterpretingPrice(); $pInterpretingPrice->setData($interpretingPrice); $pInterpretingPrice->save($entityManager); } return new JsonModel(['user' => $ret_data, 'success' => 'success']); } return new JsonModel(['success' => 'failed', 'msg' => 'Unknown Error']); }