|
|
@@ -0,0 +1,153 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+Lib::loadClass('RouteBase');
|
|
|
+Lib::loadClass('TypespecialVariable');
|
|
|
+Lib::loadClass('Request');
|
|
|
+Lib::loadClass('Response');
|
|
|
+
|
|
|
+class Route_UrlAction_ProjektyProNetMediaFinalApproveZam extends RouteBase {// TODO: UrlActionBase @see Route_UrlAction
|
|
|
+
|
|
|
+ public function handleAuth() {
|
|
|
+ if (!User::logged()) {
|
|
|
+ User::authByRequest();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public function defaultAction() {
|
|
|
+ SE_Layout::gora();
|
|
|
+ if (1 != V::get('_print', '', $_GET)) SE_Layout::menu();
|
|
|
+ try {
|
|
|
+ $data = array();
|
|
|
+ $data['id_order'] = V::get('ID_ORDER', 0, $_REQUEST, 'int');
|
|
|
+ if (!$data['id_order']) throw new Exception("Error: Brak nr zamówienia!");
|
|
|
+ $data = $this->setProps($data);
|
|
|
+ $this->finalApproveFormView($data);
|
|
|
+ } catch (Exception $e) {
|
|
|
+ SE_Layout::alert('danger', "Error #" . $e->getCode() . "|" . $e->getLine() . ": " . $e->getMessage());
|
|
|
+ }
|
|
|
+ SE_Layout::dol();
|
|
|
+ }
|
|
|
+
|
|
|
+ public function finalApproveOrderAction() {
|
|
|
+ SE_Layout::gora();
|
|
|
+ try {
|
|
|
+ $data = array();
|
|
|
+ $data['id_order'] = V::get('id_order', 0, $_REQUEST, 'int');
|
|
|
+ $data = $this->setProps($data);
|
|
|
+ $sqlObj = array();
|
|
|
+ $sqlObj['ID'] = $data['id_order'];
|
|
|
+ $sqlObj['APPROVE_STATUS'] = 'ZATWIERDZONE';
|
|
|
+ $sqlObj['APPROVED_BY'] = User::getFullName();
|
|
|
+ $affected = DB::getDB()->UPDATE_OBJ('CRM_LISTA_ZASOBOW_ORDERS', (object)$sqlObj);
|
|
|
+ echo '<div class="container">';
|
|
|
+ if ($affected >= 0) {
|
|
|
+ SE_Layout::alert('success', "Zmieniono status zamówienia na ZATWIERDZONE");
|
|
|
+ } else {
|
|
|
+ SE_Layout::alert('danger', "Wystąpiły błędy podczas zmieniania statusu zamówienia");
|
|
|
+ }
|
|
|
+ ?>
|
|
|
+ <div style="text-align:center">
|
|
|
+ <a href="index.php?_route=UrlAction_ProjektyProNetMediaZamZlec&ID_PROJECT=<?php echo $data['id_project']; ?>" class="btn btn-primary">Wróć</a>
|
|
|
+ </div>
|
|
|
+ <?php
|
|
|
+ echo '</div>';
|
|
|
+ } catch (Exception $e) {
|
|
|
+ SE_Layout::alert('danger', "Error #" . $e->getCode() . "|" . $e->getLine() . ": " . $e->getMessage());
|
|
|
+ }
|
|
|
+ SE_Layout::dol();
|
|
|
+ }
|
|
|
+
|
|
|
+ public function rejectOrderAction() {
|
|
|
+ SE_Layout::gora();
|
|
|
+ try {
|
|
|
+ $data = array();
|
|
|
+ $data['id_order'] = V::get('id_order', 0, $_REQUEST, 'int');
|
|
|
+ $data = $this->setProps($data);
|
|
|
+ $sqlObj = array();
|
|
|
+ $sqlObj['ID'] = $data['id_order'];
|
|
|
+ $sqlObj['APPROVE_STATUS'] = 'ODRZUCONE';
|
|
|
+ $sqlObj['APPROVED_BY'] = User::getFullName();
|
|
|
+ $affected = DB::getDB()->UPDATE_OBJ('CRM_LISTA_ZASOBOW_ORDERS', (object)$sqlObj);
|
|
|
+ echo '<div class="container">';
|
|
|
+ if ($affected >= 0) {
|
|
|
+ SE_Layout::alert('success', "Zmieniono status zamówienia na ODRZUCONE");
|
|
|
+ } else {
|
|
|
+ SE_Layout::alert('danger', "Wystąpiły błędy podczas zmieniania statusu zamówienia");
|
|
|
+ }
|
|
|
+ ?>
|
|
|
+ <div style="text-align:center">
|
|
|
+ <a href="index.php?_route=UrlAction_ProjektyProNetMediaZamZlec&ID_PROJECT=<?php echo $data['id_project']; ?>" class="btn btn-primary">Wróć</a>
|
|
|
+ </div>
|
|
|
+ <?php
|
|
|
+ echo '</div>';
|
|
|
+ } catch (Exception $e) {
|
|
|
+ SE_Layout::alert('danger', "Error #" . $e->getCode() . "|" . $e->getLine() . ": " . $e->getMessage());
|
|
|
+ }
|
|
|
+ SE_Layout::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.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'];
|
|
|
+
|
|
|
+ return $data;
|
|
|
+ }
|
|
|
+
|
|
|
+ public function finalApproveFormView($data) {
|
|
|
+ ?>
|
|
|
+<div class="container">
|
|
|
+ <h1>Zamówienie: <?php echo $data['zamowienie_label']; ?>
|
|
|
+ <br><small>Dotyczy projektu: <?php echo $data['project_label']; ?></small>
|
|
|
+ </h1>
|
|
|
+
|
|
|
+ <?php echo SE_Layout::alert('info', "Suma netto zamówienia: <b>{$data['zamowienie_suma']}</b>"); ?>
|
|
|
+
|
|
|
+ <form style="text-align:center">
|
|
|
+ <input type="hidden" name="_route" value="UrlAction_ProjektyProNetMediaFinalApproveZam">
|
|
|
+ <input type="hidden" name="_task" value="">
|
|
|
+ <input type="hidden" name="id_order" value="<?php echo $data['id_order']; ?>">
|
|
|
+ <button onClick="return finalApproveOrder(this);" class="btn btn-lg btn-primary">Zatwierdzam</button>
|
|
|
+ <button onClick="return rejectOrder(this);" class="btn btn-lg btn-danger" style="margin-left:30px">Nie zatwierdzam</button>
|
|
|
+ </form>
|
|
|
+
|
|
|
+ <hr>
|
|
|
+ <?php Router::getRoute('UrlAction_ProjektyProNetMediaZamZlec')->previewOrder($data['id_order']);?>
|
|
|
+</div>
|
|
|
+<script>
|
|
|
+function finalApproveOrder(fld) {
|
|
|
+ var frm = fld.form;
|
|
|
+ frm['_task'].value='finalApproveOrder';
|
|
|
+}
|
|
|
+function rejectOrder(fld) {
|
|
|
+ var frm = fld.form;
|
|
|
+ frm['_task'].value='rejectOrder';
|
|
|
+}
|
|
|
+</script>
|
|
|
+ <?php
|
|
|
+ }
|
|
|
+
|
|
|
+}
|