Просмотр исходного кода

added search for Project in Budget for pro-netmedia

Piotr Labudda 9 лет назад
Родитель
Сommit
e0681b7410
1 измененных файлов с 76 добавлено и 2 удалено
  1. 76 2
      SE/se-lib/Route/UrlAction/ProjektyProNetMediaBudget.php

+ 76 - 2
SE/se-lib/Route/UrlAction/ProjektyProNetMediaBudget.php

@@ -1,6 +1,7 @@
 <?php
 
 Lib::loadClass('RouteBase');
+Lib::loadClass('Typespecial');
 Lib::loadClass('TypespecialVariable');
 Lib::loadClass('Request');
 Lib::loadClass('Response');
@@ -242,23 +243,96 @@ dostęp dla zarządu i os. odp.	kwota końcowa
 		return $data;
 	}
 
+	public function getWidgetProject() {
+		$widgetProject = array();
+		$widgetProject['idTabela'] = 1656;// TODO: idZasob for TABELA Projekty
+		$widgetProject['idKomorka'] = 1658;// TODO: idZasob for KOMORKA Projekty.P_ID
+		$widgetProject['fieldName'] = 'ID_PROJECT';
+		$widgetProject['dataUrl'] = "index.php?_route=UrlAction_ProjektyProNetMediaZamZlec&_task=typespecial&fld={$widgetProject['fieldName']}";
+		$widgetProject['typeSpecial'] = Typespecial::getInstance($widgetProject['idKomorka'], $colName = $widgetProject['fieldName']);
+		return $widgetProject;
+	}
+
+	public function typespecialAction() {
+		$DBG = ('1' == V::get('DBG', '', $_REQUEST));
+		$fld = V::get('fld', '', $_GET);
+		$widgetProject = $this->getWidgetProject();
+
+		header("Content-type: application/json");
+		switch ($fld) {
+			case 'ID_PROJECT': {
+					$typeSpecialIdProject = Typespecial::getInstance($widgetProject['idKomorka'], $colName = $widgetProject['fieldName']);
+
+					$query = V::get('q', '', $_REQUEST);
+					$rawRows = null;
+					$rows = $typeSpecialIdProject->getValuesWithExports($query);
+					if($DBG){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">rows('.$query.') (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($rows);echo'</pre>';}
+					foreach ($rows as $kID => $vItem) {
+						$itemJson = new stdClass();
+						$itemJson->id = $vItem->id;
+						$itemJson->name = $vItem->param_out;
+						if (!empty($vItem->exports)) {
+							$itemJson->exports = $vItem->exports;
+						}
+						$jsonData[] = $itemJson;
+					}
+					echo json_encode($jsonData);
+				}
+				break;
+		}
+	}
+
 	public function budgetView($data, $viewParams) {
 		$styleZyskStrata = 'color: black';
 		if ($data['TODO__sum_zysk_strata'] > 0) $styleZyskStrata = 'color:green';
 		if ($data['TODO__sum_zysk_strata'] < 0) $styleZyskStrata = 'color:red';
 		$costs = $data['costs'];
 		DBG::_('DBG', '>2', 'costs', $costs, __CLASS__, __FUNCTION__, __LINE__);
+
+		$widgetProject = $this->getWidgetProject();
+
 		?>
 <div class="container">
 	<div class="row">
-		<div class="col-md-6">
+		<div class="col-md-3" style="padding-top:6px">
 			<?php if (!$viewParams['print_mode']) : ?>
 				<a class="btn btn-primary"
 					 href="index.php?_route=UrlAction_ProjektyProNetMediaBudget&ID_PROJECT=<?php echo $data['id_project']; ?>&_print=1"
 					 target="_blank">drukuj</a>
 			<?php endif; ?>
 		</div>
-		<div class="col-md-6" style="text-align:right">
+		<div class="col-md-7">
+			<?php if (!$viewParams['print_mode']) : ?>
+				<form method="get" class="form-inline">
+					<input type="hidden" name="_route" value="UrlAction_ProjektyProNetMediaBudget">
+					<div class="form-group" style="padding-top:6px">
+						<label>Inny projekt:</label>
+					</div>
+					<div class="form-group" style="padding-top:6px">
+						<?php if ($widgetProject['typeSpecial']) : ?>
+							<?php
+								$fName = $widgetProject['fieldName'];
+								$fldParams = array();
+								$fldParams['allowCreate'] = false;
+								$fldParams['ajaxDataUrlBase'] = $widgetProject['dataUrl'];
+								if ($data['id_project'] > 0) {
+									$tsValues = $widgetProject['typeSpecial']->getValuesWithExports($q = $data['id_project']);
+									if (!empty($tsValues[ $data['id_project'] ])) {
+										$fldParams['typespecialValue'] = $tsValues[ $data['id_project'] ]->param_out;
+									}
+								}
+								//$fldParams['ajaxDataUrlBase'] .= "&DBG_TS=3";
+								echo $widgetProject['typeSpecial']->showFormItem($idTbl = $widgetProject['idTabela'], $fName, $selValue = $data['id_project'], $fldParams);
+							?>
+						<?php else : ?>
+							<input type="number" name="<?= $widgetProject['fieldName']; ?>" value="<?= $data['id_project']; ?>" class="form-control">
+						<?php endif; ?>
+						</div>
+					<input type="submit" value="Wybierz" class="btn btn-primary">
+				</form>
+			<?php endif; ?>
+		</div>
+		<div class="col-md-2" style="text-align:right">
 			<?php echo date("Y-m-d"); ?>
 		</div>
 	</div>