|
|
@@ -4,6 +4,8 @@ Lib::loadClass('RouteBase');
|
|
|
Lib::loadClass('TypespecialVariable');
|
|
|
Lib::loadClass('Request');
|
|
|
Lib::loadClass('Response');
|
|
|
+Lib::loadClass('ProcesHelper');
|
|
|
+Lib::loadClass('Route_UrlAction');
|
|
|
|
|
|
class Route_UrlAction_ProjektyProNetMediaZamZlec extends RouteBase {// TODO: UrlActionBase @see Route_UrlAction
|
|
|
|
|
|
@@ -13,24 +15,6 @@ class Route_UrlAction_ProjektyProNetMediaZamZlec extends RouteBase {// TODO: Url
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-/*
|
|
|
-
|
|
|
-Kwota planowana
|
|
|
-Zamówienie
|
|
|
-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ń
|
|
|
-
|
|
|
-
|
|
|
-podkład fv podkład fv
|
|
|
-dostęp dla zarządu i os. odp. kwota końcowa
|
|
|
-
|
|
|
-*/
|
|
|
-
|
|
|
public function typespecialAction() {
|
|
|
$DBG = ('1' == V::get('DBG', '', $_REQUEST));
|
|
|
header("Content-type: application/json");
|
|
|
@@ -205,15 +189,28 @@ dostęp dla zarządu i os. odp. kwota końcowa
|
|
|
$data['id_company'] = $id_company;
|
|
|
$data['id_project'] = $id_project;
|
|
|
$data = $this->setProps($data);
|
|
|
- $this->zamowienieView($data);
|
|
|
+ $mode = (V::get('_print', '', $_REQUEST))? 'print' : 'view';
|
|
|
+ $this->zamowienieView($data, $mode);
|
|
|
} catch (Exception $e) {
|
|
|
SE_Layout::alert('danger', "Error #" . $e->getCode() . "|" . $e->getLine() . ": " . $e->getMessage());
|
|
|
}
|
|
|
SE_Layout::dol();
|
|
|
}
|
|
|
|
|
|
+ public function previewOrder($idOrder) {
|
|
|
+ try {
|
|
|
+ $id_order = $idOrder;
|
|
|
+ $data = array();
|
|
|
+ $data['id'] = $id_order;
|
|
|
+ $data = $this->setProps($data);
|
|
|
+ $this->zamowienieView($data, $mode = 'preview');
|
|
|
+ } catch (Exception $e) {
|
|
|
+ SE_Layout::alert('danger', "Error #" . $e->getCode() . "|" . $e->getLine() . ": " . $e->getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
public function setProps($data) {
|
|
|
- $data['_nr_budowy'] = '';// TODO: fetch from project - field M_DIST_DESC
|
|
|
+ $data['_nr_budowy'] = '';// fetch from project - field M_DIST_DESC
|
|
|
|
|
|
$sqlIdOrder = V::get('id', 0, $data, 'int');
|
|
|
if ($sqlIdOrder > 0) {
|
|
|
@@ -360,7 +357,7 @@ dostęp dla zarządu i os. odp. kwota końcowa
|
|
|
<input type="hidden" name="_task" value="">
|
|
|
<label>Dodaj nowe </label>
|
|
|
<button type="submit" class="btn btn-primary" onclick="return submitZamowienie(this);">Zamówienie</button>
|
|
|
- <button type="submit" class="btn btn-primary" onclick="return submitZlecenie(this);">Zlecenie</button>
|
|
|
+ <!-- <button type="submit" class="btn btn-primary" onclick="return submitZlecenie(this);">Zlecenie</button> -->
|
|
|
</div>
|
|
|
</div>
|
|
|
</form>
|
|
|
@@ -370,19 +367,46 @@ dostęp dla zarządu i os. odp. kwota końcowa
|
|
|
<thead>
|
|
|
<tr>
|
|
|
<th>#</th>
|
|
|
- <th>id</th>
|
|
|
+ <th>status</th>
|
|
|
<th>nr zlecenia</th>
|
|
|
<th>nr budowy</th>
|
|
|
</tr>
|
|
|
</thead>
|
|
|
<tbody>
|
|
|
<?php foreach ($projOrders as $order) : ?>
|
|
|
+ <?php
|
|
|
+ $changeState = array();
|
|
|
+ $idTableOrders = ProcesHelper::getZasobTableID('CRM_LISTA_ZASOBOW_ORDERS');
|
|
|
+ $urlFunctions = Route_UrlAction::getTableFunctions($idTableOrders, $order['ID'], 'CRM_LISTA_ZASOBOW_ORDERS', User::getLogin());
|
|
|
+ //DBG::_(true, true, 'urlFunctions', $urlFunctions);
|
|
|
+ if ('WERSJA_ROBOCZA' == $order['APPROVE_STATUS']) {
|
|
|
+ foreach ($urlFunctions as $fun) {
|
|
|
+ if ('ProjektyProNetMediaRequestApproveZam' == $fun['name']) {
|
|
|
+ $changeState['OCZEKUJE_ZATWIERDZENIA'] = $fun;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if ('OCZEKUJE_ZATWIERDZENIA' == $order['APPROVE_STATUS']) {
|
|
|
+ foreach ($urlFunctions as $fun) {
|
|
|
+ if ('ProjektyProNetMediaApproveZam' == $fun['name']) {
|
|
|
+ $changeState['ZATWIERDZONE'] = $fun;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ?>
|
|
|
<tr>
|
|
|
<td>
|
|
|
+ <?php echo $order['ID']; ?>
|
|
|
<a href="index.php?_route=UrlAction_ProjektyProNetMediaZamZlec&_task=<?php echo $order['ORDER_TYPE']; ?>&id=<?php echo $order['ID']; ?>"
|
|
|
class="btn btn-link btn-xs">Edytuj <?php echo $order['ORDER_TYPE']; ?></a>
|
|
|
</td>
|
|
|
- <td><?php echo $order['ID']; ?></td>
|
|
|
+ <td><?php echo $order['APPROVE_STATUS']; ?>
|
|
|
+ <?php if (!empty($changeState)) : ?>
|
|
|
+ <?php foreach ($changeState as $key => $fun) : ?>
|
|
|
+ <a href="<?php echo $this->generateFunctionLink($fun, $idTableOrders, $order['ID'], $order); ?>" class="btn btn-xs btn-default">Zmień na: <?php echo $key; ?></a>
|
|
|
+ <?php endforeach; ?>
|
|
|
+ <?php endif; ?>
|
|
|
+ </td>
|
|
|
<td><?php echo $order['ORDER_LABEL']; ?></td>
|
|
|
<td><?php echo $order['obcy_nr_sprawy']; ?></td>
|
|
|
</tr>
|
|
|
@@ -403,6 +427,46 @@ function submitZlecenie(fld) {
|
|
|
<?php
|
|
|
}
|
|
|
|
|
|
+ public function generateFunctionLink($fun, $idTableOrders, $idOrder, $order) {
|
|
|
+ $link = $fun['baseLink'];
|
|
|
+ if (empty($fun['cell_id_params'])) return $link;
|
|
|
+ $fieldMap = array();
|
|
|
+ {
|
|
|
+ $rows = DB::getPDO()->fetchAll("
|
|
|
+ select z.ID, z.`DESC`
|
|
|
+ from CRM_LISTA_ZASOBOW z
|
|
|
+ where z.PARENT_ID = '{$idTableOrders}'
|
|
|
+ and z.`TYPE` = 'KOMORKA'
|
|
|
+ ");
|
|
|
+ if (empty($rows)) return '#';
|
|
|
+ foreach ($rows as $row) {
|
|
|
+ $fieldMap[ $row['ID'] ] = $row['DESC'];
|
|
|
+ }
|
|
|
+ if (empty($fieldMap)) return '#';
|
|
|
+ }
|
|
|
+ $record = null;
|
|
|
+ {
|
|
|
+ $rows = DB::getPDO()->fetchAll("
|
|
|
+ select r.*
|
|
|
+ from CRM_LISTA_ZASOBOW_ORDERS r
|
|
|
+ where r.ID = '{$idOrder}'
|
|
|
+ ");
|
|
|
+ if (empty($rows)) return '#';
|
|
|
+ $record = $rows[0];
|
|
|
+ }
|
|
|
+ if (!$record) return '#';
|
|
|
+ $urlParams = array();// [ "{$urlParamName}={$paramValue}" ]
|
|
|
+ foreach ($fun['cell_id_params'] as $idField => $urlParamName) {
|
|
|
+ $paramValue = '';
|
|
|
+ if (array_key_exists($idField, $fieldMap)) {
|
|
|
+ $paramValue = V::get($fieldMap[$idField], '', $record);
|
|
|
+ $urlParams[] = "{$urlParamName}={$paramValue}";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!empty($urlParams)) $link .= "&" . implode("&", $urlParams);
|
|
|
+ return $link;
|
|
|
+ }
|
|
|
+
|
|
|
public function zlecenieView($data) {
|
|
|
$ile_pozycji = V::get('ile_pozycji', 10, $data);
|
|
|
?>
|
|
|
@@ -712,7 +776,7 @@ body { font-size:12px; line-height:1.3em }
|
|
|
return $orderPosList;
|
|
|
}
|
|
|
|
|
|
- public function zamowienieView($data) {
|
|
|
+ public function zamowienieView($data, $mode = 'view') {
|
|
|
$id_order = V::get('id', 0, $data);
|
|
|
$id_company = V::get('id_company', 0, $data);
|
|
|
$id_project = V::get('id_project', 0, $data);
|
|
|
@@ -739,10 +803,10 @@ body { font-size:12px; line-height:1.3em }
|
|
|
#tbl-items td { padding:3px !important }
|
|
|
@media print {
|
|
|
body { font-size:9px; line-height:1.2em }
|
|
|
- h4 { font-size:1.1em; margin-top:8px; margin-bottom:6px }
|
|
|
- h3 { font-size:1.2em; margin-top:8px; margin-bottom:6px }
|
|
|
- h2 { font-size:1.3em; margin-top:8px; margin-bottom:6px }
|
|
|
- h1 { font-size:1.4em; margin-top:8px; margin-bottom:6px }
|
|
|
+ h4 { font-size:1.3em; margin-top:8px; margin-bottom:6px }
|
|
|
+ h3 { font-size:1.5em; margin-top:8px; margin-bottom:6px }
|
|
|
+ h2 { font-size:1.6em; margin-top:8px; margin-bottom:6px }
|
|
|
+ h1 { font-size:1.8em; margin-top:8px; margin-bottom:6px }
|
|
|
|
|
|
table { page-break-inside:auto }
|
|
|
tr { page-break-inside:avoid; page-break-after:auto }
|
|
|
@@ -766,7 +830,7 @@ body { font-size:12px; line-height:1.3em }
|
|
|
<script src="stuff/vendors.js"></script>
|
|
|
<script src="stuff/bundle.se_route_orders.js"></script>
|
|
|
<script>
|
|
|
-var _mode = '<?php echo (V::get('_print', '', $_REQUEST))? 'print' : 'view'; ?>';
|
|
|
+var _mode = '<?php echo $mode; ?>';
|
|
|
var _projectInfo = {id: 5130};// TODO: ID PROJECT - use only fields?
|
|
|
var _notes = 'NA FAKTURZE VAT NALEŻY UMIESZCZAĆ CZYTELNY NR ZAMÓWIENIA';
|
|
|
var _pos = <?php echo json_encode($orderPosList); ?>;
|
|
|
@@ -892,7 +956,7 @@ jQuery("#widget-orders").p5_Orders({
|
|
|
city: '',
|
|
|
nip: ''
|
|
|
},
|
|
|
- backLink: 'index.php?_route=UrlAction_ProjektyProNetMediaZamZlec',
|
|
|
+ backLink: 'index.php?_route=UrlAction_ProjektyProNetMediaZamZlec&ID_PROJECT=<?php echo $id_project; ?>',
|
|
|
printLink: 'index.php?_route=UrlAction_ProjektyProNetMediaZamZlec&_task=zamowienie&_print=1',
|
|
|
printIdOrderArg: 'id',
|
|
|
projectInfo: _projectInfo,
|
|
|
@@ -950,7 +1014,7 @@ jQuery("#widget-orders").p5_Orders({
|
|
|
</script>
|
|
|
<script>
|
|
|
jQuery(document).ready(function() {
|
|
|
- var _mode = '<?php echo (V::get('_print', '', $_REQUEST))? 'print' : 'view'; ?>';
|
|
|
+ var _mode = '<?php echo $mode; ?>';
|
|
|
document.title = 'zamowienie_nr_<?php echo V::get('ORDER_LABEL', 'nr zamówienia / inicjały zamawiającego / numer budowy / miesiąc / rok', $data); ?>';
|
|
|
if ('print' == _mode) {
|
|
|
window.print();
|
|
|
@@ -1074,7 +1138,8 @@ CREATE TABLE IF NOT EXISTS `CRM_LISTA_ZASOBOW_ORDERS_HIST` (
|
|
|
KEY `ID_USERS2` (`ID_USERS2`)
|
|
|
) ENGINE=MyISAM DEFAULT CHARSET=latin2;
|
|
|
|
|
|
-CREATE VIEW `CRM_LISTA_ZASOBOW_ORDERS_summary_view` AS SELECT o.`ID`
|
|
|
+CREATE VIEW `CRM_LISTA_ZASOBOW_ORDERS_summary_view` AS
|
|
|
+ SELECT o.`ID`
|
|
|
, o.`ID_COMPANIES`
|
|
|
, o.`ID_PROJECT`
|
|
|
, o.`ID_PROJECT_path`
|