setProps($data);
if (V::get('_change', '', $_POST)) {
$this->changeStatusToWaitingApproval($data);
} else {
$this->previewOrder($data);
}
} catch (Exception $e) {
UI::alert('danger', "Error #" . $e->getCode() . "|" . $e->getLine() . ": " . $e->getMessage());
}
UI::dol();
}
public function setProps($data) {
$idOrder = V::get('id_order', 0, $data, 'int');
if (!$idOrder) throw new Exception("Error: Brak nr zamówienia!");
$data['id_order'] = $idOrder;
$data['zamowienie_label'] = '';
$data['orderRaw'] = DB::getPDO()->fetchAll("
select r.ID
, r.ORDER_LABEL
, r.ORDER_TYPE
, r.ID_PROJECT
, sum(o.OFFER_PRICE_PER_UNIT * o.OFFER_QUANTITY) as SUM_NETTO
, p.M_DIST_DESC
from CRM_LISTA_ZASOBOW_ORDERS r
join IN7_MK_BAZA_DYSTRYBUCJI p on(p.ID = r.ID_PROJECT)
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 = {$idOrder}
");
if (empty($data['orderRaw'])) throw new Exception("Error: Brak danych dla zamówienia {$idOrder}!");
$data['orderRaw'] = $data['orderRaw'][0];
$data['zamowienie_label'] = $data['orderRaw']['ORDER_LABEL'];
$data['zamowienie_suma'] = number_format($data['orderRaw']['SUM_NETTO'], 2, ',', ' ');
$data['id_project'] = $data['orderRaw']['ID_PROJECT'];
$data['project_label'] = $data['orderRaw']['M_DIST_DESC'];
$data['ORDER_TYPE'] = $data['orderRaw']['ORDER_TYPE'];
return $data;
}
public function previewOrder($data) {
UI::startContainer();
echo UI::h('h1', [], [
('zlecenie' == $data['ORDER_TYPE']) ? "Zlecenie" : "Zamówienie",
': ' . $data['zamowienie_label'],
'
',
UI::h('small', [], "Dotyczy projektu: {$data['project_label']}")
]);
UI::alert('info', "Suma netto zamówienia: {$data['zamowienie_suma']}");
echo UI::h('form', ['style'=>"text-align:center", 'method'=>"post"], [
UI::h('input', ['type'=>"hidden", 'name'=>"_route", 'value'=>"UrlAction_ProjektyProNetMediaRequestApproveZam"]),
UI::h('input', ['type'=>"hidden", 'name'=>"ID_ORDER", 'value'=>$data['id_order']]),
UI::h('input', ['type'=>"hidden", 'name'=>"_change", 'value'=>"1"]),
UI::h('input', ['type'=>"submit", 'class'=>"btn btn-lg btn-primary", 'value'=>"Zmień status"]),
UI::h('span', ['style'=>"font-size:1.6em"], "na OCZEKUJE_ZATWIERDZENIA"),
]);
echo UI::h('hr');
Router::getRoute('UrlAction_ProjektyProNetMediaZamZlec')->previewOrder($data['id_order']);
UI::endContainer();
}
public function changeStatusToWaitingApproval($data) {
$idOrder = V::get('id_order', 0, $data, 'int');
if (!$idOrder) throw new Exception("Error: Brak nr zamówienia!");
$sqlObj = array();
$sqlObj['ID'] = $idOrder;
$sqlObj['APPROVE_STATUS'] = 'OCZEKUJE_ZATWIERDZENIA';
$affected = DB::getDB()->UPDATE_OBJ('CRM_LISTA_ZASOBOW_ORDERS', (object)$sqlObj);
UI::startContainer();
if ($affected >= 0) {
UI::alert('success', "Zmieniono status zamówienia na OCZEKUJE_ZATWIERDZENIA");
} else {
UI::alert('danger', "Wystąpiły błędy podczas zmieniania statusu zamówienia");
}
echo UI::h('div', ['style'=>"text-align:center"], [
UI::h('a', ['href'=>"index.php?_route=UrlAction_ProjektyProNetMediaZamZlec&ID_PROJECT={$data['id_project']}", 'class'=>"btn btn-primary"], "Wróć")
]);
UI::endContainer();
}
}