PageRenderTime 37ms CodeModel.GetById 11ms RepoModel.GetById 0ms app.codeStats 0ms

/app/Http/Controllers/Customer/RegisterCompanyController.php

https://gitlab.com/pedramkousari/soratjalase
PHP | 452 lines | 293 code | 104 blank | 55 comment | 19 complexity | f663cc63433bc5f37a23432a3b4c7c49 MD5 | raw file
  1. <?php namespace App\Http\Controllers\Customer;
  2. use App\Http\Controllers\IndexController;
  3. use App\Http\Requests;
  4. use App\Models\Activity;
  5. use App\Models\BoardOfDirector;
  6. use App\Models\Branch;
  7. use App\Models\Company;
  8. use App\Models\CompanyName;
  9. use App\Models\Document;
  10. use App\Models\FrmRegisterCompanyLtd;
  11. use App\Models\User;
  12. use App\Models\UserGroup;
  13. use App\Models\UserPartner;
  14. use App\Models\Users;
  15. use Auth;
  16. use Faker\Factory;
  17. use FarsiLib;
  18. use Illuminate\Http\Request;
  19. use Input;
  20. use Session;
  21. class RegisterCompanyController extends IndexController
  22. {
  23. protected $fake;
  24. /**
  25. * RegisterCompanyController constructor.
  26. */
  27. public function __construct()
  28. {
  29. $this->fake=Factory::create();
  30. // parent::_construct();
  31. }
  32. public function stepLoad1(){
  33. $documentId = Session::has('documentId') ? Session::get('documentId') : 0;
  34. $companyId = Session::has('companyId') ? Session::get('companyId') : 0;
  35. $company = Company::first($companyId);
  36. $type = 'با مسئولیت محدود';
  37. return response()
  38. ->json([
  39. '.form-step1',
  40. view('customer.frm.inc.register_company_step1',compact('type', 'step_cnt', 'documentId', 'companyId' , 'company'))->render()
  41. ]);
  42. }
  43. public function stepLoad2(){
  44. $userPartner = Users::getResult()
  45. ->join('xxuser_partner as up','up.xuser_id','=','u.xuser_id')
  46. ->where('up.xuser_partner_type','xxuser')
  47. ->get();
  48. $companyPartner = Company::getResult()
  49. ->join('xxuser_partner as up','up.xuser_id','=','c.xcompanyid')
  50. ->where('up.xuser_partner_type','xxcompany')
  51. ->get();
  52. $userPartner = count($userPartner) ? $userPartner : [1,1];
  53. $companyPartner = count($companyPartner) ? $companyPartner : [1];
  54. return response()
  55. ->json([
  56. '.form-step2',
  57. view('customer.frm.inc.register_company_step2',compact('userPartner','companyPartner'))->render()
  58. ]);
  59. }
  60. public function stepLoad3(){
  61. $userPartner = Users::getResult()
  62. ->join('xxuser_partner as up','up.xuser_id','=','u.xuser_id')
  63. ->where('up.xuser_partner_type','xxuser')
  64. ->where('xcompanyid',Session::get('companyId'))
  65. ->get();
  66. $addressList = [];
  67. foreach ($userPartner as $key => $value) {
  68. $addressList[$value['xid']] = $value['xuser_address'];
  69. }
  70. $json_address = json_encode($addressList);
  71. return response()
  72. ->json([
  73. '.form-step3',
  74. view('customer.frm.inc.register_company_step3',compact('userPartner','json_address'))->render()
  75. ]);
  76. }
  77. public function stepLoad4(){
  78. $userPartner = Users::getResult()
  79. ->join('xxuser_partner as up','up.xuser_id','=','u.xuser_id')
  80. ->where('up.xuser_partner_type','xxuser')
  81. ->where('xcompanyid',Session::get('companyId'))
  82. ->lists('name', 'xid');
  83. $boardType = BoardOfDirector::fetchEnum('xboard_of_director_type');
  84. $userBoard = BoardOfDirector::getResult()
  85. ->where('xcompanyid',Session::get('companyId'))
  86. ->get();
  87. $userBoard = $userBoard?$userBoard:[1];
  88. return response()
  89. ->json([
  90. '.form-step4',
  91. view('customer.frm.inc.register_company_step4',compact('boardType','userPartner','userBoard'))->render()
  92. ]);
  93. }
  94. public function stepLoad5(){
  95. $companyName = CompanyName::getResult()
  96. ->where('xcompanyid',Session::get('companyId'))
  97. ->get();
  98. $companyName = $companyName?$companyName:[1];
  99. return response()
  100. ->json([
  101. '.form-step5',
  102. view('customer.frm.inc.register_company_step5',compact('companyName'))->render()
  103. ]);
  104. }
  105. public function stepLoad6(){
  106. $branch = Branch::getResult()
  107. ->where('xcompanyid',Session::get('companyId'))
  108. ->get();
  109. $branch = $branch?$branch:[1];
  110. return response()
  111. ->json([
  112. '.form-step6',
  113. view('customer.frm.inc.register_company_step6',compact('branch'))->render()
  114. ]);
  115. }
  116. public function stepLoad7(){
  117. $activityList = Activity::getResult()->lists('xactivity','xid');
  118. $userBoard = BoardOfDirector::getResult()
  119. ->where('xcompanyid',Session::get('companyId'))
  120. ->lists('name','u.xuser_id');
  121. $userList = $userBoard?$userBoard:[1];
  122. return response()
  123. ->json([
  124. '.form-step7',
  125. view('customer.frm.inc.register_company_step7',compact('activityList','userList'))->render()
  126. ]);
  127. }
  128. public function step1()
  129. {
  130. $documentId = @Input::get('documentId');
  131. $companyId = @Input::get('companyId');
  132. $company = Input::get('company');
  133. $company["xcompany_money"] = str_replace(',','',$company["xcompany_money"]);
  134. $company["xcompany_type"] = 'مسئولیت محدود';
  135. //sample
  136. // $documentId = $documentId?$documentId:0;
  137. // $companyId = $companyId?$companyId:0;
  138. //
  139. //
  140. //
  141. // $company = [
  142. // "xcompany_money" => $this->fake->numberBetween(100000,99999999999),
  143. // "xcompany_address" => 'asdsada',
  144. // "xcompany_postal_code" => $this->fake->postcode,
  145. // "xcompany_type" => 'مسئولیت محدود',
  146. // ];
  147. //
  148. // dump($company);
  149. $companyId = Company::store($company,$companyId);
  150. Session::put('companyId', $companyId);
  151. Session::save();
  152. Session::put('documentId', $companyId);
  153. Session::save();
  154. FrmRegisterCompanyLtd::store(['xcompanyid'=>$companyId],$documentId);
  155. return $this->stepLoad2();
  156. }
  157. public function step2()
  158. {
  159. $companyPartner = Input::get('companyPartner',[]);
  160. $userPartner = Input::get('userPartner',[]);
  161. foreach($userPartner as $key => $user){
  162. if(!@$user['xuser_partner_stock']) continue;
  163. $partner['xuser_partner_stock'] = $user['xuser_partner_stock'];
  164. unset($user['xuser_partner_stock']);
  165. $partner['xuser_partner_money'] = str_replace(',','',$user['xuser_partner_money']);
  166. unset($user['xuser_partner_money']);
  167. $xuser_id = @$user['xuser_id'] ? $user['xuser_id'] : 0;
  168. unset($user['xuser_id']);
  169. $xuser_partnerid = @$user['xuser_partnerid'] ? $user['xuser_partnerid'] : 0;
  170. unset($user['xuser_partnerid']);
  171. $user['xuser_birth_date'] = $user['xuser_birth_date']? FarsiLib::j2gDate($user['xuser_birth_date']) : '0000-00-00 00:00:00';
  172. $userId = Users::store($user , $xuser_id);
  173. if($userId){
  174. $partner['xuser_id'] = $userId;
  175. $partner['xuser_partner_type'] = 'xxuser';
  176. if (!Session::has('companyId'))
  177. {
  178. return response()
  179. ->json([
  180. t('msg.companyId not set' , 422)
  181. ]);
  182. }
  183. $partner['xcompanyid'] = Session::get('companyId');
  184. UserPartner::store($partner , $xuser_partnerid);
  185. }
  186. }
  187. foreach($companyPartner as $key => $company){
  188. if(!$company['xuser_partner_stock']) continue;
  189. $partner['xuser_partner_stock'] = $company['xuser_partner_stock'];
  190. unset($company['xuser_partner_stock']);
  191. $partner['xuser_partner_money'] = str_replace(',','',$company['xuser_partner_money']);
  192. unset($company['xuser_partner_money']);
  193. $xcompanyid = @$company['xcompanyid'] ? $company['xcompanyid'] : 0;
  194. unset($company['xcompanyid']);
  195. $xuser_partnerid = @$company['xuser_partnerid'] ? $company['xuser_partnerid'] : 0;
  196. unset($company['xuser_partnerid']);
  197. $companyId = Company::store($company , $xcompanyid);
  198. if($companyId){
  199. $partner['xuser_id'] = $companyId;
  200. $partner['xuser_partner_type'] = 'xxcompany';
  201. if (!Session::has('companyId'))
  202. {
  203. return response()
  204. ->json([
  205. t('msg.companyId not set' , 422)
  206. ]);
  207. }
  208. $partner['xcompanyid'] = Session::get('companyId');
  209. UserPartner::store($partner , $xuser_partnerid);
  210. }
  211. }
  212. // foreach($companyPartner as $key => $company){
  213. // if(!$company['xuser_partner_stock']) continue;
  214. //
  215. // $partner['xuser_partner_stock'] = $company['xuser_partner_stock'];
  216. // unset($company['xuser_partner_stock']);
  217. // $partner['xuser_partner_money'] = str_replace(',','',$company['xuser_partner_money']);
  218. // unset($company['xuser_partner_money']);
  219. //
  220. // $xcompanyid = @$user['xcompanyid'] ? $user['xcompanyid'] : 0;
  221. // unset($user['xcompanyid']);
  222. // $xuser_partnerid = @$user['xuser_partnerid'] ? $user['xuser_partnerid'] : 0;
  223. // unset($user['xuser_partnerid']);
  224. //
  225. // $companyId = Company::store($company , $xcompanyid);
  226. //
  227. // if($companyPartnerId){
  228. // $partner['xuser_id'] = $companyPartnerId;
  229. // $partner['xuser_partner_type'] = 'xxcompany';
  230. // if (!Session::has('companyId'))
  231. // {
  232. // return response()
  233. // ->json([
  234. // t('msg.companyId not set' , 422)
  235. // ]);
  236. // }
  237. //
  238. // $partner['xcompanyid'] = Session::get('companyId');
  239. // UserPartner::store($partner , $xuser_partnerid);
  240. // }
  241. // }
  242. return $this->stepLoad3();
  243. }
  244. public function step3()
  245. {
  246. $frm = Input::get('frm');
  247. $xuserid = $frm['xuser_id'];
  248. unset($frm['xuser_id']);
  249. if($xuserid){
  250. Users::store($frm,$xuserid);
  251. }
  252. return $this->stepLoad4();
  253. }
  254. public function step4()
  255. {
  256. $userList = Input::get('user');
  257. $userBoardList = Input::get('userBoard');
  258. $companyId = Session::get('companyId');
  259. if($companyId){
  260. BoardOfDirector::where('xcompanyId', '=', $companyId)->delete();
  261. }
  262. foreach($userBoardList as $key=>$userBoard){
  263. // $boardId = $userBoard['xboard_of_directorid'];
  264. unset($userBoard['xboard_of_directorid']);
  265. if(@$userBoard['xboard_of_director_non_partner']){
  266. $xuserid = @$userList[$key]['xuser_id'];
  267. unset($userList[$key]['xuser_id']);
  268. $userBoard['xuser_id'] = Users::store($userList[$key]);
  269. }
  270. $userBoard['xcompanyid'] = $companyId;
  271. BoardOfDirector::store($userBoard);
  272. }
  273. return $this->stepLoad5();
  274. }
  275. public function step5()
  276. {
  277. $companyNameList = Input::get('companyName');
  278. $companyId = Session::get('companyId');
  279. // if($companyId){
  280. // BoardOfDirector::where('xcompanyId', '=', $companyId)->delete();
  281. // }
  282. $cnt = 0;
  283. foreach($companyNameList as $key => $companyName){
  284. if($cnt == 0) $companyName['xcompany_name_main'] = 1;
  285. $companyNameId = $companyName['xcompany_nameid'];
  286. unset($companyName['xcompany_nameid']);
  287. $companyName['xcompanyid'] = $companyId;
  288. CompanyName::store($companyName , $companyNameId);
  289. $cnt++;
  290. }
  291. return $this->stepLoad6();
  292. }
  293. public function step6()
  294. {
  295. $branchList = Input::get('branch');
  296. $user = Input::get('user');
  297. $companyId = Session::get('companyId');
  298. // if($companyId){
  299. // BoardOfDirector::where('xcompanyId', '=', $companyId)->delete();
  300. // }
  301. foreach($branchList as $key => $branch){
  302. if($branch['xbranch_postal_code']=='' || $branch['xbranch_address']=='')
  303. continue;
  304. $branchId = $branch['xbranchid'];
  305. unset($branch['xbranch_nameid']);
  306. $xuserid = @$user[$key]['xuser_id'];
  307. unset($user[$key]['xuser_id']);
  308. $user[$key]['xuser_birth_date'] = $user[$key]['xuser_birth_date']? FarsiLib::j2gDate($user[$key]['xuser_birth_date']) : '0000-00-00 00:00:00';
  309. $branch['xuser_id'] = Users::store($user[$key] , $xuserid);
  310. $branch['xcompanyid'] = $companyId;
  311. Branch::store($branch , $branchId);
  312. }
  313. return $this->stepLoad7();
  314. }
  315. public function finish()
  316. {
  317. $company = Input::get('frmCompany');
  318. $register = Input::get('frmRegister');
  319. $companyId = Session::get('companyId');
  320. $documentId = Session::get('documentId');
  321. if($companyId){
  322. Company::store($company,$companyId);
  323. }
  324. if($documentId){
  325. $register['xfrm_register_company_ltd_finished'] = 1;
  326. FrmRegisterCompanyLtd::store($register,$documentId);
  327. $document['xdocument_code'] =
  328. Document::store($document , $documentId);
  329. }else{
  330. }
  331. }
  332. public function deleteUserPartner($id){
  333. if(@$id)
  334. UserPartner::remove(@$id);
  335. }
  336. public function deleteUserBoard($id){
  337. if(@$id)
  338. BoardOfDirector::remove(@$id);
  339. }
  340. public function deleteCompanyName($id){
  341. if(@$id)
  342. CompanyName::remove(@$id);
  343. }
  344. public function deleteBranch($id){
  345. if(@$id)
  346. Branch::remove(@$id);
  347. }
  348. }