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

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <?php
  2. namespace App\Mail;
  3. use Illuminate\Bus\Queueable;
  4. use Illuminate\Mail\Mailable;
  5. use Illuminate\Queue\SerializesModels;
  6. use Illuminate\Contracts\Queue\ShouldQueue;
  7. use App\Model\WorkOrder;
  8. use App\Staff;
  9. use App\Model\StaffDetail;
  10. use App\Model\Product;
  11. use App\Model\Subscriber;
  12. use App\Model\Company;
  13. use App\Model\Form;
  14. use App\Model\PackageDetail;
  15. use Carbon\Carbon;
  16. use PDF;
  17. class AssignWorkOrder extends Mailable
  18. {
  19. use Queueable, SerializesModels;
  20. public $work_order,$staff,$customer,$company;
  21. /**
  22. * Create a new message instance.
  23. *
  24. * @return void
  25. */
  26. public function __construct(WorkOrder $work_order,StaffDetail $staff,Subscriber $customer,Company $company)
  27. {
  28. //
  29. $this->work_order = $work_order;
  30. $this->staff = $staff;
  31. $this->customer = $customer;
  32. $this->company = $company;
  33. }
  34. /**
  35. * Build the message.
  36. *
  37. * @return $this
  38. */
  39. public function build()
  40. {
  41. $wo = WorkOrder::where('wo',$this->work_order->wo)->first();
  42. $form = Form::with('PackageDetail','Subscriber')->where('_id',$wo->_id)->first();
  43. $product = Product::where('formT',$form->type_application)->where('speed',$form->PackageDetail->name)->first();
  44. if(empty($product)){
  45. if($form->PackageDetail->name == "30"){
  46. $product = '30Mbps';
  47. }else{
  48. $product = 'RMbps';
  49. }
  50. }else {
  51. $product = $product->package_name;
  52. }
  53. $created_by = Staff::with('StaffDetail')->where("_id",$wo->created_by)->first();
  54. if(empty($created_by)){
  55. $created_by = '';
  56. }
  57. $created_at = Carbon::parse($wo->created_at)->toDateTimeString();
  58. $address = '';
  59. if($form->type_application == 'R'){
  60. if($form->Subscriber->street != ''){
  61. $address = $form->Subscriber->unit_no. ' , '.$form->Subscriber->building_name. ' , '.$form->Subscriber->street. ' , '.$form->Subscriber->postcode. ' , '.$form->Subscriber->city. ' , '.$form->Subscriber->state;
  62. }else {
  63. $address = $form->Subscriber->unit_no. ' , '.$form->Subscriber->building_name. ' , '.$form->Subscriber->postcode. ' , '.$form->Subscriber->city. ' , '.$form->Subscriber->state;
  64. }
  65. }else if($form->type_application == 'B'){
  66. if($form->Subscriber->unit_no != ''){
  67. $address = $form->Subscriber->unit_no. ', '.$form->Subscriber->company_name. ', '.$form->Subscriber->street. ' , '.$form->Subscriber->postcode. ' , '.$form->Subscriber->city. ' , '.$form->Subscriber->state;
  68. }else {
  69. $address = $form->Subscriber->company_name. ', '.$form->Subscriber->street. ' , '.$form->Subscriber->postcode. ' , '.$form->Subscriber->city. ' , '.$form->Subscriber->state;
  70. }
  71. }
  72. $pdf = PDF::loadView('pdf.workorder-pdf',compact('wo','form','product','created_at','created_by','address'));
  73. $pdf->setPaper('A4', 'potrait');
  74. return $this->from('no-reply@citybroadband.my','no-reply@citybroadband.my')->subject('You Have New Work Order')->view('email.assign_wo')
  75. ->attachData($pdf->output(), $wo->wo.'.pdf', ['mime' => 'application/pdf',]);
  76. }
  77. }