Changeset 688 for trunk/Modules/Finance/UserState.php
- Timestamp:
- Sep 7, 2014, 2:48:21 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Modules/Finance/UserState.php
r627 r688 6 6 var $ShortTitle = 'Stav financí'; 7 7 var $ParentClass = 'PageFinance'; 8 9 function ShowFinanceOperation($Subject) 10 { 11 $UserOperationTableQuery = '((SELECT Text, Time, Value AS Value, File, BillCode, NULL AS PeriodFrom, NULL AS PeriodTo '. 12 'FROM FinanceOperation WHERE (Subject='.$Subject['Id'].')) UNION ALL '. 13 '(SELECT (SELECT GROUP_CONCAT(Description SEPARATOR ",") FROM FinanceInvoiceItem WHERE FinanceInvoice=FinanceInvoice.Id) AS Text, '. 14 'Time, -Value as Value, File, BillCode, PeriodFrom, PeriodTo FROM FinanceInvoice WHERE (Subject='.$Subject['Id'].')) ORDER BY Time DESC) AS T1'; 15 16 $Output = '<div style="text-align:center">Výpis finančních operací</div>'; 17 $DbResult = $this->Database->query('SELECT COUNT(*) FROM '.$UserOperationTableQuery.''); 18 $DbRow = $DbResult->fetch_row(); 19 $PageList = GetPageList($DbRow[0]); 20 21 $Output .= $PageList['Output']; 22 $Output .= '<table class="WideTable" style="font-size: small;">'; 23 24 $TableColumns = array( 25 array('Name' => 'Time', 'Title' => 'Datum'), 26 array('Name' => 'Description', 'Title' => 'Popis'), 27 array('Name' => 'Value', 'Title' => 'Částka [Kč]'), 28 array('Name' => 'Period', 'Title' => 'Období'), 29 array('Name' => 'Bill', 'Title' => 'Doklad'), 30 ); 31 $Order = GetOrderTableHeader($TableColumns, 'Time', 1); 32 $Output .= $Order['Output']; 33 34 $Query = 'SELECT * FROM '.$UserOperationTableQuery.' '.$Order['SQL'].$PageList['SQLLimit']; 35 36 $DbResult = $this->Database->query($Query); 37 $SumValue = 0; 38 while($Row = $DbResult->fetch_assoc()) 39 { 40 if($Row['Value'] == -0) $Row['Value'] = 0; 41 if($Row['Value'] > 0) $Row['Value'] = '+'.$Row['Value']; 42 if($Row['BillCode'] == '') $Row['BillCode'] = 'PDF'; 43 if($Row['File'] > 0) $Invoice = '<a href="'.$this->System->Link('/file?id='.$Row['File']).'">'.$Row['BillCode'].'</a>'; 44 else $Invoice = NotBlank($Row['BillCode']); 45 if($Row['PeriodFrom'] != '') $Period = HumanDate($Row['PeriodFrom']).' - '.HumanDate($Row['PeriodTo']); 46 else $Period = ' '; 47 $Output .= '<tr><td style="text-align: right;">'.HumanDate($Row['Time']).'</td>'. 48 '<td style="text-align: left;">'.$Row['Text'].'</td>'. 49 '<td style="text-align: right;">'.round($Row['Value'], 2).'</td>'. 50 '<td>'.$Period.'</td>'. 51 '<td>'.$Invoice.'</td></tr>'; 52 $SumValue = $SumValue + $Row['Value']; 53 } 54 $Output .= '</table>'; 55 $Output .= $PageList['Output']; 56 return($Output); 57 } 8 58 9 59 function Show() … … 30 80 } else return($this->SystemMessage('Chyba', 'Nejste zákazníkem')); 31 81 } 32 82 33 83 if(!array_key_exists('show', $_GET)) $_GET['show'] = ''; 34 $DbResult = $this->Database->query('SELECT Member.* , MemberPayment.MonthlyPlus AS MonthlyPlus'.84 $DbResult = $this->Database->query('SELECT Member.* '. 35 85 'FROM Member LEFT JOIN MemberPayment ON MemberPayment.Member=Member.Id WHERE Member.Subject='.$Subject['Id']); 36 if($DbResult->num_rows == 0) 86 if($DbResult->num_rows == 0) 37 87 { 38 return($this->SystemMessage('Položka nenalezena', 'Zákazník nenalezen')); 88 return($this->SystemMessage('Položka nenalezena', 'Zákazník nenalezen')); 39 89 } 40 90 $Member = $DbResult->fetch_assoc(); 41 91 $Output = '<table width="100%" border="0" cellspacing="0" cellpadding="3"><tr><td valign="top">'; 42 92 43 if(array_key_exists('year', $_GET)) 44 { 45 $DbResult = $this->Database->query('SELECT * FROM FinanceYear WHERE Id='.addslashes($_GET['year'] * 1)); 46 } else 47 { 48 $DbResult = $this->Database->query('SELECT * FROM FinanceYear ORDER BY Year DESC LIMIT 1'); 49 } 50 $FinanceYearSelected = $DbResult->fetch_assoc(); 51 $YearWhere = ' WHERE (Time >= "'.$FinanceYearSelected['DateStart'].'") AND (Time <= "'.$FinanceYearSelected['DateEnd'].'")'; 52 53 // Year list 54 if(array_key_exists('Subject', $_GET)) $SubjectParam = '&Subject='.($_GET['Subject'] * 1); 55 else $SubjectParam = ''; 56 $Output .= 'Roky: '; 57 $DbResult = $this->Database->query('SELECT * FROM FinanceYear WHERE Year >= '. 58 substr($Member['MembershipDate'], 0, strpos($Member['MembershipDate'], '-'))); 59 while($FinanceYear = $DbResult->fetch_assoc()) 60 { 61 $Year = '<a href="?year='.$FinanceYear['Id'].$SubjectParam.'">'.$FinanceYear['Year'].'</a> '; 62 if($FinanceYear['Id'] == $FinanceYearSelected['Id']) $Output .= '<strong>'.$Year.'</strong>'; 63 else $Output .= $Year; 64 } 65 $Output .= '<br/><br/>'; 66 67 // Account state 93 // Account state 68 94 $UserOperationTableQuery = '((SELECT Text, Time, Value AS Value, File, BillCode, NULL AS PeriodFrom, NULL AS PeriodTo '. 69 95 'FROM FinanceOperation WHERE (Subject='.$Subject['Id'].')) UNION ALL '. … … 73 99 $DbRow = $DbResult->fetch_array(); 74 100 $Total = $DbRow['Total']; 75 $Output .= 'Stav účtu: <strong>'.round($Total, 2).' Kč</strong <br /><br /><br/>';76 101 $Output .= 'Stav účtu: <strong>'.round($Total, 2).' Kč</strong><br /><br />'; 102 77 103 // Tabulka operaci 78 $Output .= 'Výpis operací pro subjekt '.$Subject['Name'].':<br />'; 79 $Output .= '<table style="font-size: smaller;" class="WideTable"><tr>'. 80 '<th>Datum</th><th>Popis</th><th>Částka</th><th>Období</th><th>Doklad</th></tr>'; 81 $Operations = array(); 82 $DbResult = $this->Database->query('SELECT T1.* FROM '.$UserOperationTableQuery.$YearWhere); 83 while($DbRow = $DbResult->fetch_array()) 84 $Operations[] = $DbRow; 85 $SumValue = 0; 86 foreach($Operations as $Row) 87 { 88 if($Row['Value'] == -0) $Row['Value'] = 0; 89 if($Row['Value'] > 0) $Row['Value'] = '+'.$Row['Value']; 90 if($Row['BillCode'] == '') $Row['BillCode'] = 'PDF'; 91 if($Row['File'] > 0) $Invoice = '<a href="'.$this->System->Link('/file?id='.$Row['File']).'">'.$Row['BillCode'].'</a>'; 92 else $Invoice = NotBlank($Row['BillCode']); 93 if($Row['PeriodFrom'] != '') $Period = HumanDate($Row['PeriodFrom']).' - '.HumanDate($Row['PeriodTo']); 94 else $Period = ' '; 95 $Output .= '<tr><td style="text-align: right;">'.HumanDate($Row['Time']).'</td>'. 96 '<td style="text-align: left;">'.$Row['Text'].'</td>'. 97 '<td style="text-align: right;">'.round($Row['Value'], 2).'</td>'. 98 '<td style="text-align: center;">'.$Period.'</td>'. 99 '<td style="text-align: center;">'.$Invoice.'</td></tr>'; 100 $SumValue = $SumValue + $Row['Value']; 101 } 102 $Output .= '<tr><td style="text-align: right;" colspan="2"><strong>Celkem za rok</strong></td>'. 103 '<td style="text-align: right;"><strong>'.round($SumValue, 2).'</strong></td>'. 104 '<td style="text-align: center;"> </td>'. 105 '<td style="text-align: center;"> </td></tr>'; 106 107 $Output .= '</table>'; 104 $Output .= $this->ShowFinanceOperation($Subject); 105 108 106 $Output .= '</td><td valign="top">'; 109 107 110 $Output .= 'Variabilní symbol pro platby: <strong>'.$Subject['Id'].'</strong><br><br>'; 108 $DbResult = $this->Database->query('SELECT FinanceBankAccount.*, CONCAT(FinanceBankAccount.Number, "/", FinanceBank.Code) AS NumberFull FROM FinanceBankAccount '. 109 'JOIN FinanceBank ON FinanceBank.Id=FinanceBankAccount.Bank '. 110 'WHERE (FinanceBankAccount.`Subject`='.$this->System->Config['Finance']['MainSubjectId'].') AND (FinanceBankAccount.`Use`=1)'); 111 $SubjectFromAccount = $DbResult->fetch_assoc(); 112 $Account = $SubjectFromAccount['NumberFull']; 113 114 $Output .= 'Účet pro platby: <strong>'.$Account.'</strong><br/>'; 115 $Output .= 'Variabilní symbol pro platby: <strong>'.$Subject['Id'].'</strong><br/>'; 116 $Output .= 'Subjekt: <strong>'.$Subject['Name'].'</strong><br/>'; 117 $Output .= '<br/>'; 111 118 112 119 $Total = 0; … … 121 128 $Total += $DbRow['Price']; 122 129 } 123 124 if($Member['MonthlyPlus'] != 0) 125 { 126 $Output .= '<tr><td>Příjem za spotřebu</td><td>'.(-$Member['MonthlyPlus']).'</td></tr>'; 127 $Total -= $Member['MonthlyPlus']; 128 } 130 129 131 $Output .= '<tr><td><strong>Celkem</strong></td><td><strong>'.$Total.'</strong></td></tr></table>'; 130 132 //echo('Tarif pro příští měsíc: '.$Tarify[$Row2['inet_tarif_next']]['name'].'<br><br>'); 131 133 $Output .= '<br />'; 132 133 if($Member['MonthlyPlus'] != 0) 134 { 135 $Output .= 'Měsíční příjem za spotřebu zařízení umístěných u uživatele:<br>'; 136 $Output .= '<table class="WideTable"><tr><th>Název zařízení</th><th>Spotřeba [W]</th><th>Příjem [Kč]</th></tr>'; 137 $DbResult = $this->Database->query('SELECT Product.Name AS Name, Product.Consumption AS Consumption '. 138 'FROM StockItem JOIN Product ON Product.Id = StockItem.Product '. 139 'WHERE (StockItem.Location='.$Member['Id'].') AND (StockItem.TimeElimination IS NULL)'); 140 $TotalW = 0; 141 $TotalPrice = 0; 142 while($Row = $DbResult->fetch_assoc()) 143 { 144 $Output .= '<tr><td>'.$Row['Name'].'</td><td>'.$Row['Consumption'].'</td><td>'.$this->System->Modules['Finance']->W2Kc($Row['Consumption']).'</td></tr>'; 145 $TotalW += $Row['Consumption']; 146 $TotalPrice += $this->System->Modules['Finance']->W2Kc($Row['Consumption']); 147 } 148 $Output .= '<tr><td><strong>Celkem</strong></td><td><strong>'.$TotalW.'</strong></td><td><strong>'.$TotalPrice.'</strong></td></tr>'; 149 $Output .= '</table>'; 150 } 134 151 135 $Output .= '</td></tr></table>'; 152 136 return($Output);
Note:
See TracChangeset
for help on using the changeset viewer.