ProjectKosztorysCennik.php 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. <?php
  2. Lib::loadClass('ProjectKosztorysSchema');
  3. class ProjectKosztorysCennik {
  4. /**
  5. * @returns [ $id_zasob => [ 'price' => $price, 'ID', 'id_zasob', 'id_company', 'id_project', 'unit', 'quantity' ] ]
  6. */
  7. public static function getCennik($idProject, $idCompany = 0) {
  8. $schema = ProjectKosztorysSchema::getSchema();
  9. $typeIdList = array_keys($schema['config']['type']);
  10. $sqlTypeIdList = implode(',', $typeIdList);
  11. $pdo = DB::getPDO();
  12. $sth = $pdo->prepare("
  13. select o.ID
  14. , o.CRM_LISTA_ZASOBOW_ID as id_zasob
  15. , o.COMPANIES_ID as id_company
  16. , o.ID_PROJECT as id_project
  17. , o.OFFER_PRICE_PER_RESOURCE_UNIT as price
  18. , o.RESOURCE_UNIT_TYPE as unit
  19. -- , o.OFFER_UNIT_TYPE as unit
  20. , o.REQUIRED_RESOURCE_UNITS as quantity
  21. from CRM_LISTA_ZASOBOW_OFFERS o
  22. where o.CRM_LISTA_ZASOBOW_ID in({$sqlTypeIdList})
  23. -- and o.A_STATUS not in ('DELETED')
  24. and o.ID_PROJECT = :id_project
  25. and o.COMPANIES_ID = :id_company
  26. and o.RESOURCE_UNIT_TYPE != 'ROBOCIZNA'
  27. ");
  28. $sth->bindValue(':id_project', $idProject, PDO::PARAM_INT);
  29. $sth->bindValue(':id_company', $idCompany, PDO::PARAM_INT);
  30. $sth->execute();
  31. $cennikRaw = $sth->fetchAll();
  32. $cennik = array();
  33. foreach ($cennikRaw as $itemRaw) {
  34. $item = $itemRaw;
  35. $item['price'] = round($item['price'], 2);
  36. $cennik[$itemRaw['id_zasob']] = $item;
  37. }
  38. return $cennik;
  39. }
  40. /**
  41. * @returns [ $id_zasob => [ 'price' => $price, 'ID', 'id_zasob', 'id_company', 'id_project', 'unit', 'quantity' ] ]
  42. */
  43. public static function getWorkCennik($idProject, $idCompany = 0) {
  44. $schema = ProjectKosztorysSchema::getSchema();
  45. $typeIdList = array_keys($schema['config']['type']);
  46. $sqlTypeIdList = implode(',', $typeIdList);
  47. $pdo = DB::getPDO();
  48. $sth = $pdo->prepare("
  49. select o.ID
  50. , o.CRM_LISTA_ZASOBOW_ID as id_zasob
  51. , o.COMPANIES_ID as id_company
  52. , o.ID_PROJECT as id_project
  53. , o.OFFER_PRICE_PER_RESOURCE_UNIT as price
  54. , o.RESOURCE_UNIT_TYPE as unit
  55. -- , o.OFFER_UNIT_TYPE as unit
  56. , o.REQUIRED_RESOURCE_UNITS as quantity
  57. from CRM_LISTA_ZASOBOW_OFFERS o
  58. where o.CRM_LISTA_ZASOBOW_ID in({$sqlTypeIdList})
  59. -- and o.A_STATUS not in ('DELETED')
  60. and o.ID_PROJECT = :id_project
  61. and o.COMPANIES_ID = :id_company
  62. and o.RESOURCE_UNIT_TYPE = 'ROBOCIZNA'
  63. ");
  64. $sth->bindValue(':id_project', $idProject, PDO::PARAM_INT);
  65. $sth->bindValue(':id_company', $idCompany, PDO::PARAM_INT);
  66. $sth->execute();
  67. $robociznaCennikRaw = $sth->fetchAll();
  68. $robociznaCennik = array();
  69. foreach ($robociznaCennikRaw as $itemRaw) {
  70. $item = $itemRaw;
  71. $item['price'] = round($item['price'], 2);
  72. $robociznaCennik[$itemRaw['id_zasob']] = $item;
  73. }
  74. return $robociznaCennik;
  75. }
  76. /**
  77. * @returns [ $id_zasob => [ 'price' => $price, 'ID', 'id_zasob', 'id_company', 'id_project', 'unit', 'quantity' ] ]
  78. */
  79. public static function getDefaultCennik($idCompany = 0) {
  80. $schema = ProjectKosztorysSchema::getSchema();
  81. $typeIdList = array_keys($schema['config']['type']);
  82. $sqlTypeIdList = implode(',', $typeIdList);
  83. $pdo = DB::getPDO();
  84. $sth = $pdo->prepare("
  85. select o.ID
  86. , o.CRM_LISTA_ZASOBOW_ID as id_zasob
  87. , o.COMPANIES_ID as id_company
  88. , o.ID_PROJECT as id_project
  89. , o.OFFER_PRICE_PER_RESOURCE_UNIT as price
  90. , o.RESOURCE_UNIT_TYPE as unit
  91. -- , o.OFFER_UNIT_TYPE as unit
  92. , o.REQUIRED_RESOURCE_UNITS as quantity
  93. from CRM_LISTA_ZASOBOW_OFFERS o
  94. where o.CRM_LISTA_ZASOBOW_ID in({$sqlTypeIdList})
  95. -- and o.A_STATUS not in ('DELETED')
  96. and o.ID_PROJECT = 0
  97. and o.COMPANIES_ID = :id_company
  98. ");
  99. $sth->bindValue(':id_company', $idCompany, PDO::PARAM_INT);
  100. $sth->execute();
  101. $cennikRaw = $sth->fetchAll();
  102. $cennik = array();
  103. foreach ($cennikRaw as $itemRaw) {
  104. $item = $itemRaw;
  105. $item['price'] = round($item['price'], 2);
  106. if (!empty($cennik[$itemRaw['id_zasob']])) {
  107. if ($itemRaw['ID'] < $cennik[$itemRaw['id_zasob']]['ID']) continue;
  108. }
  109. $cennik[$item['id_zasob']] = $item;
  110. }
  111. return $cennik;
  112. }
  113. }