PageRenderTime 55ms CodeModel.GetById 19ms RepoModel.GetById 0ms app.codeStats 0ms

/module/Provisioning/src/Provisioning/Controller/AdditionLineController.php

https://gitlab.com/jeann2015/nexus
PHP | 1620 lines | 1100 code | 425 blank | 95 comment | 52 complexity | 3408c5e3ef687394ec0f3b6daca8f803 MD5 | raw file
Possible License(s): BSD-3-Clause

Large files files are truncated, but you can click here to view the full file

  1. <?php
  2. /**
  3. * Zend Framework (http://framework.zend.com/)
  4. *
  5. * @link http://github.com/zendframework/ZendSkeletonApplication for the canonical source repository
  6. * @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com)
  7. * @license http://framework.zend.com/license/new-bsd New BSD License
  8. */
  9. namespace Provisioning\Controller;
  10. use Zend\View\Model\ViewModel;
  11. use Zend\View\Model\JsonModel;
  12. use Qv\Language;
  13. use Provisioning\Model\Order;
  14. use Provisioning\Model\Group;
  15. use Provisioning\Model\Customer;
  16. use Provisioning\Model\Device;
  17. use Provisioning\Model\User;
  18. use Provisioning\Model\Xml;
  19. use Provisioning\Model\Dn;
  20. use Provisioning\Model\Message;
  21. use Provisioning\Model\Queue;
  22. use Provisioning\Model\GroupServiceProvider;
  23. use Provisioning\Model\DomainAdd;
  24. use Provisioning\Model\ProviderAdd;
  25. use Provisioning\Model\Provider;
  26. use Provisioning\Model\Domain;
  27. use Provisioning\Model\ServiceProviderEmpresaAdd;
  28. use Provisioning\Model\UserModifyAdd;
  29. use Provisioning\Form\OrderForm;
  30. use Provisioning\Form\GroupForm;
  31. use Provisioning\Form\CustomerForm;
  32. use Provisioning\Form\DeviceForm;
  33. use Provisioning\Form\DomainAddForm;
  34. use Provisioning\Form\UserForm;
  35. use Provisioning\Form\GroupDnAssignForm;
  36. use Provisioning\Form\UserDnDeviceAssignForm;
  37. use Provisioning\Form\ServiceProviderAddForm;
  38. use Provisioning\Form\ServiceProviderOrderAddForm;
  39. use Provisioning\Form\UserModifyAddForm;
  40. use Preference\Dao\PreferenceDao;
  41. use Generic\Controller\GenericController;
  42. use Provisioning\Service\XmlService;
  43. use Provisioning\Service\OCISoapService;
  44. class AdditionLineController extends GenericController
  45. {
  46. public $serviceDao;
  47. public function indexAction() {
  48. if (! $this->getServiceLocator()
  49. ->get('AuthService')->hasIdentity()){
  50. return $this->redirect()->toRoute('auth');
  51. }
  52. $_SESSION['current'] = "order";
  53. $_SESSION['activities'] = null;
  54. $_SESSION['current_priority'] = null;
  55. return;
  56. }
  57. public function listAction()
  58. {
  59. if (! $this->getServiceLocator()
  60. ->get('AuthService')->hasIdentity()){
  61. return $this->redirect()->toRoute('auth');
  62. }
  63. $filter = false;
  64. $paginate = true;
  65. $page = $this->params()->fromRoute('page') ? (int) $this->params()->fromRoute('page') : 1;
  66. $request = $this->getRequest();
  67. if ($request->isPost()) {
  68. $filter = $request->getPost();
  69. }
  70. // fetchAll(true) return paginator
  71. // fetchAll() return resultset
  72. $paginator = $this->getDao()->fetchAll($paginate,$filter);
  73. $paginator->setCurrentPageNumber($page);
  74. $paginator->setItemCountPerPage(10);
  75. $paginator->setPageRange(7);
  76. return new ViewModel(array(
  77. 'paginator' => $paginator,
  78. ));
  79. }
  80. public function viewAction()
  81. {
  82. $id = $this->params()->fromRoute('id');
  83. $order = $this->getDao()->getOrder($id);
  84. $xmlFetch = $this->getDao("XmlDao")->fetchByOrderId($order->id);
  85. //$customer = $this->getDao("CustomerDao")->get($order->customerId);
  86. $group = $this->getDao("GroupDao")->get($order->groupId);
  87. //$groupsArray = array();
  88. //foreach ($groups as $group) {
  89. $devices = $this->getDao("DeviceDao")->fetchByGroupId($group->id);
  90. $devicesArray = array();
  91. foreach ($devices as $device) {
  92. $devicesArray[] = $device;
  93. }
  94. $group->devices = $devicesArray;
  95. //$groupsArray[] = $group;
  96. //}
  97. return new ViewModel(array(
  98. 'order' => $order,
  99. //'customer' => $customer,
  100. 'group' => $group,
  101. 'xmls' => $xmlFetch,
  102. ));
  103. }
  104. public function addAction()
  105. {
  106. if (! $this->getServiceLocator()
  107. ->get('AuthService')->hasIdentity()){
  108. return $this->redirect()->toRoute('auth');
  109. }
  110. $id = $this->params()->fromRoute('id');
  111. $order = $this->getDao("OrderDao")->get($id);
  112. if(!$order){
  113. $order = new Order();
  114. }
  115. $form = new OrderForm();
  116. $error = "";
  117. /**
  118. * Llenamos el select con los servicios
  119. */
  120. $caseSelect = $form->get('caseId');
  121. $caseFetch = $this->getDao("CaseDao")->fetchAll();
  122. $serviceArray = array();
  123. foreach ($caseFetch as $case) {
  124. $caseArray[$case->id] = $case->name;
  125. }
  126. $caseSelect->setAttribute('options',$caseArray);
  127. /**
  128. * Llenamos la plataformas
  129. */
  130. $currentUser = (object)$this->getServiceLocator()->get('AuthService')->getIdentity();
  131. $order->setPlatformId($currentUser->platform_id);
  132. $request = $this->getRequest();
  133. if ($request->isPost()) {
  134. $form->setInputFilter($order->getInputFilter());
  135. $form->setData($request->getPost());
  136. if ($form->isValid()) {
  137. $order->setDateCreated(\date("Y-m-d H:i:s"));
  138. $order->setStatusId(1); // Status nuevo
  139. $order->setCisid($form->get("cisid")->getValue());
  140. //$order->setProductId($form->get("productId")->getValue());
  141. $order->setCaseId($form->get("caseId")->getValue());
  142. $order->setPlatformId($form->get("platformId")->getValue());
  143. $order->setDescription($form->get("description")->getValue());
  144. $order->setIntervention("manual");
  145. $order->setUserId($currentUser->id);
  146. $order->setCurrentStep(1);
  147. $order->setCurrentStep(1);
  148. $caseXmlTemplateFetch = $this->getDao("CaseXmlTemplateDao")
  149. ->fetchByCaseId($order->getCaseId());
  150. $activities = array();
  151. foreach ($caseXmlTemplateFetch as $caseXmlTemplate) {
  152. $xmltemplate = $this->getDao("XmlTemplateDao")
  153. ->get($caseXmlTemplate->xmltemplate_id);
  154. $commandExploded = explode("Request",$xmltemplate->command);
  155. $action = strtolower($commandExploded[0]);
  156. $activities[ $caseXmlTemplate->priority ] = $action;
  157. }
  158. $_SESSION['activities'] = $activities;
  159. $order->setTotalStep(count($activities));
  160. $thisStep = 0;
  161. if($thisStep > $order->getCompleteStep() ){
  162. $order->setCompleteStep( $thisStep );
  163. }
  164. $order->setCurrentStep( $thisStep + 1 );
  165. $order->setId($this->getDao()->save($order));
  166. //$_SESSION['order_id'] = $order->getId();
  167. //$_SESSION['case_id'] = $order->getCaseId();
  168. $this->next($order);
  169. } else {
  170. $error = $form->getMessages();
  171. }
  172. }
  173. $form->setData($order->getArrayCopy());
  174. return new ViewModel(array(
  175. 'form' => $form,
  176. 'error' => $error,
  177. 'order' => $order,
  178. //'step' => $step,
  179. ));
  180. }
  181. public function systemdomainaddAction(){
  182. $form = new DomainAddForm();
  183. $id = $this->params()->fromRoute('id');
  184. $order = $this->getDao("OrderDao")->get($id);
  185. $id_platform = $order->getPlatformId();
  186. //Llena el dropdown de Domain
  187. $id_domainSelect = $form->get('id_domain');
  188. $id_domainFetch = $this->getDao("DomainDao")->fetchByPlatformId($id_platform);
  189. $id_domainArray = array();
  190. foreach ($id_domainFetch as $domain) {
  191. $id_domainArray[$domain->id] = $domain->name;
  192. }
  193. $id_domainSelect->setAttribute('options',$id_domainArray);
  194. //Llena el dropdown de Domain
  195. $error = "";
  196. $request = $this->getRequest();
  197. if ($request->isPost()) {
  198. $form->setData($request->getPost());
  199. $domainadd = new DomainAdd();
  200. if ($form->isValid()) {
  201. $id_domain = $form->get("id_domain")->getValue();
  202. $domain = $this->getDao("DomainDao")->fetchById($id_domain);
  203. $domainadd->setName($domain->name);
  204. $domainadd->setid_order($id);
  205. $domainadd->setid_domain($id_domain);
  206. $domainadd->setId( $this->getDao("DomainAddDao")->save($domainadd) );
  207. $this->generateXml('add','SystemDomainAddRequest',$domainadd,$order);
  208. $thisStep = (int)array_search(explode('Action',__FUNCTION__)[0],$_SESSION['activities']);
  209. if($thisStep > $order->getCompleteStep() ){
  210. $order->setCompleteStep( $thisStep );
  211. }
  212. $order->setCurrentStep( $thisStep + 1 );
  213. $order->setId( $this->getDao("OrderDao")->save($order) );
  214. $this->next($order);
  215. }
  216. }
  217. $form->setData($order->getArrayCopy());
  218. return new ViewModel(array(
  219. 'form' => $form,
  220. //'error' => $error,
  221. 'order' => $order,
  222. ));
  223. }
  224. public function serviceprovideraddAction(){
  225. $form = new ServiceProviderAddForm();
  226. $id = $this->params()->fromRoute('id');
  227. $order = $this->getDao("OrderDao")->get($id);
  228. $id_platform = $order->getPlatformId();
  229. //Llena el dropdaown de Proveedor de Servicios
  230. $id_service_providerSelect = $form->get('id_service_provider');
  231. $providerFetch = $this->getDao("ProviderDao")->fetchByPlatformId($id_platform);
  232. $providerArray = array();
  233. foreach ($providerFetch as $provider) {
  234. $providerArray[$provider->id] = $provider->name;
  235. }
  236. $id_service_providerSelect->setAttribute('options',$providerArray);
  237. //Llena el dropdaown de Proveedor de Servicios
  238. //Coloca el Id de domain_order
  239. //$id_order_domain_value = $domainadd_id->id;
  240. //$form->get('id_order_domain')->setValue($id_order_domain_value);
  241. //Coloca el Id de domain_order
  242. $error = "";
  243. $request = $this->getRequest();
  244. if ($request->isPost()) {
  245. $form->setData($request->getPost());
  246. $provideradd = new ProviderAdd();
  247. if ($form->isValid()) {
  248. $id_service_provider = $form->get("id_service_provider")->getValue();
  249. $provider = $this->getDao("ProviderDao")->fetchById($id_service_provider);
  250. $id_domainFetch = $this->getDao("DomainAddDao")->fetchByOrderId($id);
  251. $provideradd->setName($provider->name);
  252. $provideradd->setid_order($id);
  253. $provideradd->setid_provider($id_service_provider);
  254. $provideradd->setname_domain($id_domainFetch->name);
  255. $provideradd->setId( $this->getDao("ProviderAddDao")->save($provideradd) );
  256. $this->generateXml('add','ServiceProviderAddRequest13mp2',$provideradd,$order);
  257. $thisStep = (int)array_search(explode('Action',__FUNCTION__)[0],$_SESSION['activities']);
  258. if($thisStep > $order->getCompleteStep() ){
  259. $order->setCompleteStep( $thisStep );
  260. }
  261. $order->setCurrentStep( $thisStep + 1 );
  262. $order->setId( $this->getDao("OrderDao")->save($order) );
  263. $this->next($order);
  264. }
  265. }
  266. $form->setData($order->getArrayCopy());
  267. return new ViewModel(array(
  268. 'form' => $form,
  269. //'error' => $error,
  270. 'order' => $order,
  271. ));
  272. }
  273. public function serviceproviderdnaddlistAction(){
  274. $id = $this->params()->fromRoute('id');
  275. $order = $this->getDao("OrderDao")->get($id);
  276. $form = new ServiceProviderOrderAddForm();
  277. $request = $this->getRequest();
  278. if ($request->isPost()) {
  279. $serviceproviderempresaadd = new ServiceProviderEmpresaAdd();
  280. $form->setData($request->getPost());
  281. if ($form->isValid()) {
  282. $number = $form->get("number")->getValue();
  283. $providerFetch = $this->getDao("ProviderAddDao")->fetchBy_OrderId($id);
  284. foreach ($providerFetch as $provider) {
  285. $nameProvider = $provider->name;
  286. $nameIdServiceProvider = $provider->id_service_provider;
  287. }
  288. $serviceproviderempresaadd->setName($nameProvider);
  289. $serviceproviderempresaadd->setNumber($number);
  290. $serviceproviderempresaadd->setid_order($id);
  291. $serviceproviderempresaadd->set_service_provider($nameIdServiceProvider);
  292. $serviceproviderempresaadd->setId( $this->getDao("ServiceProviderEmpresaAddDao")->save($serviceproviderempresaadd) );
  293. $this->generateXml('add','ServiceProviderDnAddListRequest',$serviceproviderempresaadd,$order);
  294. $thisStep = (int)array_search(explode('Action',__FUNCTION__)[0],$_SESSION['activities']);
  295. if($thisStep > $order->getCompleteStep() ){
  296. $order->setCompleteStep( $thisStep );
  297. }
  298. $order->setCurrentStep( $thisStep + 1 );
  299. $order->setId( $this->getDao("OrderDao")->save($order) );
  300. $this->next($order);
  301. }
  302. }
  303. return new ViewModel(array(
  304. 'form' => $form,
  305. 'error' => $error,
  306. 'order' => $order,
  307. ));
  308. }
  309. public function userserviceassignlistAction(){
  310. $id = $this->params()->fromRoute('id');
  311. $order = $this->getDao("OrderDao")->get($id);
  312. $group = $this->getDao("GroupDao")->get($order->getGroupId());
  313. $ProviderId = $group->getProviderId();
  314. $GroupId = $order->getGroupId();
  315. $groupserviceprovider = new GroupServiceProvider();
  316. $ProviderId = $group->getProviderId();
  317. $GroupId = $order->getGroupId();
  318. $id_user = $order->getUserId();
  319. $groupserviceprovider->setOrderId($id);
  320. $groupserviceprovider->setcommand('userserviceassignlist');
  321. $groupserviceprovider->setUserId($id_user);
  322. $groupserviceprovider->setId($this->getDao("GroupServiceProviderDao")->save($groupserviceprovider));
  323. $xmlGenerated = $this->generateXml('add','UserServiceAssignListRequest',$groupserviceprovider,$order);
  324. $stepCurrentOrder = $order->getCurrentStep();
  325. $order->setCurrentStep($stepCurrentOrder+1);
  326. $stepCompleteStep = $order->getCompleteStep();
  327. $order->setCompleteStep($stepCompleteStep+1);
  328. $order->setId( $this->getDao("OrderDao")->save($order));
  329. return $this->next($order);
  330. }
  331. public function usermodifyAction(){
  332. $id = $this->params()->fromRoute('id');
  333. $order = $this->getDao("OrderDao")->get($id);
  334. $form = new UserModifyAddForm();
  335. $error="";
  336. //Datos a mostar
  337. $providerFetch = $this->getDao("ProviderAddDao")->fetchBy_OrderId($id);
  338. foreach ($providerFetch as $provider) {
  339. $nameDomain = $provider->name_domain;
  340. }
  341. $numberFetch = $this->getDao("ServiceProviderEmpresaAddDao")->fetchBy_OrderId($id);
  342. foreach ($numberFetch as $num) {
  343. $numbervalue = $num->number;
  344. }
  345. $deviceFetch = $this->getDao("DeviceDao")->fetchUnassignedByGroupId($order->getGroupId());
  346. foreach ($deviceFetch as $dev) {
  347. $devicevalue = $dev->type;
  348. }
  349. //Datos a mostrar
  350. $device = $numbervalue."@".$nameDomain;
  351. $form->get('number')->setValue($numbervalue);
  352. $form->get('name_device')->setValue($devicevalue);
  353. $form->get('lineport')->setValue($device);
  354. $request = $this->getRequest();
  355. if ($request->isPost()) {
  356. $UserModifyAdd = new UserModifyAdd();
  357. $form->setData($request->getPost());
  358. if ($form->isValid()) {
  359. $number = $form->get("number")->getValue();
  360. $name_device = $form->get("name_device")->getValue();
  361. $lineport = $form->get("lineport")->getValue();
  362. $id_user = $order->getUserId();
  363. $deviceLevel = "Group";
  364. $UserModifyAdd->setid_order($id);
  365. $UserModifyAdd->setid_user($id_user);
  366. $UserModifyAdd->setNumber($number);
  367. $UserModifyAdd->setlineport($lineport);
  368. $UserModifyAdd->setdevicegroup($deviceLevel);
  369. $UserModifyAdd->setdevicename($name_device);
  370. $UserModifyAdd->setId( $this->getDao("UserModifyAddDao")->save($UserModifyAdd) );
  371. $this->generateXml('modify','UserModifyRequest17sp4',$UserModifyAdd,$order);
  372. $thisStep = (int)array_search(explode('Action',__FUNCTION__)[0],$_SESSION['activities']);
  373. if($thisStep > $order->getCompleteStep() ){
  374. $order->setCompleteStep( $thisStep );
  375. }
  376. $order->setCurrentStep( $thisStep + 1 );
  377. $order->setId( $this->getDao("OrderDao")->save($order) );
  378. $this->next($order);
  379. }
  380. }
  381. return new ViewModel(array(
  382. 'form' => $form,
  383. 'error' => $error,
  384. 'order' => $order,
  385. ));
  386. }
  387. public function groupaddAction()
  388. {
  389. $id = $this->params()->fromRoute('id');
  390. $order = $this->getDao("OrderDao")->get($id);
  391. $form = new GroupForm();
  392. $error = "";
  393. /**
  394. * Llenamos el select con los productos
  395. */
  396. $productSelect = $form->get('productId');
  397. $productFetch = $this->getDao("ProductDao")->fetchAll();
  398. $productArray = array();
  399. foreach ($productFetch as $product) {
  400. $productArray[$product->id] = $product->name;
  401. }
  402. $productSelect->setAttribute('options',$productArray);
  403. if(isset($order->groupId)){
  404. $group = $this->getDao("GroupDao")->get($order->groupId);
  405. $form->setData($group->getArrayCopy());
  406. $timezones = \DateTimeZone::listIdentifiers();
  407. $form->get('timezone')->setValue(array_search($group->timezone,$timezones));
  408. } else {
  409. $group = new Group();
  410. $form->get('timezone')->setValue(159);
  411. }
  412. $request = $this->getRequest();
  413. if ($request->isPost()) {
  414. $form->setInputFilter($group->getInputFilter());
  415. $form->setData($request->getPost());
  416. if ($form->isValid()) {
  417. $group->setName($form->get("name")->getValue());
  418. $group->setContactName($form->get("contactName")->getValue());
  419. $group->setContactNumber($form->get("contactNumber")->getValue());
  420. $group->setContactEmail($form->get("contactEmail")->getValue());
  421. $group->setProductId($form->get("productId")->getValue());
  422. $group->setUserlimit($form->get("userlimit")->getValue());
  423. $group->setCisid($form->get("cisid")->getValue());
  424. $group->setProvisioned(0);
  425. $group->setSyncStatus('warning');
  426. $product = $this->getDao("ProductDao")->get($group->productId);
  427. $group->setProviderId($product->providerId);
  428. $timezones = \DateTimeZone::listIdentifiers();
  429. $timezone = $timezones[(int)$form->get("timezone")->getValue()];
  430. $group->setTimezone($timezone);
  431. //$letter = $this->getDao("GroupDao")->getLastGroupLetterByCustomerId($_SESSION['customer_id']);
  432. $nextLetter = "A";
  433. /*if($letter){
  434. $abc = range('A','Z');
  435. $index = array_search($letter, $abc);
  436. $nextLetter = $abc[$index+1];
  437. } */
  438. $group->setLetter($nextLetter);
  439. $group->setId( $this->getDao("GroupDao")->save($group) );
  440. $order->setGroupId($group->getId());
  441. $this->generateXml('add','GroupAdd',$group,$order);
  442. $thisStep = (int)array_search(explode('Action',__FUNCTION__)[0],$_SESSION['activities']);
  443. if($thisStep > $order->getCompleteStep() ){
  444. $order->setCompleteStep( $thisStep );
  445. }
  446. $order->setCurrentStep( $thisStep + 1 );
  447. $order->setId( $this->getDao("OrderDao")->save($order) );
  448. $this->next($order);
  449. } else {
  450. $error = $form->getMessages();
  451. }
  452. }
  453. return new ViewModel(array(
  454. 'form' => $form,
  455. 'error' => $error,
  456. 'order' => $order,
  457. ));
  458. }
  459. public function groupaccessdeviceaddAction()
  460. {
  461. $id = $this->params()->fromRoute('id');
  462. $order = $this->getDao("OrderDao")->get($id);
  463. $form = new DeviceForm();
  464. $error = "";
  465. $request = $this->getRequest();
  466. if ($request->isPost()) {
  467. $device = new Device();
  468. $form->setInputFilter($device->getInputFilter());
  469. $form->setData($request->getPost());
  470. if ($form->isValid()) {
  471. $device->setName($form->get("name")->getValue());
  472. $device->setType($form->get("type")->getValue());
  473. $device->setProtocol($form->get("protocol")->getValue());
  474. $device->setGroupId($order->getGroupId());
  475. $device->setId( $this->getDao("DeviceDao")->save($device) );
  476. $xmlGenerated = $this->generateXml('add','GroupAccessDeviceAdd',$device,$order);
  477. $thisStep = (int)array_search(explode('Action',__FUNCTION__)[0],$_SESSION['activities']);
  478. if($thisStep > $order->getCompleteStep() ){
  479. $order->setCompleteStep( $thisStep );
  480. }
  481. $this->getDao("OrderDao")->save($order);
  482. } else {
  483. $error = $form->getMessages();
  484. }
  485. }
  486. $order = $this->getDao("OrderDao")->get($id);
  487. $devices = $this->getDao("DeviceDao")->fetchByGroupId($order->getGroupId());
  488. $form = new DeviceForm();
  489. return new ViewModel(array(
  490. 'form' => $form,
  491. 'error' => $error,
  492. 'order' => $order,
  493. 'devices'=> $devices,
  494. ));
  495. }
  496. public function groupaccessdevicedeleteAction()
  497. {
  498. $id = $this->params()->fromRoute('id');
  499. $this->getDao("DeviceDao")->delete($id);
  500. $this->deleteXML($id);
  501. return new JsonModel();
  502. }
  503. public function useraddAction()
  504. {
  505. $id = $this->params()->fromRoute('id');
  506. $order = $this->getDao("OrderDao")->get($id);
  507. $form = new UserForm();
  508. $error = "";
  509. $group = $this->getDao("GroupDao")->get($order->getGroupId());
  510. $timezones = \DateTimeZone::listIdentifiers();
  511. $key = array_search($group->timezone, $timezones);
  512. $form->get('timezone')->setValue($key);
  513. /**
  514. * Llenamos el select con los idiomas
  515. */
  516. $languageSelect = $form->get('language');
  517. $languageArray = array();
  518. foreach (Language::getListNames() as $language) {
  519. $languageArray[$language] = $language;
  520. }
  521. $languageSelect->setAttribute('options',$languageArray);
  522. $request = $this->getRequest();
  523. if ($request->isPost()) {
  524. $user = new User();
  525. $form->setInputFilter($user->getInputFilter());
  526. $form->setData($request->getPost());
  527. if ($form->isValid()) {
  528. $user->setFirstname($form->get("firstname")->getValue());
  529. $user->setLastname($form->get("lastname")->getValue());
  530. $user->setUserid($form->get("userid")->getValue());
  531. $user->setLanguage($form->get("language")->getValue());
  532. $user->setPassword('123456789');
  533. $timezones = \DateTimeZone::listIdentifiers();
  534. $timezone = $timezones[(int)$form->get("timezone")->getValue()];
  535. $user->setTimezone($timezone);
  536. $user->setGroupId($order->getGroupId());
  537. $user->setId ( $this->getDao("UserDao")->save($user) );
  538. $xmlGenerated = $this->generateXml('add','User',$user,$order);
  539. $thisStep = (int)array_search(explode('Action',__FUNCTION__)[0],$_SESSION['activities']);
  540. if($thisStep > $order->getCompleteStep() ){
  541. $order->setCompleteStep( $thisStep );
  542. }
  543. $this->getDao("OrderDao")->save($order);
  544. } else {
  545. $error = $form->getMessages();
  546. }
  547. }
  548. //$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
  549. //$code = Language::getListCodesNames();
  550. $form->get('language')->setValue('Spanish');
  551. $order = $this->getDao("OrderDao")->get($id);
  552. $users = $this->getDao("UserDao")->fetchByGroupId($order->getGroupId());
  553. return new ViewModel(array(
  554. 'form' => $form,
  555. 'error' => $error,
  556. 'order' => $order,
  557. 'users' => $users,
  558. ));
  559. }
  560. public function userdeleteAction()
  561. {
  562. $id = $this->params()->fromRoute('id');
  563. $this->getDao("UserDao")->delete($id);
  564. $this->deleteXML($id);
  565. return new JsonModel();
  566. }
  567. public function groupdnassignlistAction()
  568. {
  569. $id = $this->params()->fromRoute('id');
  570. $order = $this->getDao("OrderDao")->get($id);
  571. $group = $this->getDao("GroupDao")->get($order->getGroupId());
  572. $request = $this->getRequest();
  573. $availableDnArray = array();
  574. if ($request->isPost()) {
  575. //$form->setInputFilter($user->getInputFilter());
  576. //$form->setData($request->getPost());
  577. $dns = $this->getDao("DnDao")->fetchByGroupId($group->getId());
  578. foreach ($dns as $dn) {
  579. $savedDn = $this->getDao("DnDao")->getByNumber($dn->number);
  580. $this->deleteXML($savedDn->id);
  581. $this->getDao("DnDao")->delete($savedDn->id);
  582. $groupDnArray[$dn->number] = $dn->number;
  583. }
  584. $form = new GroupDnAssignForm();
  585. /**
  586. * Llenamos el select con los numeros disponibles
  587. */
  588. $availableDnSelect = $form->get('availableDnRange');
  589. $availableDnSelect->setAttribute('options',$availableDnArray);
  590. $groupDnSelect = $form->get('groupDn');
  591. $groupDnArray = array();
  592. $groupDnSelect->setAttribute('options',$groupDnArray);
  593. $numbers = $request->getPost("groupDn");
  594. foreach ($numbers as $number) {
  595. $dn = new Dn();
  596. $dn->setNumber($number);
  597. $dn->setGroupId($group->getId());
  598. $dn->setId($this->getDao("DnDao")->save($dn));
  599. $xmlGenerated = $this->generateXml('add','GroupDnAssignListRequest',$dn,$order);
  600. $thisStep = (int)array_search(explode('Action',__FUNCTION__)[0],$_SESSION['activities']);
  601. if($thisStep > $order->getCompleteStep() ){
  602. $order->setCompleteStep( $thisStep );
  603. }
  604. $order->setCurrentStep( $thisStep + 1 );
  605. $order->setId( $this->getDao("OrderDao")->save($order) );
  606. }
  607. $this->next($order);
  608. } else {
  609. try {
  610. $xmltemplate = $this->getDao("XmlTemplateDao")->getByCategoryLikeCommand('list','ServiceProviderDnGetAvailableList');
  611. if($xmltemplate) {
  612. $xml = $xmltemplate->getXml();
  613. $variableDao = $this->getDao("VariableDao");
  614. $variables = $variableDao->fetchByXmlTemplateId($xmltemplate->getId());
  615. //$array = $request->getPost();
  616. $provider = $this->getDao("ProviderDao")->get($group->providerId);
  617. $array = array("name" => $provider->name);
  618. $xmlService = new XmlService($this->getServiceLocator());
  619. $xmlGenerated = $xmlService->mergeArray($xml,$variables,$array);
  620. $OCISoapService = new OCISoapService($this->getServiceLocator());
  621. //$response = $OCISoapService->send($xmlGenerated);
  622. $response = null;
  623. $xmlresponse = $xmlService->getCommnadResponseFromXml($response);
  624. $availableDnArray = array();
  625. if($xmlresponse->result == "success"){
  626. $availableDnArray = (array)$xmlresponse->command->availableDn;
  627. }
  628. }
  629. } catch (\Exception $ex) {
  630. }
  631. $form = new GroupDnAssignForm();
  632. /**
  633. * Llenamos el select con los numeros disponibles
  634. */
  635. $availableDnSelect = $form->get('availableDnRange');
  636. $availableDnSelect->setAttribute('options',$availableDnArray);
  637. /**
  638. * Llenamos el select con los numeros ya del grupo
  639. */
  640. $dns = $this->getDao("DnDao")->fetchByGroupId($group->getId());
  641. $groupDnSelect = $form->get('groupDn');
  642. $groupDnArray = array();
  643. foreach ($dns as $groupDn) {
  644. $groupDnArray[$groupDn->number] = $groupDn->number;
  645. }
  646. $groupDnSelect->setAttribute('options',$groupDnArray);
  647. }
  648. return new ViewModel(array(
  649. 'form' => $form,
  650. //'error' => $error,
  651. 'order' => $order,
  652. 'available' => $availableDnArray,
  653. ));
  654. }
  655. public function userdndeviceassignAction()
  656. {
  657. $id = $this->params()->fromRoute('id');
  658. if($id<>"") {
  659. $order = $this->getDao("OrderDao")->get($id);
  660. $group = $this->getDao("GroupDao")->get($order->getGroupId());
  661. $unassignedUsers = $this->getDao("UserDao")->fetchUnassignedByGroupId($group->id);
  662. $unassignedDns = $this->getDao("DnDao")->fetchUnassignedByGroupId($group->id);
  663. //echo $group->id."Hola";
  664. $unassignedDevices = $this->getDao("DeviceDao")->fetchUnassignedByGroupId($group->id);
  665. $form = new UserDnDeviceAssignForm();
  666. /* Id Order*/
  667. $id_order_input = $form->get('id_order');
  668. $id_order_input->setAttribute('value',$id);
  669. /*Id Order*/
  670. /* Asignamos usuarios a su select */
  671. $unassignedUsersArray = array();
  672. foreach ($unassignedUsers as $unassignedUser) {
  673. $unassignedUsersArray[$unassignedUser->id] =
  674. $unassignedUser->userid . " (" . $unassignedUser->firstname . " " . $unassignedUser->lastname . ")";
  675. }
  676. $unassignedUsersSelect = $form->get('id');
  677. $unassignedUsersSelect->setAttribute('options',$unassignedUsersArray);
  678. /* Asignamos dn a su select */
  679. $unassignedDnsArray = array();
  680. foreach ($unassignedDns as $unassignedDn) {
  681. $unassignedDnsArray[$unassignedDn->id] = $unassignedDn->number;
  682. }
  683. $unassignedDnsSelect = $form->get('dnId');
  684. $unassignedDnsSelect->setAttribute('options',$unassignedDnsArray);
  685. /* Asignamos device a su select */
  686. $unassignedDevicessArray = array();
  687. foreach ($unassignedDevices as $unassignedDevice) {
  688. $unassignedDevicesArray[$unassignedDevice->id] = $unassignedDevice->name;
  689. }
  690. $unassignedDevicesSelect = $form->get('deviceId');
  691. $unassignedDevicesSelect->setAttribute('options',$unassignedDevicesArray);
  692. }
  693. $request = $this->getRequest();
  694. if ($request->isPost()) {
  695. $id_order = $request->getPost("id_order");
  696. $order = $this->getDao("OrderDao")->get($id_order);
  697. $group = $this->getDao("GroupDao")->get($order->getGroupId());
  698. $id = $request->getPost("id");
  699. $dnId = $request->getPost("dnId");
  700. $deviceId= $request->getPost("deviceId");
  701. $user = $this->getDao("UserDao")->get($id);
  702. $user->setDnId($dnId);
  703. $user->setDeviceId($deviceId);
  704. $user->setId($this->getDao("UserDao")->save($user));
  705. $xmlGenerated = $this->generateXml('modify','UserDnDeviceAssign',$user,$order);
  706. $stepCurrentOrder = $order->getCurrentStep();
  707. $order->setCurrentStep($stepCurrentOrder+1);
  708. $stepCompleteStep = $order->getCompleteStep();
  709. $order->setCompleteStep($stepCompleteStep+1);
  710. $order->setId( $this->getDao("OrderDao")->save($order));
  711. return $this->next($order);
  712. }
  713. return new ViewModel(array(
  714. 'form' => $form,
  715. //'error' => $error,
  716. //'step' => $step,
  717. ));
  718. }
  719. public function groupservicemodifyauthorizationlistAction(){
  720. $id = $this->params()->fromRoute('id');
  721. $order = $this->getDao("OrderDao")->get($id);
  722. $group = $this->getDao("GroupDao")->get($order->getGroupId());
  723. $ProviderId = $group->getProviderId();
  724. $GroupId = $order->getGroupId();
  725. $groupserviceprovider = new GroupServiceProvider();
  726. $ProviderId = $group->getProviderId();
  727. $GroupId = $order->getGroupId();
  728. $groupserviceprovider->setGroupId($GroupId);
  729. $groupserviceprovider->setServiceproviderId($ProviderId);
  730. $groupserviceprovider->setOrderId($id);
  731. $groupserviceprovider->setcommand('groupservicemodifyauthorizationlist');
  732. $groupserviceprovider->setId($this->getDao("GroupServiceProviderDao")->save($groupserviceprovider));
  733. $xmlGenerated = $this->generateXml('modify','GroupServiceModifyAuthorizationListRequest',$groupserviceprovider,$order);
  734. $stepCurrentOrder = $order->getCurrentStep();
  735. $order->setCurrentStep($stepCurrentOrder+1);
  736. $stepCompleteStep = $order->getCompleteStep();
  737. $order->setCompleteStep($stepCompleteStep+1);
  738. $order->setId( $this->getDao("OrderDao")->save($order));
  739. return $this->next($order);
  740. }
  741. public function groupserviceassignlistAction(){
  742. $id = $this->params()->fromRoute('id');
  743. $order = $this->getDao("OrderDao")->get($id);
  744. $group = $this->getDao("GroupDao")->get($order->getGroupId());
  745. $ProviderId = $group->getProviderId();
  746. $GroupId = $order->getGroupId();
  747. $groupserviceprovider = new GroupServiceProvider();
  748. $ProviderId = $group->getProviderId();
  749. $GroupId = $order->getGroupId();
  750. $provider = $this->getDao("ProviderDao")->get($ProviderId);
  751. $groupserviceprovider->setGroupId($GroupId);
  752. $groupserviceprovider->setServiceproviderId($ProviderId);
  753. $groupserviceprovider->setOrderId($id);
  754. $groupserviceprovider->setname($provider->getName());
  755. $groupserviceprovider->setcommand('GroupServiceAssignList');
  756. $groupserviceprovider->setId($this->getDao("GroupServiceProviderDao")->save($groupserviceprovider));
  757. $xmlGenerated = $this->generateXml('list','GroupServiceAssignListRequest',$groupserviceprovider,$order);
  758. $stepCurrentOrder = $order->getCurrentStep();
  759. $order->setCurrentStep($stepCurrentOrder+1);
  760. $stepCompleteStep = $order->getCompleteStep();
  761. $order->setCompleteStep($stepCompleteStep+1);
  762. $order->setId( $this->getDao("OrderDao")->save($order));
  763. return $this->next($order);
  764. }
  765. public function groupcallprocessingmodifypolicyAction(){
  766. $id = $this->params()->fromRoute('id');
  767. $order = $this->getDao("OrderDao")->get($id);
  768. $group = $this->getDao("GroupDao")->get($order->getGroupId());
  769. $ProviderId = $group->getProviderId();
  770. $GroupId = $order->getGroupId();
  771. $groupserviceprovider = new GroupServiceProvider();
  772. $ProviderId = $group->getProviderId();
  773. $GroupId = $order->getGroupId();
  774. $UserId = $order->getUserId();
  775. $groupserviceprovider->setGroupId($GroupId);
  776. $groupserviceprovider->setUserId($UserId);
  777. $groupserviceprovider->setServiceproviderId($ProviderId);
  778. $groupserviceprovider->setcommand('groupcallprocessingmodifypolicyrequest');
  779. $groupserviceprovider->setOrderId($id);
  780. $groupserviceprovider->setId($this->getDao("GroupServiceProviderDao")->save($groupserviceprovider));
  781. $xmlGenerated = $this->generateXml('modify','GroupCallProcessingModifyPolicyRequest15sp2',$groupserviceprovider,$order);
  782. $stepCurrentOrder = $order->getCurrentStep();
  783. $order->setCurrentStep($stepCurrentOrder+1);
  784. $stepCompleteStep = $order->getCompleteStep();
  785. $order->setCompleteStep($stepCompleteStep+1);
  786. $order->setId( $this->getDao("OrderDao")->save($order));
  787. return $this->next($order);
  788. }
  789. public function userauthenticationmodifyAction(){
  790. $id = $this->params()->fromRoute('id');
  791. $order = $this->getDao("OrderDao")->get($id);
  792. $group = $this->getDao("GroupDao")->get($order->getGroupId());
  793. $ProviderId = $group->getProviderId();
  794. $GroupId = $order->getGroupId();
  795. $groupserviceprovider = new GroupServiceProvider();
  796. $ProviderId = $group->getProviderId();
  797. $GroupId = $order->getGroupId();
  798. $UserId = $order->getUserId();
  799. $userFetch = $this->getDao("UserDao")->fetchByGroupId($GroupId);
  800. foreach ($userFetch as $user) {
  801. $password = $user->password;
  802. }
  803. $groupserviceprovider->setUserId($UserId);
  804. $groupserviceprovider->setcommand('UserAuthenticationModifyRequest');
  805. $groupserviceprovider->setOrderId($id);
  806. $groupserviceprovider->setclave($password);
  807. $groupserviceprovider->setId($this->getDao("GroupServiceProviderDao")->save($groupserviceprovider));
  808. $xmlGenerated = $this->generateXml('modify','UserAuthenticationModifyRequest',$groupserviceprovider,$order);
  809. $stepCurrentOrder = $order->getCurrentStep();
  810. $order->setCurrentStep($stepCurrentOrder+1);
  811. $stepCompleteStep = $order->getCompleteStep();
  812. $order->setCompleteStep($stepCompleteStep+1);
  813. $order->setId( $this->getDao("OrderDao")->save($order));
  814. return $this->next($order);
  815. }
  816. public function groupdnactivatelistAction(){
  817. $id = $this->params()->fromRoute('id');
  818. $order = $this->getDao("OrderDao")->get($id);
  819. $group = $this->getDao("GroupDao")->get($order->getGroupId());
  820. $ProviderId = $group->getProviderId();
  821. $GroupId = $order->getGroupId();
  822. $groupserviceprovider = new GroupServiceProvider();
  823. $ProviderId = $group->getProviderId();
  824. $GroupId = $order->getGroupId();
  825. $groupserviceprovider->setGroupId($GroupId);
  826. $groupserviceprovider->setServiceproviderId($ProviderId);
  827. $groupserviceprovider->setOrderId($id);
  828. $groupserviceprovider->setcommand('GroupDnActivateListRequest');
  829. $groupserviceprovider->setId($this->getDao("GroupServiceProviderDao")->save($groupserviceprovider));
  830. $xmlGenerated = $this->generateXml('list','GroupDnActivateListRequest',$groupserviceprovider,$order);
  831. $stepCurrentOrder = $order->getCurrentStep();
  832. $order->setCurrentStep($stepCurrentOrder+1);
  833. $stepCompleteStep = $order->getCompleteStep();
  834. $order->setCompleteStep($stepCompleteStep+1);
  835. $order->setId( $this->getDao("OrderDao")->save($order));
  836. return $this->next($order);
  837. }
  838. public function ServiceProviderServiceModifyAuthorizationListAction(){
  839. $id = $this->params()->fromRoute('id');
  840. $order = $this->getDao("OrderDao")->get($id);
  841. $group = $this->getDao("GroupDao")->get($order->getGroupId());
  842. $ProviderId = $group->getProviderId();
  843. $GroupId = $order->getGroupId();
  844. $groupserviceprovider = new GroupServiceProvider();
  845. $ProviderId = $group->getProviderId();
  846. $provider = $this->getDao("ProviderDao")->get($ProviderId);
  847. $GroupId = $order->getGroupId();
  848. $UserId = $order->getUserId();
  849. $groupserviceprovider->setGroupId($GroupId);
  850. $groupserviceprovider->setServiceproviderId($ProviderId);
  851. $groupserviceprovider->setOrderId($id);
  852. $groupserviceprovider->setUserId($UserId);
  853. $groupserviceprovider->setname($provider->getName());
  854. $groupserviceprovider->setcommand('ServiceProviderServiceModifyAuthorizationListRequest');
  855. $groupserviceprovider->setId($this->getDao("GroupServiceProviderDao")->save($groupserviceprovider));
  856. $xmlGenerated = $this->generateXml('modify','ServiceProviderServiceModifyAuthorizationListRequest',$groupserviceprovider,$order);
  857. $stepCurrentOrder = $order->getCurrentStep();
  858. $order->setCurrentStep($stepCurrentOrder+1);
  859. $stepCompleteStep = $order->getCompleteStep();
  860. $order->setCompleteStep($stepCompleteStep+1);
  861. $order->setId( $this->getDao("OrderDao")->save($order));
  862. return $this->next($order);
  863. }
  864. public function groupseriescompletionaddinstanceAction(){
  865. $id = $this->params()->fromRoute('id');
  866. $order = $this->getDao("OrderDao")->get($id);
  867. $group = $this->getDao("GroupDao")->get($order->getGroupId());
  868. $ProviderId = $group->getProviderId();
  869. $GroupId = $order->getGroupId();
  870. $groupserviceprovider = new GroupServiceProvider();
  871. $ProviderId = $group->getProviderId();
  872. $GroupId = $order->getGroupId();
  873. $UserId = $order->getUserId();
  874. $groupserviceprovider->setGroupId($GroupId);
  875. $groupserviceprovider->setServiceproviderId($ProviderId);
  876. $groupserviceprovider->setOrderId($id);
  877. $groupserviceprovider->setUserId($UserId);
  878. $groupserviceprovider->setname($group->getName());
  879. $groupserviceprovider->setcommand('GroupSeriesCompletionAddInstanceRequest');
  880. $groupserviceprovider->setId($this->getDao("GroupServiceProviderDao")->save($groupserviceprovider));
  881. $xmlGenerated = $this->generateXml('add','GroupSeriesCompletionAddInstanceRequest',$groupserviceprovider,$order);
  882. $stepCurrentOrder = $order->getCurrentStep();
  883. $order->setCurrentStep($stepCurrentOrder+1);
  884. $stepCompleteStep = $order->getCompleteStep();
  885. $order->setCompleteStep($stepCompleteStep+1);
  886. $order->setId( $this->getDao("OrderDao")->save($order));
  887. return $this->next($order);
  888. }
  889. private function next($order){
  890. $action = $_SESSION['activities'][$order->getCurrentStep()];
  891. if($action){
  892. $toRoute = array(
  893. 'action' => $action,
  894. 'id' => $order->getId(),
  895. );
  896. } else {
  897. $toRoute = array(
  898. 'action' => 'view',
  899. 'id' => $order->getId(),
  900. );
  901. }
  902. return $this->redirect()->toRoute('order',$toRoute);
  903. }
  904. public function nextAction(){
  905. $id = $this->params()->fromRoute('id');
  906. $order = $this->getDao("OrderDao")->get($id);
  907. $order->setCurrentStep((int)$order->getCurrentStep()+1);
  908. $this->getDao("OrderDao")->save($order);
  909. $action = $_SESSION['activities'][$order->getCurrentStep()];
  910. if($action){
  911. $toRoute = array(
  912. 'action' => $action,
  913. 'id' => $id,
  914. );
  915. } else {
  916. $toRoute = array(
  917. 'action' => 'view',
  918. 'id' => $id,
  919. );
  920. }
  921. return $this->redirect()->toRoute('order',$toRoute);
  922. }
  923. public function completeAction()
  924. {
  925. $id = $this->params()->fromRoute('id');
  926. $order = $this->getDao("OrderDao")->get($id);
  927. $group = $this->getDao("GroupDao")->get($order->getGroupId());
  928. $stepCurrentOrder = $order->getCurrentStep();
  929. $activities = $_SESSION['activities'][$stepCurrentOrder];
  930. }
  931. public function previousAction(){
  932. $id = $this->params()->fromRoute('id');
  933. $order = $this->getDao("OrderDao")->get($id);
  934. $order->setCurrentStep((int)$order->getCurrentStep()-1);
  935. $this->getDao("OrderDao")->save($order);
  936. $action = $_SESSION['activities'][$order->getCurrentStep()];
  937. if($action){
  938. $toRoute = array(
  939. 'action' => $action,
  940. 'id' => $id,
  941. );
  942. } else {
  943. $toRoute = array(
  944. 'action' => 'add',
  945. 'id' => $id,
  946. );
  947. }
  948. return $this->redirect()->toRoute('order',$toRoute);
  949. }
  950. public function informacionClienteNumero($step)
  951. {
  952. $form = new CustomerNumberForm();
  953. $error = "";
  954. $numbersInStock = $this->getDao("NumberStockDao")->fetchAvailable();
  955. $numbersAvailableArray = array();
  956. foreach ($numbersInStock as $numberStock) {
  957. $numbersAvailableArray[$numberStock->number] = $numberStock->number;
  958. }
  959. $form->get('numberStock')->setAttribute('options',$numbersAvailableArray);
  960. return new ViewModel(array(
  961. 'form' => $form,
  962. 'error' => $error,
  963. 'step' => $step,
  964. ));
  965. }
  966. private function provisioning($step) {
  967. $orderDao = $this->getDao("OrderDao");
  968. $order = $orderDao->get($_SESSION['order_id']);
  969. $platform = $this->getDao("PreferenceDao","Preference")->getByName($order->platform);
  970. return new ViewModel(array(
  971. 'step' => $step,
  972. 'host' => $platform->value,
  973. 'orderId'=> $_SESSION['order_id'],
  974. ));
  975. }
  976. public function merge($body, $vars)
  977. {
  978. if (count($vars) == 0) {
  979. return $body;
  980. }
  981. $patterns = array();
  982. $replacements = array();
  983. foreach ($vars as $key => $value) {
  984. $patterns[] = '/' . $key . '/i';
  985. $replacements[] = $this->cleanUp($value);
  986. }
  987. if (null === ($body = preg_replace($patterns, $replacements, $body))) {
  988. throw new \Exception('The message could not be merged');
  989. }
  990. return $body;
  991. }
  992. public function cleanUp($var)
  993. {
  994. $workingCopy = $var;
  995. //Additional clean ups should be implemented here
  996. //utf8 encoding
  997. //replacing HTML entities via html_entity_decode/encode as
  998. //the message should go with tildes inside it
  999. $workingCopy = trim($var);
  1000. return $workingCopy;
  1001. }
  1002. /*public function deleteAction()
  1003. {
  1004. $model = new JsonModel();
  1005. try {
  1006. $id = $this->params()->fromRoute('id');
  1007. $this->getDao()->delete($id);
  1008. $model->setVariable('status', "success");
  1009. $model->setVariable('payload', $id);
  1010. } catch (\Exception $ex) {
  1011. $model->setVariable('status', 'error');
  1012. $model->setVariable('payload', $ex->getMessage());
  1013. }
  1014. return $model;
  1015. }*/
  1016. public function getDao($dao = "OrderDao",$namespace = "Provisioning")
  1017. {
  1018. //$serviceDao = lcfirst($dao);
  1019. //if (!$this->$serviceDao) {
  1020. $sm = $this->getServiceLocator();
  1021. $this->serviceDao = $sm->get($namespace.'\Dao\\'.$dao);
  1022. //}
  1023. return $this->serviceDao;
  1024. }
  1025. private function generateOneXml($orderId, $priority, $class = null) {
  1026. $relationship = array(
  1027. "Device" => array(
  1028. "relationField" => "groupId",
  1029. "daoFunction" => "getBy",
  1030. "parentClass" => "Group",
  1031. ),

Large files files are truncated, but you can click here to view the full file