ProjektyProNetMediaRequestApproveZam.php 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <?php
  2. Lib::loadClass('RouteBase');
  3. Lib::loadClass('TypespecialVariable');
  4. Lib::loadClass('Request');
  5. Lib::loadClass('Response');
  6. class Route_UrlAction_ProjektyProNetMediaRequestApproveZam extends RouteBase {// TODO: UrlActionBase @see Route_UrlAction
  7. public function handleAuth() {
  8. if (!User::logged()) {
  9. User::authByRequest();
  10. }
  11. }
  12. public function defaultAction() {
  13. SE_Layout::gora();
  14. if (1 != V::get('_print', '', $_GET)) SE_Layout::menu();
  15. try {
  16. $data = array();
  17. $data['id_order'] = V::get('ID_ORDER', 0, $_REQUEST, 'int');
  18. if (!$data['id_order']) throw new Exception("Error: Brak nr zamówienia!");
  19. $data = $this->setProps($data);
  20. $this->approveFormView($data);
  21. } catch (Exception $e) {
  22. SE_Layout::alert('danger', "Error #" . $e->getCode() . "|" . $e->getLine() . ": " . $e->getMessage());
  23. }
  24. SE_Layout::dol();
  25. }
  26. public function setProps($data) {
  27. $idOrder = V::get('id_order', 0, $data, 'int');
  28. if (!$idOrder) throw new Exception("Error: Brak nr zamówienia!");
  29. $data['id_order'] = $idOrder;
  30. $data['zamowienie_label'] = '';
  31. $data['orderRaw'] = DB::getPDO()->fetchAll("
  32. select r.ID
  33. , r.ORDER_LABEL
  34. , r.ID_PROJECT
  35. , sum(o.OFFER_PRICE_PER_UNIT * o.OFFER_QUANTITY) as SUM_NETTO
  36. , p.M_DIST_DESC
  37. from CRM_LISTA_ZASOBOW_ORDERS r
  38. join IN7_MK_BAZA_DYSTRYBUCJI p on(p.ID = r.ID_PROJECT)
  39. left join CRM_LISTA_ZASOBOW_OFFERS o on(
  40. o.ID_ORDER = r.ID
  41. and (o.A_STATUS is null or o.A_STATUS not in('DELETED'))
  42. )
  43. where (r.A_STATUS is null or r.A_STATUS not in('DELETED'))
  44. and r.ID = {$idOrder}
  45. ");
  46. if (empty($data['orderRaw'])) throw new Exception("Error: Brak danych dla zamówienia {$idOrder}!");
  47. $data['orderRaw'] = $data['orderRaw'][0];
  48. $data['zamowienie_label'] = $data['orderRaw']['ORDER_LABEL'];
  49. $data['zamowienie_suma'] = number_format($data['orderRaw']['SUM_NETTO'], 2, ',', ' ');
  50. $data['id_project'] = $data['orderRaw']['ID_PROJECT'];
  51. $data['project_label'] = $data['orderRaw']['M_DIST_DESC'];
  52. return $data;
  53. }
  54. public function approveFormView($data) {
  55. ?>
  56. <div class="container">
  57. <h1>Zamówienie: <?php echo $data['zamowienie_label']; ?>
  58. <br><small>Dotyczy projektu: <?php echo $data['project_label']; ?></small>
  59. </h1>
  60. <?php echo SE_Layout::alert('info', "Suma netto zamówienia: <b>{$data['zamowienie_suma']}</b>"); ?>
  61. <form style="text-align:center">
  62. <input type="hidden" name="_route" value="UrlAction_ProjektyProNetMediaRequestApproveZam">
  63. <button onClick="return approveOrder(this);" class="btn btn-lg btn-primary">Zatwierdzam</button>
  64. <button onClick="return rejectOrder(this);" class="btn btn-lg btn-danger" style="margin-left:30px">Nie zatwierdzam</button>
  65. </form>
  66. <hr>
  67. <?php Router::getRoute('UrlAction_ProjektyProNetMediaZamZlec')->previewOrder($data['id_order']); ?>
  68. </div>
  69. <script>
  70. function approveOrder(fld) {
  71. var frm = fld.form;
  72. frm['_task'].value='approveOrder';
  73. }
  74. function rejectOrder(fld) {
  75. var frm = fld.form;
  76. frm['_task'].value='rejectOrder';
  77. }
  78. </script>
  79. <?php
  80. DBG::_(true, true, 'data', $data, __CLASS__, __FUNCTION__, __LINE__);
  81. }
  82. }