| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 |
- <?php
- Lib::loadClass('RouteBase');
- Lib::loadClass('TypespecialVariable');
- Lib::loadClass('Request');
- Lib::loadClass('Response');
- class Route_UrlAction_ProjektyProNetMediaBudget extends RouteBase {// TODO: UrlActionBase @see Route_UrlAction
- public function handleAuth() {
- if (!User::logged()) {
- User::authByRequest();
- }
- }
- /*
- Kwota planowana: `M_DIST_COST_PROJECT` Budżet projektu
- Zamówienie: sumy z CRM_LISTA_ZASOBOW_ORDERS (CRM_LISTA_ZASOBOW_OFFERS)
- zaliczki
- ilość pracowników / koszty pracownicze: powiązanie z raportami X współczynnik
- koszty sprzętu/ wynajmowany na budowie: rozdział na różne rodzaj sprzętu: koparka itp.
- koszty własne: naprawy sprzętu
- koszty materiałów
- osprzet
- dodatkowe koszty związane z nadwyżkami - rozbieżności odnośnie ustaleń
- dostęp dla zarządu i os. odp. kwota końcowa
- */
- public function defaultAction() {
- SE_Layout::gora();
- if (1 != V::get('_print', '', $_GET)) SE_Layout::menu();
- try {
- $data = array();
- $data['id_project'] = V::get('ID_PROJECT', 0, $_REQUEST, 'int');
- if (!$data['id_project']) throw new Exception("Error: Brak nr projektu!");
- $data = $this->setProps($data);
- $this->budgetView($data);
- } catch (Exception $e) {
- SE_Layout::alert('danger', "Error #" . $e->getCode() . "|" . $e->getLine() . ": " . $e->getMessage());
- }
- SE_Layout::dol();
- }
- public function setProps($data) {
- $idProj = V::get('id_project', 0, $data, 'int');
- if (!$idProj) return $data;// throw errro?
- $data['budget'] = 0;
- $data['projectInfo'] = null;
- $data['projectLabel'] = '';
- $data['costs'] = array();
- $rows = DB::getPDO()->fetchAll("
- select p.ID
- , p.M_DIST_DESC
- , p.M_DIST_DEALNUM
- , p.M_DIST_COST_PROJECT
- from IN7_MK_BAZA_DYSTRYBUCJI p
- where p.A_STATUS not in('DELETED')
- and p.ID = {$idProj}
- ");
- if (empty($rows)) return $data;// throw errro?
- $data['projectInfo'] = $rows[0];
- $data['budget'] = V::get('M_DIST_COST_PROJECT', 0, $data['projectInfo']);
- $data['projectLabel'] = $data['projectInfo']['M_DIST_DESC'];
- $data['budget'] = V::get('DBG_M_DIST_COST_PROJECT', $data['budget'], $_GET);// TODO: TEST
- $data['ordersRaw'] = DB::getPDO()->fetchAll("
- select r.ID
- , r.ORDER_LABEL
- , sum(o.OFFER_PRICE_PER_UNIT * o.OFFER_QUANTITY) as SUM_NETTO
- from CRM_LISTA_ZASOBOW_ORDERS r
- left join CRM_LISTA_ZASOBOW_OFFERS o on(
- o.ID_ORDER = r.ID
- and (o.A_STATUS is null or o.A_STATUS not in('DELETED'))
- )
- where (r.A_STATUS is null or r.A_STATUS not in('DELETED'))
- and r.ID_PROJECT = {$idProj}
- group by r.ID
- ");
- // $data['costs'] = array();
- {
- $idx = 0;
- foreach ($data['ordersRaw'] as $idxOrders => $order) {
- if (count($data['costs']) < $idxOrders + 1) {
- $data['costs'][] = array(
- 'cost_zamowienia'=>$order['SUM_NETTO'],
- 'cost_zaliczki'=>0,
- 'cost_pracownicy'=>0,
- 'cost_wynajem'=>0,
- 'cost_serwis'=>0,
- 'cost_materialy'=>0,
- 'cost_osprzet'=>0,
- 'cost_dodatkowe'=>0,
- 'sum'=>0,
- 'orderRaw'=>$order
- );
- }
- }
- $budget = $data['budget'];
- foreach ($data['costs'] as $idx => $cost) {
- $sum = $cost['cost_zamowienia']
- + $cost['cost_zaliczki']
- + $cost['cost_pracownicy']
- + $cost['cost_wynajem']
- + $cost['cost_serwis']
- + $cost['cost_materialy']
- + $cost['cost_osprzet']
- + $cost['cost_dodatkowe']
- ;
- $budget -= $sum;
- $data['costs'][$idx]['budget_minus_sum'] = $budget;
- $data['costs'][$idx]['sum'] = $sum;
- }
- }
- return $data;
- }
- public function budgetView($data) {
- ?>
- <div class="container">
- <h1>Projekt: <?php echo $data['projectLabel']; ?></h1>
- <table class="table table-bordered">
- <thead>
- <tr>
- <th>Kwota planowana<br><?php echo number_format($data['budget'], 2, ',', ' '); ?></th>
- <th>Zamówienie</th>
- <th>zaliczki</th>
- <th>ilość pracowników / koszty pracownicze: powiązanie z raportami X współczynnik</th>
- <th>koszty sprzętu/ wynajmowany na budowie: rozdział na różne rodzaj sprzętu: koparka itp.</th>
- <th>koszty własne: naprawy sprzętu</th>
- <th>koszty materiałów</th>
- <th>osprzet</th>
- <th>dodatkowe koszty związane z nadwyżkami - rozbieżności odnośnie ustaleń</th>
- </tr>
- </thead>
- <tbody>
- <?php foreach ($data['costs'] as $cost) : ?>
- <tr>
- <td><?php echo $cost['budget_minus_sum']; ?></td>
- <td><?php echo $cost['cost_zamowienia']; ?></td>
- <td><?php echo $cost['cost_zaliczki']; ?></td>
- <td><?php echo $cost['cost_pracownicy']; ?></td>
- <td><?php echo $cost['cost_wynajem']; ?></td>
- <td><?php echo $cost['cost_serwis']; ?></td>
- <td><?php echo $cost['cost_materialy']; ?></td>
- <td><?php echo $cost['cost_osprzet']; ?></td>
- <td><?php echo $cost['cost_dodatkowe']; ?></td>
- </tr>
- <?php endforeach; ?>
- </tbody>
- </table>
- </div>
- <?php
- //DBG::_(true, true, 'data', $data, __CLASS__, __FUNCTION__, __LINE__);
- }
- }
|