Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

CalendarController.php 8.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266
  1. <?php
  2. namespace App\Http\Controllers\CustomerService;
  3. use Illuminate\Http\Request;
  4. use App\Http\Controllers\Controller;
  5. use Illuminate\Support\Facades\Auth;
  6. use Carbon\Carbon;
  7. use Validator;
  8. use PDF;
  9. use App\Staff;
  10. use App\Model\StaffDetail;
  11. use App\Model\Form;
  12. use App\Model\Subscriber;
  13. use App\Model\WorkOrder;
  14. use App\Model\PackageDetail;
  15. use App\Model\Company;
  16. class CalendarController extends Controller
  17. {
  18. public function index()
  19. {
  20. $id = Auth::guard('cs')->id();
  21. $user = Staff::with('StaffDetail')->find($id);
  22. $pp = count(WorkOrder::where('status','Pending Non Prelaid')->get());
  23. $sp = count(WorkOrder::where('status','Success Non Prelaid')->get());
  24. $rs = count(WorkOrder::where('status','Reschedule')->get());
  25. $ss = count(WorkOrder::where('status','Suspend')->get());
  26. $cm = count(WorkOrder::where('status','Completed')->get());
  27. $company = Company::where('team','CBB')->get();
  28. $today = Carbon::today();
  29. return view('customer-service.view_calendar', compact('user','pp','sp','rs','ss','cm', 'company','today'));
  30. }
  31. public function getAllCalendar(Request $request){
  32. $event = array(); $color = '';
  33. $cuw = $request->wk;
  34. if($request->customer == ''){
  35. if($request->status == '' && $request->company == ''){
  36. $wo = WorkOrder::all();
  37. if(!empty($wo)){
  38. foreach ($wo as $key => $w) {
  39. if($w->wo == $cuw){
  40. $color = '#5C2983';
  41. }else if($w->wo != $cuw) {
  42. if($w->status == "Completed") {
  43. $color = '#00C853';
  44. }else if($w->status == "Suspend") {
  45. $color = '#DE006E';
  46. }else if($w->status == "Reschedule") {
  47. $color = '#FF6D00';
  48. }else if($w->status == "Success Non Prelaid"){
  49. $color = '#2962FF';
  50. }else if($w->status == "Pending Non Prelaid"){
  51. $color = '#FFD600';
  52. }else if($w->status == "Pending Contractor") {
  53. $color = '#6D4C41';
  54. }else if($w->status == "Pending Installer"){
  55. $color = '#546E7A';
  56. }
  57. }
  58. array_push($event, array(
  59. 'id' => $w->wo,
  60. 'title' => $w->wo,
  61. 'start' => Carbon::createFromTimestamp(strtotime($w->dateTimeStart))->toRfc2822String(),
  62. 'end' => Carbon::createFromTimestamp(strtotime($w->dateTimeEnd))->toRfc2822String(),
  63. 'url' => url('/customer-service/work-order/generate-pdf/'.$w->wo),
  64. 'color' => $color,
  65. 'allDay' => false
  66. ));
  67. }
  68. }
  69. }else if($request->status != '' && $request->company == ''){
  70. $wo = WorkOrder::where('status',$request->status)->get();
  71. if(!empty($wo)){
  72. foreach ($wo as $key => $w) {
  73. if($w->wo == $cuw){
  74. $color = '#5C2983';
  75. }else if($w->wo != $cuw) {
  76. if($w->status == "Completed") {
  77. $color = '#00C853';
  78. }else if($w->status == "Suspend") {
  79. $color = '#DE006E';
  80. }else if($w->status == "Reschedule") {
  81. $color = '#FF6D00';
  82. }else if($w->status == "Success Non Prelaid"){
  83. $color = '#2962FF';
  84. }else if($w->status == "Pending Non Prelaid"){
  85. $color = '#FFD600';
  86. }else if($w->status == "Pending Contractor") {
  87. $color = '#6D4C41';
  88. }else if($w->status == "Pending Installer"){
  89. $color = '#546E7A';
  90. }
  91. }
  92. array_push($event, array(
  93. 'id' => $w->wo,
  94. 'title' => $w->wo,
  95. 'start' => Carbon::createFromTimestamp(strtotime($w->dateTimeStart))->toRfc2822String(),
  96. 'end' => Carbon::createFromTimestamp(strtotime($w->dateTimeEnd))->toRfc2822String(),
  97. 'url' => url('/customer-service/work-order/generate-pdf/'.$w->wo),
  98. 'color' => $color,
  99. 'allDay' => false
  100. ));
  101. }
  102. }
  103. }else if($request->status == '' && $request->company != ''){
  104. $wo = WorkOrder::where('contractor_id', $request->company)->get();
  105. $cuw = '';
  106. if($request->has('wk')){
  107. $cuw = $request->wk;
  108. }
  109. if(!empty($wo)){
  110. foreach ($wo as $key => $w) {
  111. if($w->wo == $cuw){
  112. $color = '#5C2983';
  113. }else if($w->wo != $cuw) {
  114. if($w->status == "Completed") {
  115. $color = '#00C853';
  116. }else if($w->status == "Suspend") {
  117. $color = '#DE006E';
  118. }else if($w->status == "Reschedule") {
  119. $color = '#FF6D00';
  120. }else if($w->status == "Success Non Prelaid"){
  121. $color = '#2962FF';
  122. }else if($w->status == "Pending Non Prelaid"){
  123. $color = '#FFD600';
  124. }else if($w->status == "Pending Contractor") {
  125. $color = '#6D4C41';
  126. }else if($w->status == "Pending Installer"){
  127. $color = '#546E7A';
  128. }
  129. }
  130. array_push($event, array(
  131. 'id' => $w->wo,
  132. 'title' => $w->wo,
  133. 'start' => Carbon::createFromTimestamp(strtotime($w->dateTimeStart))->toRfc2822String(),
  134. 'end' => Carbon::createFromTimestamp(strtotime($w->dateTimeEnd))->toRfc2822String(),
  135. 'url' => url('/customer-service/work-order/generate-pdf/'.$w->wo),
  136. 'color' => $color,
  137. 'allDay' => false
  138. ));
  139. }
  140. }
  141. }else if($request->status != '' && $request->company != ''){
  142. $wo = WorkOrder::where('contractor_id', $request->company)->where('status',$request->status)->get();
  143. if(!empty($wo)){
  144. foreach ($wo as $key => $w) {
  145. if($w->wo == $cuw){
  146. $color = '#5C2983';
  147. }else if($w->wo != $cuw) {
  148. if($w->status == "Completed") {
  149. $color = '#00C853';
  150. }else if($w->status == "Suspend") {
  151. $color = '#DE006E';
  152. }else if($w->status == "Reschedule") {
  153. $color = '#FF6D00';
  154. }else if($w->status == "Success Non Prelaid"){
  155. $color = '#2962FF';
  156. }else if($w->status == "Pending Non Prelaid"){
  157. $color = '#FFD600';
  158. }else if($w->status == "Pending Contractor") {
  159. $color = '#6D4C41';
  160. }else if($w->status == "Pending Installer"){
  161. $color = '#546E7A';
  162. }
  163. }
  164. array_push($event, array(
  165. 'id' => $w->wo,
  166. 'title' => $w->wo,
  167. 'start' => Carbon::createFromTimestamp(strtotime($w->dateTimeStart))->toRfc2822String(),
  168. 'end' => Carbon::createFromTimestamp(strtotime($w->dateTimeEnd))->toRfc2822String(),
  169. 'url' => url('/customer-service/work-order/generate-pdf/'.$w->wo),
  170. 'color' => $color,
  171. 'allDay' => false
  172. ));
  173. }
  174. }
  175. }
  176. }else if($request->customer == 'New Customer'){
  177. $form = Form::with('Subscriber','WorkOrder','PackageDetail')->get();
  178. $url = '';
  179. if(!empty($form)){
  180. foreach($form as $f){
  181. if(empty($f->WorkOrder)){
  182. if($f->type_application == 'R' && !empty($f->Subscriber->subscriber_id)){
  183. $color = '#582483';
  184. $url = '/customer-service/residential/generate-pdf/'.$f->Subscriber->subscriber_id;
  185. }else if($f->type_application == 'B' && !empty($f->Subscriber->subscriber_id)){
  186. $color = '#E07027';
  187. $url = '/customer-service/business/generate-pdf/'.$f->Subscriber->subscriber_id;
  188. }
  189. if(!empty($f->PackageDetail)){
  190. array_push($event, array(
  191. 'id' => $f->Subscriber->subscriber_id,
  192. 'title' => $f->Subscriber->subscriber_id,
  193. 'start' => Carbon::createFromTimestamp(strtotime($f->PackageDetail->rfs))->toRfc2822String(),
  194. 'end' => '',
  195. 'url' => url($url),
  196. 'color' => $color,
  197. 'allDay' => false
  198. ));
  199. }
  200. }
  201. }
  202. }
  203. }
  204. return response()->json($event);
  205. }
  206. public function getCompanyColor(Request $request){
  207. $datass = array();
  208. $company = Company::where("_id",$request->company)->first();
  209. if(!empty($company)){
  210. array_push($datass, array(
  211. 'name' => '('.$company->name.')',
  212. 'bg' => $company->color,
  213. 'text' => '#fff'
  214. ));
  215. }else {
  216. array_push($datass, array(
  217. 'name' => '',
  218. 'bg' => '#fff',
  219. 'text' => '#5F5F5F'
  220. ));
  221. }
  222. return response()->json($datass);
  223. }
  224. }