ProjektyZestawienieSwMikRurKosztorys.php 6.1 KB

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