ProjektyZestawienieSwMikRurKosztorys.php 5.8 KB

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