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

Budget - cost description window

Piotr Labudda 11 лет назад
Родитель
Сommit
a65ab08e65
1 измененных файлов с 91 добавлено и 16 удалено
  1. 91 16
      SE/se-lib/Route/Budget.php

+ 91 - 16
SE/se-lib/Route/Budget.php

@@ -182,6 +182,7 @@ jQuery(document).ready(function () {
 						<?php if ($vCost->COST_SELF > 0) : ?>
 			<td class="cell-cost cell-cost-self_and_child"
 					data-month_num="<?php echo $month; ?>"
+					data-cost="<?php echo $vCostTotalOut; ?>"
 					data-proj_path="<?php echo $projectInfo->path; ?>"
 					data-proj_id="<?php echo $projectInfo->ID_PROJECT; ?>">
 				<span class="ttip" title="<?php echo $title; ?>"><?php echo $vCostTotalOut; ?></span>
@@ -189,6 +190,7 @@ jQuery(document).ready(function () {
 						<?php else : ?>
 			<td class="cell-cost cell-cost-only_child"
 					data-month_num="<?php echo $month; ?>"
+					data-cost="<?php echo $vCostTotalOut; ?>"
 					data-proj_path="<?php echo $projectInfo->path; ?>"
 					data-proj_id="<?php echo $projectInfo->ID_PROJECT; ?>">
 				<span class="ttip" title="<?php echo $title; ?>"><?php echo $vCostTotalOut; ?></span>
@@ -197,6 +199,7 @@ jQuery(document).ready(function () {
 					<?php else : ?>
 			<td class="cell-cost cell-cost-only_self"
 					data-month_num="<?php echo $month; ?>"
+					data-cost="<?php echo $vCostTotalOut; ?>"
 					data-proj_path="<?php echo $projectInfo->path; ?>"
 					data-proj_id="<?php echo $projectInfo->ID_PROJECT; ?>">
 				<?php echo $vCostTotalOut; ?>
@@ -215,35 +218,107 @@ jQuery(document).ready(function() {
 	jQuery('#zestawienie-kosztow-projektow')
 		.find('.cell-cost')
 		.on('click', function(e) {
-			var $n = jQuery(this);
-			console.log('node', $n, 'data', $n.data());
+			var $n = jQuery(this),
+				$modal = jQuery('#projectMonthCostDetails'),
+				projId = $n.data('proj_id'),
+				monthNum = $n.data('month_num'),
+				projPath = '' + $n.data('proj_path'),
+				projPathLength = projPath.length,
+				modalBody = document.createElement('table'),
+				totalDescrCell = document.createElement('td'),
+				totalCostCell = document.createElement('td'),
+				totalEmptyCell = document.createElement('td'),
+				totalRow = document.createElement('tr');
+			modalBody.className = 'zestawienie-kosztow-tbl';
+			modalBody.style.width = '100%';
+			// $n.data() = {proj_id: 3943, proj_path: "0-4132-3943", month_num: 2}
+			// table#proj-koresp-info > tbody#row-proj-2055-koresp-by-month-2
+			jQuery('#proj-koresp-info').find('tbody').each(function(i, tbody) {
+				var vPath = jQuery(tbody).data('proj_path'),
+						vMonthNum = jQuery(tbody).data('month_num');
+				if (monthNum != vMonthNum) return;
+				if (projPathLength > vPath.length) return;
+				if (projPath == vPath
+						|| (projPathLength < vPath.length && projPath == vPath.substr(0, projPathLength))
+					 ) {
+					modalBody.appendChild(tbody.cloneNode(true));
+				}
+			});
+			{
+				totalDescrCell.className = 'p2';
+				totalDescrCell.style.textAlign = 'right';
+				totalDescrCell.setAttribute('colspan', '2');
+				totalDescrCell.appendChild(document.createTextNode('Suma:'));
+				totalCostCell.className = 'cell-cost';
+				totalCostCell.style.textAlign = 'right';
+				totalCostCell.appendChild(document.createTextNode($n.data('cost')));
+				totalRow.appendChild(totalDescrCell);
+				totalRow.appendChild(totalCostCell);
+				modalBody.appendChild(totalRow);
+			}
+			$modal.find('.modal-title').text('Koszty projektu nr ' + projId + ' w miesiącu <?php echo $year; ?>-' + ((monthNum > 9)? monthNum : '0' + monthNum));
+			$modal.find('.modal-body').html(modalBody);
+			$modal.modal({});
 		})
 })
 	</script>
+	<!-- Button trigger modal -->
+	<button type="button" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#projectMonthCostDetails">
+		Launch demo modal
+	</button>
+
+	<!-- Modal -->
+	<div class="modal fade" id="projectMonthCostDetails" tabindex="-1" role="dialog" aria-labelledby="projectCostDMonthetailsLabel">
+		<div class="modal-dialog" role="document" style="min-width:800px;">
+			<div class="modal-content">
+				<div class="modal-header">
+					<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
+					<h4 class="modal-title" id="projectCostDMonthetailsLabel">Modal title</h4>
+				</div>
+				<div class="modal-body">
+					TODO: projectMonthCostDetails...
+				</div>
+				<div class="modal-footer">
+					<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
+				</div>
+			</div>
+		</div>
+	</div>
 	<table id="proj-koresp-info" style="display:none">
 		<?php foreach ($this->_costs as $projId => $projectInfo) : ?>
 			<?php if (!empty($projectInfo->korespByMonth)) : ?>
 				<?php foreach ($projectInfo->korespByMonth as $kMonth => $vKorespMonthList) : ?>
-					<tbody id="row-proj-<?php echo $projectInfo->ID_PROJECT; ?>-koresp-by-month-<?php echo $kMonth; ?>">
+					<tbody id="row-proj-<?php echo $projectInfo->ID_PROJECT; ?>-koresp-by-month-<?php echo $kMonth; ?>"
+								 data-month_num="<?php echo $kMonth; ?>"
+								 data-proj_path="<?php echo $projectInfo->path; ?>"
+								 data-proj_id="<?php echo $projectInfo->ID_PROJECT; ?>">
 						<tr>
-							<td colspan="10">
-								Projekt nr <?php echo $projectInfo->ID_PROJECT; ?>
-								- miesiąc <?php echo $year; ?>-<?php echo sprintf("%02d", $kMonth); ?>
+							<td style="padding:3px;font-size:1em;background:#eee;"><?php echo $projectInfo->path; ?></td>
+							<td colspan="3" style="padding:3px;font-size:1.2em;background:#eee;">
+								Koszty projektu nr <?php echo $projectInfo->ID_PROJECT; ?>
+								<!-- - miesiąc <?php echo $year; ?>-<?php echo sprintf("%02d", $kMonth); ?> -->
 							</td>
 						</tr>
 						<?php foreach ($vKorespMonthList as $kKorespIdx => $vKorespInfo) : ?>
 							<?php /*
-								[ID] => 41235
-								[MONTH] => 2015-02
-								[K_ZAWARTOS] => Faktura za pomiar powykonawczy sieci telekomunikacyjnej
-								[COST] => 1000.00
-								[INCOME] => 0.00
-							*/ ?>
+								*	[ID] => 41235
+								*	[MONTH] => 2015-02
+								*	[K_ZAWARTOS] => Faktura za pomiar powykonawczy sieci telekomunikacyjnej
+								*	[COST] => 1000.00
+								*	[INCOME] => 0.00
+								? [TRANSFER_OPPOSITE_ID_PROJECT] => int
+								*/ ?>
 							<tr>
-								<td class="p2 l nr"><?php echo $vKorespInfo->ID; ?></td>
+								<td class="p2 r nr"><?php echo $vKorespInfo->ID; ?></td>
 								<td class="p2" style="max-width:400px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;" title="<?php echo $projectInfo->M_DIST_DESC; ?>"><?php echo $vKorespInfo->K_ZAWARTOS; ?></td>
 								<?php $vKorespCostOut = number_format($vKorespInfo->COST, 2); ?>
-								<td class="cell-cost cell-cost-only_self"><?php echo $vKorespCostOut; ?></td>
+								<td class="cell-cost cell-cost-only_child"><?php echo $vKorespCostOut; ?></td>
+								<td>
+									<?php $dekretId = V::get('TRANSFER_OPPOSITE_ID_PROJECT', 0, $vKorespInfo) ?>
+									<?php if ($dekretId > 0) : ?>
+										Dekret z projektu nr <?php echo $dekretId; ?>
+									<?php endif; ?>
+								</td>
 							</tr>
 						<?php endforeach; ?>
 					</tbody>
@@ -416,8 +491,8 @@ jQuery(document).ready(function() {
 			$korespInfo->K_ZAWARTOS = $r->K_ZAWARTOS;
 			$monthNum = intval(substr($r->MONTH, 5, 2));
 			if ($r->TRANSFER_OPPOSITE_ID_PROJECT > 0) {
-				$korespInfo->COST = $r->INCOME;
-				$korespInfo->INCOME = $r->COST;
+				$korespInfo->COST = $r->COST;
+				$korespInfo->INCOME = $r->INCOME;
 				$korespInfo->TRANSFER_OPPOSITE_ID_PROJECT = $r->TRANSFER_OPPOSITE_ID_PROJECT;
 				$this->_costs[$r->TRANSFER_OPPOSITE_ID_PROJECT]->korespByMonth[$monthNum][] = $korespInfo;
 			} else if ($r->ID_PROJECT) {