ProjektyZestawienieSwMikRurKosztorys.php 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. <?php
  2. Lib::loadClass('RouteBase');
  3. Lib::loadClass('ProjectKosztorysSchema');
  4. Lib::loadClass('ProjectKosztorysModel');
  5. Lib::loadClass('ProjectKosztorysCennik');
  6. Lib::loadClass('UI');
  7. Lib::loadClass('Response');
  8. Lib::loadClass('Route_ProjektyKosztorysBase');
  9. class Route_UrlAction_ProjektyZestawienieSwMikRurKosztorys extends Route_ProjektyKosztorysBase {
  10. public $_model = array();
  11. public function defaultAction() {
  12. // TODO: check if user is allowed to run this action
  13. UI::gora();
  14. if (1 != V::get('_print', '', $_GET)) UI::menu();
  15. try {
  16. $idProject = V::get('ID_PROJECT', 0, $_REQUEST, 'int');
  17. if (!$idProject) throw new Exception("Wrong param in 'ID_PROJECT' - expected integer!");
  18. $this->panel($idProject);
  19. if (1 != V::get('_print', '', $_GET)) {
  20. UI::startContainer(['style'=>'text-align:right']);
  21. UI::link('link', "<i class=\"glyphicon glyphicon-print\"></i> Drukuj", Request::getPathUri() . "index.php?_route=UrlAction_ProjektyZestawienieSwMikRurKosztorys&ID_PROJECT={$idProject}&_print=1");
  22. UI::endContainer();
  23. }
  24. $this->zestawienieSwMikRur($idProject);
  25. } catch (Exception $e) {
  26. UI::alert('danger', "Error #" . $e->getCode() . "|" . $e->getLine() . ": " . $e->getMessage());
  27. }
  28. UI::dol();
  29. }
  30. public function zestawienieSwMikRur($idProject) {
  31. $idCompany = 0;
  32. $admin = false;
  33. $companyAdmin = false;
  34. $model = $this->getModel($idProject);
  35. //DBG::table("subProjectList", $model->subProjectList, __CLASS__, __FUNCTION__, __LINE__);
  36. $schema = ProjectKosztorysSchema::getSchema();
  37. $projCost = $this->getProjectCostByCennik($idProject, $idCompany);
  38. //DBG::_(true, true, "projCost", $projCost, __CLASS__, __FUNCTION__, __LINE__);
  39. $viewLayerDataArgs = compact('idProject', 'idCompany', 'admin', 'companyAdmin', 'projCost');
  40. ?>
  41. <div class="container">
  42. <h1></h1>
  43. <table class="table">
  44. <tr>
  45. <th><?php echo $schema['nr']; ?></th>
  46. <th><?php echo $schema['title']; ?></th>
  47. <th><?php echo $schema['ownerName']; ?></th>
  48. <th style="text-align:right"><?php echo $schema['cost_total']; ?></th>
  49. </tr>
  50. <tr>
  51. <td><?php echo $model->idProject; ?></td>
  52. <td><?php echo $model->title; ?></td>
  53. <td><?php echo $model->ownerName; ?></td>
  54. <td style="text-align:right"><?php echo number_format($projCost['cost_total'], 2, ',', ' '); ?></td>
  55. </tr>
  56. </table>
  57. <?php $args = $viewLayerDataArgs;
  58. $idProject = $args['idProject'];
  59. $idCompany = V::get('idCompany', 0, $args);
  60. $admin = V::get('admin', false, $args);
  61. $companyAdmin = V::get('companyAdmin', false, $args);
  62. $projCosts = V::get('projCosts', array(), $args);
  63. $schema = ProjectKosztorysSchema::getSchema();
  64. $conf = $schema['config'];
  65. DBG::_('DBG', '>1', "conf", $conf, __CLASS__, __FUNCTION__, __LINE__);
  66. $summaryTypeCost = V::get('sub_costs', array(), $projCosts);
  67. $subProjCost = V::get('sub_proj', array(), $projCosts);
  68. $data = $this->getKosztorysData($idProject, $idOrder = 0, $admin);
  69. $dataSummary = $data['summary'];
  70. $dataSubProj = $data['by_project'];
  71. // $dataSubProj = array();
  72. // foreach ($data['by_project'] as $idSubProj => $subProjData) {
  73. // if ($idProject != $idSubProj) $dataSubProj[$idSubProj] = $subProjData;
  74. // }
  75. DBG::_('DBG', '>1', "data", $data, __CLASS__, __FUNCTION__, __LINE__);
  76. $defCennik = ProjectKosztorysCennik::getDefaultCennik($idCompany);
  77. $cennik = ProjectKosztorysCennik::getCennik($idProject, $idCompany);
  78. $workCennik = ProjectKosztorysCennik::getWorkCennik($idProject, $idCompany);
  79. $additionalCosts = array();
  80. $additionalCosts[] = array();
  81. $additionalCosts[] = array();
  82. $additionalCosts[] = array();
  83. $additionalSummaryTypeCost = array();
  84. ?>
  85. <style type="text/css">
  86. /* Print Styles */
  87. @media print {
  88. body { font-size:10px; }
  89. th, td { font-size:10px; }
  90. h1 { font-size:2em; }
  91. h2 { font-size:1.6em; }
  92. h3 { font-size:1.4em; }
  93. h4 { font-size:1.2em; }
  94. }
  95. </style>
  96. <?php if (!empty($dataSubProj)) : ?>
  97. <table class="table table-bordered">
  98. <thead>
  99. <tr>
  100. <th>ID PROJ.</th>
  101. <th>ID BUDYNKU</th>
  102. <th>WŁAŚCICIEL</th>
  103. <th>ADRES</th>
  104. <th>KONTAKT</th>
  105. <th>NR DZIAŁKI</th>
  106. <th>DŁ. ŚWIATŁOWODU</th>
  107. <th>DŁ. MIKRORURKI DO KLIENTA</th>
  108. </tr>
  109. </thead>
  110. <tbody>
  111. <?php foreach ($dataSubProj as $idSubProj => $subProjData) : ?>
  112. <?php
  113. // 22460 Światłowód
  114. // 22467 Mikrokanalizacja do klienta
  115. $sumSwiatlo = 0;
  116. if (!empty($subProjData[22460])) foreach ($subProjData[22460] as $swiatlo) {
  117. $sumSwiatlo += $swiatlo['ilosc'];
  118. }
  119. $sumMikroRur = 0;
  120. if (!empty($subProjData[22467])) foreach ($subProjData[22467] as $mikroRur) {
  121. $sumMikroRur += $mikroRur['ilosc'];
  122. }
  123. ?>
  124. <?php $budynki = $this->fetchBudynki($idSubProj); ?>
  125. <?php $proj = $this->fetchProject($idSubProj); ?>
  126. <?php if (empty($budynki)) : ?>
  127. <tr>
  128. <td><?php echo $idSubProj; ?></td>
  129. <td>brak</td>
  130. <td><?php echo $proj['IN_NAME']; ?></td>
  131. <td><?php echo $proj['M_DISTRIBUTOR_ADDRESS']; ?></td>
  132. <td><?php echo $proj['M_DISTRIBUTOR_CONTACT']; ?></td>
  133. <td><?php echo $proj['INWDZ__obreby_i_nr_dzialek']; ?></td>
  134. <td><?php echo $sumSwiatlo; ?></td>
  135. <td><?php echo $sumMikroRur; ?></td>
  136. </tr>
  137. <?php else : ?>
  138. <?php foreach ($budynki as $bud) : ?>
  139. <tr>
  140. <td><?php echo $idSubProj; ?></td>
  141. <td><?php echo $bud['ID']; ?></td>
  142. <td><?php echo $proj['IN_NAME']; ?></td>
  143. <td><?php echo $proj['M_DISTRIBUTOR_ADDRESS']; ?></td>
  144. <td><?php echo $proj['M_DISTRIBUTOR_CONTACT']; ?></td>
  145. <td><?php echo $proj['INWDZ__obreby_i_nr_dzialek']; ?></td>
  146. <td><?php echo $sumSwiatlo; ?></td>
  147. <td><?php echo $sumMikroRur; ?></td>
  148. </tr>
  149. <?php endforeach; ?>
  150. <?php endif; ?>
  151. <?php endforeach; ?>
  152. </tbody>
  153. </table>
  154. <?php endif; ?>
  155. <?php
  156. DBG::_('DBG', '>0', "schema", $schema, __CLASS__, __FUNCTION__, __LINE__);
  157. DBG::_('DBG', '>0', "projCosts", $projCosts, __CLASS__, __FUNCTION__, __LINE__);
  158. }
  159. public function fetchBudynki($idProject) {
  160. return DB::getPDO()->fetchAll("
  161. select b.*
  162. from BUILDINGS b
  163. where b.ID_PROJECT = '{$idProject}'
  164. ");
  165. }
  166. public function fetchProject($idProject) {
  167. $rows = DB::getPDO()->fetchAll("
  168. select p.*
  169. from IN7_MK_BAZA_DYSTRYBUCJI p
  170. where p.ID = '{$idProject}'
  171. ");
  172. return reset($rows);
  173. }
  174. }