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

added profit fv in Budget for pro-netmedia

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

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

@@ -157,7 +157,7 @@ dostęp dla zarządu i os. odp.	kwota końcowa
 				foreach ($data['fvToOrdersRaw'] as $fv) {
 					$labelOrder = $fv['ORDER_NR'];
 					foreach ($data['costs'] as $idx => $cost) {
-						// if ('order' == $cost['_type'] && 'ZATWIERDZONE' == $cost['order_approve_status']) {// TEST
+						// if ('order' == $cost['_type'] && 'ZATWIERDZONE' == $cost['order_approve_status']) // TEST
 						// OCZEKUJE_ZATWIERDZENIA, OCZEKUJE_OSTATECZNEGO_ZATWIERDZENIA
 						if ('order' == $cost['_type'] && $labelOrder == $cost['order_nr']) {
 							$idKoresp = $fv['ID'];
@@ -208,6 +208,33 @@ dostęp dla zarządu i os. odp.	kwota końcowa
 				}
 			}
 
+			$data['profitFvRaw'] = DB::getPDO()->fetchAll("
+				select k.ID
+							, k.K_DATA_OTRZYMANEJ_KORESP as data
+							, k.K_NR_OTRZYM_KORESP as obcy_nr_koresp
+							, k.INCOME_VALUE as profit
+				from IN7_DZIENNIK_KORESP k
+				where k.A_STATUS != 'DELETED'
+					and k.INCOME_VALUE != 0
+					and k.K_TYP_KORESP = 'OUT'
+			");
+			foreach ($data['profitFvRaw'] as $fv) {
+				$item = array(
+					'_type' => 'profit_fv',
+					'data' => $fv['data'],
+					'sum' => (-1 * $fv['profit']),
+					'profit_fv_value' => $fv['profit'],
+					'label' => $fv['obcy_nr_koresp'],
+					'costRaw' => $fv
+				);
+				$data['costs'][] = $item;
+			}
+			if (V::get('DBG_PROFIT_FV', '', $_GET)>0) {// DBG
+				$data['costs'][] = array('_type'=>'profit_fv', 'data'=>date("Y-m-d"), 'profit_fv_value'=>100, 'sum'=>-100, 'label'=>"TEST/FV/1", 'costRaw'=>array());// TODO: DBG
+				$data['costs'][] = array('_type'=>'profit_fv', 'data'=>date("Y-m-d"), 'profit_fv_value'=>150, 'sum'=>-150, 'label'=>"TEST/FV/2", 'costRaw'=>array());// TODO: DBG
+				$data['costs'][] = array('_type'=>'profit_fv', 'data'=>'2016-09-01', 'profit_fv_value'=>200, 'sum'=>-200, 'label'=>"TEST/FV/3", 'costRaw'=>array());// TODO: DBG
+			}
+
 			// order $data['costs'] by `data`, then by `ID` for the same `_type` else: order, project_cost, koresp
 			usort($data['costs'], function($a, $b) {
 				if ($a['data'] == $b['data']) {
@@ -341,7 +368,7 @@ dostęp dla zarządu i os. odp.	kwota końcowa
 		<thead>
 			<tr>
 				<td rowspan="5" colspan="1" style="width:80px; text-align:center; vertical-align:middle">data</td>
-				<td rowspan="1" colspan="5" style="padding:0">
+				<td rowspan="1" colspan="6" style="padding:0">
 					<table class="table table-bordered" style="width:100%; margin:0; border:0">
 						<tr>
 							<td rowspan="1" colspan="1" style="text-align:center; vertical-align:middle; border-top:0; border-left:0">data rozpoczęcia umowy</td>
@@ -365,6 +392,7 @@ dostęp dla zarządu i os. odp.	kwota końcowa
 				<td rowspan="3" colspan="2" style="text-align:center; vertical-align:middle">Koszty projektu</td>
 			</tr>
 			<tr>
+				<td rowspan="1" colspan="1" style="text-align:center; vertical-align:middle">Sprzedaż</td>
 				<td rowspan="1" colspan="1" style="text-align:center; vertical-align:middle">Kwota Umowy (netto)</td>
 				<td rowspan="1" colspan="1" style="text-align:center; vertical-align:middle">Aneks (netto)</td>
 				<td rowspan="1" colspan="1" style="text-align:center; vertical-align:middle">kary, potrącenia (netto)</td>
@@ -372,6 +400,7 @@ dostęp dla zarządu i os. odp.	kwota końcowa
 				<td rowspan="1" colspan="1" style="text-align:center; vertical-align:middle">Materiały</td>
 			</tr>
 			<tr>
+				<th rowspan="2" colspan="1" style="text-align:center; vertical-align:middle; white-space:nowrap; border-bottom:none"><span id="p5Budget__profit_fv" style="font-size:11px; font-weight:normal; white-space:nowrap"></span></th>
 				<th rowspan="2" colspan="1" style="text-align:center; vertical-align:middle; white-space:nowrap; border-bottom:none"><?php echo UI::price($data['budget']); ?><br><span id="p5Budget__zysk_strata" style="font-size:11px; font-weight:normal; white-space:nowrap"></span></th>
 				<th rowspan="2" colspan="1" style="text-align:center; vertical-align:middle; white-space:nowrap; border-bottom:none" id="p5Budget__aneks"></th>
 				<th rowspan="2" colspan="1" style="text-align:center; vertical-align:middle; white-space:nowrap; border-bottom:none" id="p5Budget__kary"></th>
@@ -394,6 +423,7 @@ dostęp dla zarządu i os. odp.	kwota końcowa
 				<td rowspan="1" colspan="1" style="text-align:center; vertical-align:middle; border-bottom:none">zajętość pasa drogowego</td>
 			</tr>
 			<tr>
+				<td rowspan="1" colspan="1" style="padding:0; text-align:center; vertical-align:middle; border-top:none"></td>
 				<td rowspan="1" colspan="1" style="padding:0; text-align:center; vertical-align:middle; border-top:none"></td>
 				<td rowspan="1" colspan="1" style="padding:0; text-align:center; vertical-align:middle; border-top:none"><button onClick="return p5UI__Clickable(this, 'p5:Budget:addCost', {type: 'ANEKS'})" class="btn btn-link" style="padding:0"><i class="glyphicon glyphicon-plus-sign"></i></button></td>
 				<td rowspan="1" colspan="1" style="padding:0; text-align:center; vertical-align:middle; border-top:none"><button onClick="return p5UI__Clickable(this, 'p5:Budget:addCost', {type: 'KARY'})" class="btn btn-link" style="padding:0"><i class="glyphicon glyphicon-plus-sign"></i></button></td>
@@ -495,6 +525,14 @@ dostęp dla zarządu i os. odp.	kwota końcowa
 			if(_dbg)console.log('karyValue', karyValue);
 			budget__renderNodePrice('p5Budget__kary', karyValue);
 		}
+		{
+			var profitFvValue = costs.reduce(function (prevValue, currCost) {
+				if ('profit_fv' != currCost['_type']) return prevValue;
+				return prevValue + currCost['profit_fv_value'];
+			}, 0);
+			if(_dbg)console.log('profitFvValue', profitFvValue);
+			budget__renderNodePrice('p5Budget__profit_fv', profitFvValue);
+		}
 
 		p5Utils__clearNode(_tbody);
 		var costNodes = costs.map(function(cost) {
@@ -507,6 +545,22 @@ dostęp dla zarządu i os. odp.	kwota końcowa
 			tdNode.appendChild(document.createTextNode(cost['data']))
 			costNode.appendChild(tdNode)
 
+			// <td><?php echo UI::price($cost['budget_profit_fv']); ?></td>
+			tdNode = document.createElement('td')
+			tdNode.setAttribute('style', 'white-space:nowrap')
+			tdNode.appendChild(document.createTextNode(p5Utils__pricePrintPL(cost['profit_fv_value'], '0,00')))
+			tdNode.style.color = '#999'
+			if ('profit_fv' == cost['_type']) {
+				// <div style="white-space: nowrap; color: rgb(153, 153, 153);">nr: 131/MKL/8/2016/9/VIII/2016</div>
+				var cellProfitFvNode = document.createElement('small')
+				cellProfitFvNode.style.display = 'block'
+				cellProfitFvNode.style.whiteSpace = 'nowrap'
+				cellProfitFvNode.style.color = '#999'
+				cellProfitFvNode.appendChild(document.createTextNode('FV: ' + cost['label']))
+				tdNode.appendChild(cellProfitFvNode)
+			}
+			costNode.appendChild(tdNode)
+
 			// <td><?php echo UI::price($cost['budget_minus_sum']); ?></td>
 			tdNode = document.createElement('td')
 			tdNode.setAttribute('style', 'white-space:nowrap')