Changeset 479 for trunk/finance


Ignore:
Timestamp:
Feb 5, 2013, 9:45:44 PM (12 years ago)
Author:
chronos
Message:
  • Přidáno: Tabulka pro přiřazení více služeb jednomu zákazníkovi. Původní data jsou převedena do nové struktury. Tabulka Service je společná pro všechny typy služeb a pro každou službu se zobrazí nebo vyplní pouze určité použitelné sloupce.
  • Opraveno: Korekce názvů modulů na názvy začínající slovem Module.
Location:
trunk/finance
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/finance/clenove.php

    r438 r479  
    1414
    1515    $Output = 'Seznam účastníků:<br/>';
    16     $Query = 'SELECT MonthlyTotal, Cash, Subject.Id, Subject.WWW, Subject.Note, Subject.Name, NetworkDevice, InternetTariffCurrentMonth, InternetTariffNextMonth, User.Name AS FullName FROM MemberPayment LEFT JOIN Member ON Member.Id=MemberPayment.Member LEFT JOIN Subject ON Subject.Id=Member.Subject JOIN User ON User.Id=Member.ResponsibleUser';
     16    $Query = 'SELECT MonthlyTotal, Cash, Subject.Id, Subject.WWW, Subject.Note, '.
     17      'Subject.Name, NetworkDevice, '.
     18      '(SELECT GROUP_CONCAT(Service.Name) FROM ServiceCustomerRel LEFT JOIN Service '.
     19      'ON Service.Id=ServiceCustomerRel.Service WHERE ServiceCustomerRel.Customer=Member.Id AND ServiceCustomerRel.Period=0) AS ServicesCurrentMonth, '.
     20      '(SELECT GROUP_CONCAT(Service.Name) FROM ServiceCustomerRel LEFT JOIN Service '.
     21      'ON Service.Id=ServiceCustomerRel.Service WHERE ServiceCustomerRel.Customer=Member.Id AND ServiceCustomerRel.Period=1) AS ServicesNextMonth, '.
     22      'User.Name AS FullName FROM MemberPayment LEFT JOIN Member ON '.
     23      'Member.Id=MemberPayment.Member LEFT JOIN Subject ON Subject.Id=Member.Subject '.
     24      'JOIN User ON User.Id=Member.ResponsibleUser';
    1725    $DbResult = $this->Database->query('SELECT COUNT(*) FROM ('.$Query.') AS T');
    1826    $DbRow = $DbResult->fetch_row();
     
    2735      array('Name' => 'MonthlyTotal', 'Title' => 'Měsíční poplatek [Kč]'),
    2836      array('Name' => 'Cash', 'Title' => 'Stav účtu [Kč]'),
    29       array('Name' => 'InternetTariffCurrentMonth', 'Title' => 'Běžící tarif'),
    30       array('Name' => 'InternetTariffNextMonth', 'Title' => 'Příští tarif'),
     37      array('Name' => 'ServicesCurrentMonth', 'Title' => 'Běžící tarif'),
     38      array('Name' => 'ServicesNextMonth', 'Title' => 'Příští tarif'),
    3139      array('Name' => 'Note', 'Title' => 'Poznámky'),
    3240      array('Name' => 'WWW', 'Title' => 'WWW'),
     
    4654      $TotalCash += $Row['Cash'];
    4755      if($Row['Cash'] < 0) $Row['Cash'] = '<span style="color: red;">'.$Row['Cash'].'</span>';
    48       $Tarif = $Finance->Tariffs[$Row['InternetTariffCurrentMonth']]['Name'];
    49       $PristiTarif = $Finance->Tariffs[$Row['InternetTariffNextMonth']]['Name'];
     56      $Tarif = $Row['ServicesCurrentMonth'];
     57      $PristiTarif = $Row['ServicesNextMonth'];
    5058      $Output .= '<tr><td>'.$Row['FullName'].'</td><td><a href="user_state.php?Subject='.$Row['Id'].'">'.$Row['Name'].'</a></td>';
    5159      //<td align="right">'.$Row['network_device'].'</td>
  • trunk/finance/finance.php

    r458 r479  
    22
    33define('TARIFF_FREE', 7);
     4define('INVOICE_DUE_DAYS', 15);
     5define('INVOICE_OUT_DOC_LINE', 6);
    46
    57class Finance extends Module
     
    3032  {
    3133    $this->Tariffs = array();
    32     $DbResult = $this->Database->select('FinanceTariff', '*', 'ReplaceId IS NULL ORDER BY SpeedMax');
     34    $DbResult = $this->Database->select('Service', '*', 'ReplaceId IS NULL ORDER BY InternetSpeedMax');
    3335    while($Tariff = $DbResult->fetch_array())
    3436    {
    35       $Tariff['SpeedMin'] = $Tariff['SpeedMin'] * 1024;
    36       $Tariff['SpeedMax'] = $Tariff['SpeedMax'] * 1024;
     37      $Tariff['InternetSpeedMin'] = $Tariff['InternetSpeedMin'] * 1024;
     38      $Tariff['InternetSpeedMax'] = $Tariff['InternetSpeedMax'] * 1024;
    3739      $this->Tariffs[$Tariff['Id']] = $Tariff;
    3840    } 
     
    5052    foreach($this->Tariffs as $Index => $Tariff)
    5153    {
    52       $DbResult = $this->Database->select('Member', 'COUNT(*)', '(InternetTariffCurrentMonth='.$Index.') AND (BillingPeriod > 1) AND (Blocked=0)');
     54      $DbResult = $this->Database->query('SELECT COUNT(*) FROM Member '.
     55        'LEFT JOIN ServiceCustomerRel ON ServiceCustomerRel.Customer=Member.Id '.
     56        '(ServiceCustomerRel.Service='.$Index.') AND (Member.BillingPeriod > 1) AND (Member.Blocked=0)');
    5357      $Row = $DbResult->fetch_row();
    54       $this->Tariffs[$Index]['MemberCount'] = $Row[0];
    55       $Tariffs['MemberCount'] = $Row[0];
     58      $this->Tariffs[$Index]['CustomerCount'] = $Row[0];
     59      $Tariffs['CustomerCount'] = $Row[0];
    5660     
    5761      //echo($Tariff['Name'].' '.$Tariff['MemberCount'].' '.$Tariff['SpeedMax'] * $Tariff['MemberCount'].' '.$ResidualSpeed.'<br />');
    58       switch($Tariff['Group'])
     62      switch($Tariff['Category'])
    5963      {
    6064        case 1:
    61           $TotalMemberCount += $Tariff['MemberCount'];
    62           $TotalMaxSpeed += $Tariff['SpeedMax'] * $Tariff['MemberCount'];
     65          $TotalMemberCount += $Tariff['CustomerCount'];
     66          $TotalMaxSpeed += $Tariff['InternetSpeedMax'] * $Tariff['CustomerCount'];
    6367          break;
    6468        case 2:
    65           $ResidualSpeed -= $Tariff['SpeedMin'] * $Tariff['MemberCount'];
     69          $ResidualSpeed -= $Tariff['InternetSpeedMin'] * $Tariff['CustomerCount'];
    6670          break;
    6771        case 3:
     
    7579    foreach($this->Tariffs as $Index => $Tariff)
    7680    {
    77       switch($Tariff['Group'])
     81      switch($Tariff['Category'])
    7882      {
    7983        case 1:
    8084          // Přepočítávání rychlostí koliduje s rozdílovým zapisováním stromu front do mikrotiku. Vždy při změně počtu počítačů či domácností docházelo ke změně minima a přepočtu všeho.
    81           //$Tariff['SpeedMin'] = round($Tariff['SpeedMax'] * $Aggregation);
     85          //$Tariff['InternetSpeedMin'] = round($Tariff['InternetSpeedMax'] * $Aggregation);
    8286          break;
    8387        case 2:
     
    8690          break;
    8791      }
    88       //echo('MinSpeed: '.$Tariff['SpeedMin'].'<br />');
    89       $this->Database->update('FinanceTariff', 'Id='.$Tariff['Id'], array('SpeedMin' => ($Tariff['SpeedMin'] / 1024), 'MemberCount' => $Tariff['MemberCount']));
     92      //echo('MinSpeed: '.$Tariff['InternetSpeedMin'].'<br />');
     93      $this->Database->update('Service', 'Id='.$Tariff['Id'],
     94        array('InternetSpeedMin' => ($Tariff['InternetSpeedMin'] / 1024),
     95        'CustomerCount' => $Tariff['CustomerCount']));
    9096    }
    9197    $this->LoadTariffs();
  • trunk/finance/manage.php

    r477 r479  
    355355        if($Period['From'] > $Member['UNIX_TIMESTAMP(Member.BillingPeriodLastDate)'])
    356356        {
    357           $this->Database->update('Member', 'Id='.$Member['Id'], array('BillingPeriod' => $Member['BillingPeriodNext'], 'InternetTariffCurrentMonth' => $Member['InternetTariffNextMonth']));
     357          $this->Database->update('Member', 'Id='.$Member['Id'],
     358            array('BillingPeriod' => $Member['BillingPeriodNext']));
    358359          $Member['BillingPeriod'] = $Member['BillingPeriodNext'];
    359           $Member['InternetTariffCurrentMonth'] = $Member['InternetTariffNextMonth'];
    360360        }
    361361        $Period = $this->GetBillingPeriod($Member['BillingPeriod']);
    362         $PayPerPeriod = $Member['MonthlyTotal'] * $Period['MonthCount'];
    363362        if(($Period['From'] > $Member['UNIX_TIMESTAMP(Member.BillingPeriodLastDate)']) and ($Member['InternetTariffCurrentMonth'] != TARIFF_FREE) and ($PayPerPeriod > 0) and
    364363        ($Member['Blocked'] == 0))
    365364        {
    366           //echo($Mesic.'%'.$MonthCount.'='.($Mesic % $MonthCount).' ');                 
     365          $BillItems = array();
     366          $MonthlyTotal = 0;
     367          $DbResult2 = $this->Database->query('(SELECT Service.* FROM ServiceCustomerRel LEFT JOIN Service '.
     368            'ON Service.Id=ServiceCustomerRel.Service WHERE ServiceCustomerRel.Customer='.$Member['Id'].') AND (ServiceCustomerRel.Period=0)');
     369          while($Service = $DbResult2->fetch_assoc())
     370          {
     371            $BillItems[] = array('Description' => $Service['Name'], 'Price' => $Service['Price'],
     372            'Quantity' => $Period['MonthCount']);
     373            $MonthlyTotal += $ServicePrice['Price'];
     374            $this->Database->update('ServiceCustomerRel', 'Id='); 
     375          }
     376          if($Member['Hire'] != 0)
     377          {
     378            $Output .= '<tr><td>Nájem</td><td>'.(-$Member['Hire']).'</td></tr>';
     379            $MonthlyTotal -= $Member['Hire'];
     380          }
     381          if($Member['MonthlyPlus'] != 0)
     382          {
     383            $MonthlyTotal -= $Member['MonthlyPlus'];
     384          }
     385          $PayPerPeriod = $MonthlyTotal * $Period['MonthCount'];
     386   
     387//echo($Mesic.'%'.$MonthCount.'='.($Mesic % $MonthCount).' ');                 
    367388          $TimePeriodText = date('j.n.Y', $Period['From']).' - '.date('j.n.Y', $Period['To']);
    368           $Output .= $TimePeriodText.': '.$Member['MonthlyTotal'].' * '.$Period['MonthCount'].' = '.$PayPerPeriod.'<br />';
    369           $BillCode = $Finance->GetNextDocumentLineNumber(6); // Faktury vydané
     389          $Output .= $TimePeriodText.': '.$MonthlyTotal.' * '.$Period['MonthCount'].' = '.$PayPerPeriod.'<br />';
     390          $BillCode = $Finance->GetNextDocumentLineNumber(INVOICE_OUT_DOC_LINE);
    370391          $BillId = $this->System->Modules['Bill']->CreateBill($Member['Subject'],
    371             array(array('Description' => 'Připojení k Internetu', 'Price' => $PayPerPeriod,
    372             'Quantity' => 1)), time(), time() + 3600 * 24 * 15, $BillCode, $Period['From'], $Period['To']);
     392            $BillItems, time(), time() + 3600 * 24 * INVOICE_DUE_DAYS, $BillCode, $Period['From'], $Period['To']);
    373393          $this->Database->insert('FinanceClaimsLiabilities', array('Value' => $PayPerPeriod,
    374394            'Subject' => $Member['Subject'], 'TimeCreation' => 'NOW()',
    375             'TimeDue' => 'DATE_ADD(NOW(), INTERVAL 15 DAY)',
    376             'Text' => 'Připojení k Internetu za období '.$TimePeriodText,
     395            'TimeDue' => 'DATE_ADD(NOW(), INTERVAL '.INVOICE_DUE_DAYS.' DAY)',
     396            'Text' => 'Vyúčtování služeb za období '.$TimePeriodText,
    377397            'Bill' => $BillId, 'BillCode' => $BillCode));
    378398          $Output .= $this->SendPaymentEmail($Member['Id']);
     
    392412      $this->Database->insert('FinanceMonthlyOverall', array('Date' => 'NOW()', 'Money' => $Finance->Internet, 'kWh' => $Finance->kWh, 'Administration' => $Finance->Sprava, 'AdministrationTotal' => $SpravaCelkem, 'ConsumptionTotal' => $TotalConsumptionCost, 'TotalPaid' => $Finance->TotalPaid, 'BaseTariffPrice' => $Charge['BaseTariffPrice'], 'TopTariffPrice' => $Charge['TopTariffPrice'], 'MemberCount' => $Finance->InternetUsers));
    393413
    394       // Update tarrifs
     414      // Update services
    395415      $Output .= 'Měním aktuální tarify....<br>';
    396       $DbResult = $this->Database->select('FinanceTariff', '*', '`ReplaceId` IS NOT NULL');
    397       while($Tariff = $DbResult->fetch_array())
     416      $DbResult = $this->Database->select('Service', '*', '`ReplaceId` IS NOT NULL');
     417      while($Service = $DbResult->fetch_array())
    398418      {
    399         $this->Database->update('FinanceTariff', 'Id='.$Tariff['ReplaceId'], array('Name' => $Tariff['Name'],
    400           'UploadAsymmetry' => $Tariff['UploadAsymmetry'], 'MemberCount' => $Tariff['MemberCount'],
    401           'Group' => $Tariff['Group'], 'SpeedMin' => $Tariff['SpeedMin'],
    402           'SpeedMax' => $Tariff['SpeedMax'], 'Price' => $Tariff['Price']));
     419        $Service['Id'] = $Service['ReplaceId'];
     420        $Service['ReplaceId'] = '';
     421        $this->Database->update('Service', 'Id='.$Service['ReplaceId'], $Service);
    403422      }
    404       $this->Database->delete('FinanceTariff', '`ReplaceId` IS NOT NULL');
     423      $this->Database->delete('Service', '`ReplaceId` IS NOT NULL');
    405424
    406425      $Finance->RecalculateMemberPayment();
     
    429448    $DbResult = $this->Database->select('User', '*', 'Id='.$Member['ResponsibleUser']);   
    430449    $User = $DbResult->fetch_assoc();
     450   
     451    $DbResult = $this->Database->select('Subject', '*', '`Id`='.$Config['Finance']['MainSubjectId']);
     452    $MainSubject = $DbResult->fetch_assoc(); 
     453   
     454    $DbResult = $this->Database->select('FinanceBankAccount', '*', '(`Subject`='.
     455      $Config['Finance']['MainSubjectId'].') AND (`Use`=1)');
     456    $MainSubjectAccount = $DbResult->fetch_assoc();
    431457       
    432458    if($User['Email'] != '')
    433459    {
    434460      $Title = 'Pravidelné vyúčtování služeb';
    435       $Content = 'Vyúčtovaní subjektu <strong>'.$Subject['Name'].'</strong> zastoupeného uživatelem <strong>'.$User['Name'].'</strong> ke dni <strong>'.$this->System->HumanDate(time()).'</strong>.<br /><br />'."\n".
    436         'Váš aktuální tarif: <strong>'.$this->System->Modules['Finance']->Tariffs[$Member['InternetTariffCurrentMonth']]['Name'].' '.$this->System->AddPrefixMultipliers($this->System->Modules['Finance']->Tariffs[$Member['InternetTariffCurrentMonth']]['SpeedMax'], 'bit/s', 3, 'Binary').'</strong><br />'."\n".
     461      $Content = 'Vyúčtovaní zákazníka <strong>'.$Subject['Name'].'</strong> zastoupeného uživatelem <strong>'.$User['Name'].'</strong> ke dni <strong>'.$this->System->HumanDate(time()).'</strong>.<br /><br />'."\n".
     462        'Váše aktuální služby: ';
     463      $DbResult = $this->Database->query('SELECT GROUP_CONCAT(Service.Name) AS Name FROM ServiceCustomerRel LEFT JOIN Service '.
     464      'ON Service.Id=ServiceCustomerRel.Service WHERE ServiceCustomerRel.Customer='.$Member['Id'].' AND ServiceCustomerRel.Period=0');
     465        $Service = $DbRow->fetch_assoc();
     466      $Content .= '<strong>'.$Service['Name'].'</strong><br />'."\n".
    437467        'Vaše platební období: <strong>'.$this->System->Modules['Finance']->BillingPeriods[$Member['BillingPeriod']]['Name'].'</strong><br />'."\n".
    438468        'Pravidelná platba za období: <strong>'.$MemberPayment['MonthlyTotal'].' Kč</strong><br />'."\n".
    439         'Bankovní účet: <strong>2600134781 / 2010</strong> (EUR Slovensko 2600134781 / 8330, Fio banka)<br/>'."\n".
     469        'Bankovní účet: <strong>'.$MainSubjectAccount['Number'].'<br/>'."\n".
    440470        'Variabilní symbol: <strong>'.$Member['Subject'].'</strong><br/>'."\n".
    441471        'Stav vašeho účtu: <strong>'.($MemberPayment['Cash'] - $MemberPayment['MonthlyTotal']).' Kč</strong><br /><br />'."\n";
  • trunk/finance/tarify.php

    r452 r479  
    2424    foreach($Finance->Tariffs as $Index => $Tariff)
    2525    {
    26       $Tariff['Aggregation'] = '1:'.round($Tariff['SpeedMax'] / $Tariff['SpeedMin']);
    27       $Output .= '<tr><td style="color: blue;">'.$Tariff['Name'].'</td><td align="center">'.round($Tariff['SpeedMin'] / 1024).'</td><td align="center" style="color: blue;">'.round($Tariff['SpeedMax'] / 1024).'</td><td align="center">'.$Tariff['Aggregation'].'</td><td align="center">'.$Tariff['MemberCount'].'</td><td align="center" style="color: blue;">'.$Tariff['Price'].'</td><td align="center">'.$Tariff['MemberCount'] * $Tariff['Price'].'</td></tr>';
    28       $TotalPrice = $TotalPrice + $Tariff['Price'] * $Tariff['MemberCount'];
    29       $TotalMemberCount = $TotalMemberCount + $Tariff['MemberCount'];
     26      $Tariff['Aggregation'] = '1:'.round($Tariff['InternetSpeedMax'] / $Tariff['InternetSpeedMin']);
     27      $Output .= '<tr><td style="color: blue;">'.$Tariff['Name'].'</td><td align="center">'.round($Tariff['InternetSpeedMin'] / 1024).'</td><td align="center" style="color: blue;">'.round($Tariff['InternetSpeedMax'] / 1024).'</td><td align="center">'.$Tariff['Aggregation'].'</td><td align="center">'.$Tariff['CustomerCount'].'</td><td align="center" style="color: blue;">'.$Tariff['Price'].'</td><td align="center">'.$Tariff['CustomerCount'] * $Tariff['Price'].'</td></tr>';
     28      $TotalPrice = $TotalPrice + $Tariff['Price'] * $Tariff['CustomerCount'];
     29      $TotalMemberCount = $TotalMemberCount + $Tariff['CustomerCount'];
    3030    }
    3131    $Output .= '<tr><td>Součty</td><td colspan="3">&nbsp;</td><td align="center">'.$TotalMemberCount.'</td><td>&nbsp;</td><td align="center">'.$TotalPrice.'</td></tr>';
  • trunk/finance/user_state.php

    r456 r479  
    3535      'FROM Member LEFT JOIN MemberPayment ON MemberPayment.Member=Member.Id WHERE Member.Subject='.$Subject['Id']);
    3636    $Member = $DbResult->fetch_assoc();
    37     $TarifName = $Finance->Tariffs[$Member['InternetTariffCurrentMonth']]['Name'];
    38     $TarifPrice = $Finance->Tariffs[$Member['InternetTariffCurrentMonth']]['Price'];
    3937    $Output = '<table width="100%" border="0" cellspacing="0" cellpadding="3"><tr><td valign="top">';
    4038
     
    8987      $SumValue = $SumValue + $Row['Value'];
    9088    }
    91       $Output .= '<tr><td style="text-align: right;" colspan="2"><strong>Celkem za rok</strong></td><td style="text-align: right;"><strong>'.$SumValue.'</strong></td><td style="text-align: center;">&nbsp;</td></tr>';
     89    $Output .= '<tr><td style="text-align: right;" colspan="2"><strong>Celkem za rok</strong></td><td style="text-align: right;"><strong>'.$SumValue.'</strong></td><td style="text-align: center;">&nbsp;</td></tr>';
    9290   
    9391   
     
    10098    $Total = 0;
    10199    $Output .= 'Rozpis měsíčního poplatku:<br><table class="WideTable">'.
    102       '<tr><th>Část</th><th>Cena [Kč]</th></tr>'.
    103       '<tr><td>Internet - tarif '.$TarifName.'</td><td>'.$TarifPrice.'</td></tr>';
    104     $Total += $TarifPrice;
     100      '<tr><th>Služba</th><th>Cena [Kč]</th></tr>';
     101    $DbResult = $this->Database->query('SELECT Service.Name, Service.Price FROM ServiceCustomerRel LEFT JOIN Service '.
     102      'ON Service.Id=ServiceCustomerRel.Service WHERE (ServiceCustomerRel.Customer='.$Member['Id'].') AND (ServiceCustomerRel.Period=0)');
     103    while($DbRow = $DbResult->fetch_assoc())
     104    {
     105          $Output .= '<tr><td>'.$DbRow['Name'].'</td><td>'.$DbRow['Price'].'</td></tr>';
     106      $Total += $DbRow['Price'];
     107    }
     108   
    105109    if($Member['Hire'] != 0)
    106110    {
  • trunk/finance/zivnost.php

    r454 r479  
    291291        break;
    292292      case 'SubjectAccount':
     293        $Output .= '<table style="width: 100%"><tr><td style="vertical-align: top;">';
    293294        $Output .= '<strong>Výpis příjmů/výdajů</strong>';
    294295        $Output .= '<table style="font-size: smaller;" border="1" cellspacing="0" cellpadding="3">';
    295         $Output .= '<tr><th>Datum</th><th>Název</th><th>Hodnota [Kč]</th></tr>';
    296         $DbResult = $this->Database->select('FinanceCashFlow', '*', 'Subject='.$_GET['Id']);
    297         while($Row = $DbResult->fetch_array())
    298         {
    299           $Output .= '<tr><td>'.$Row['Time'].'</td><td>'.$Row['Text'].'</td><td>'.$Row['Value'].'</td><td>'.$Row['Bill'].'</td></tr>';
    300         }
    301         $Output .= '</table><br />';
     296        $Output .= '<tr><th>Datum</th><th>Název</th><th>Hodnota [Kč]</th><th>Doklad</th></tr>';
     297        $DbResult = $this->Database->select('FinanceOperation', '*', 'Subject='.$_GET['Id'].' ORDER BY Time');
     298        while($Row = $DbResult->fetch_array())
     299        {
     300          $Output .= '<tr><td>'.HumanDate($Row['Time']).'</td><td>'.$Row['Text'].
     301            '</td><td>'.$Row['Value'].'</td><td>'.$Row['BillCode'].'</td></tr>';
     302        }
     303        $Output .= '</table></td><td style="vertical-align: top;">';
    302304
    303305        $Output .= '<strong>Výpis závazků/pohledávek</strong>';
    304306        $Output .= '<table style="font-size: smaller;" border="1" cellspacing="0" cellpadding="3">';
    305         $Output .= '<tr><th>Datum vytvoření</th><th>Datum zaplacení</th><th>Název</th><th>Hodnota [Kč]</th></tr>';
    306         $DbResult = $this->Database->select('FinanceClaimsLiabilities', '*', 'Subject='.$_GET['Id']);
    307         while($Row = $DbResult->fetch_array())
    308         {
    309           $Output .= '<tr><td>'.$Row['TimeCreation'].'</td><td>'.$Row['TimePayment'].'</td><td>'.$Row['Text'].'</td><td>'.(-$Row['Value']).'</td><td>'.$Row['Bill'].'</td></tr>';
    310         }
    311         $Output .= '</table><br />';
    312 
    313         $Output .= '<strong>Výpis záloh</strong>';
     307        $Output .= '<tr><th>Datum vytvoření</th><th>Datum zaplacení</th><th>Název</th><th>Hodnota [Kč]</th><th>Doklad</th></tr>';
     308        $DbResult = $this->Database->select('FinanceClaimsLiabilities', '*', 'Subject='.$_GET['Id'].' ORDER BY TimeCreation');
     309        while($Row = $DbResult->fetch_array())
     310        {
     311          $Output .= '<tr><td>'.HumanDate($Row['TimeCreation']).'</td><td>'.HumanDate($Row['TimePayment']).
     312            '</td><td>'.$Row['Text'].'</td><td>'.($Row['Value']).'</td><td>'.$Row['BillCode'].'</td></tr>';
     313        }
     314        $Output .= '</table></td></tr></table>';
     315
     316        /*$Output .= '<strong>Výpis záloh</strong>';
    314317        $Output .= '<table style="font-size: smaller;" border="1" cellspacing="0" cellpadding="3">';
    315318        $Output .= '<tr><th>Datum vytvoření</th><th>Datum zaplacení</th><th>Název</th><th>Hodnota [Kč]</th></tr>';
     
    319322          $Output .= '<tr><td>'.$Row['TimeCreation'].'</td><td>'.$Row['TimePass'].'</td><td>'.$Row['Direction'].'</td><td>'.($Row['Value']).'</td><td>'.$Row['CashFlowId'].'</td></tr>';
    320323        }
    321         $Output .= '</table>';
    322 
    323         $DbResult = $this->Database->query('SELECT Id, 0 AS Cash, (SELECT SUM(FinanceClaimsLiabilities.Value) FROM FinanceClaimsLiabilities WHERE FinanceClaimsLiabilities.Subject = Subject.Id AND FinanceClaimsLiabilities.Value > 0) as Claims, (SELECT SUM(FinanceClaimsLiabilities.Value) FROM FinanceClaimsLiabilities WHERE FinanceClaimsLiabilities.Subject = Subject.Id AND FinanceClaimsLiabilities.Value > 0 AND TimePayment IS NULL) as OpenedClaims, (SELECT SUM(FinanceClaimsLiabilities.Value) FROM FinanceClaimsLiabilities WHERE FinanceClaimsLiabilities.Subject = Subject.Id AND FinanceClaimsLiabilities.Value < 0) as Liabilities, (SELECT SUM(FinanceClaimsLiabilities.Value) FROM FinanceClaimsLiabilities WHERE FinanceClaimsLiabilities.Subject = Subject.Id AND FinanceClaimsLiabilities.Value < 0 AND TimePayment IS NULL) as OpenedLiabilities, (SELECT SUM(FinanceCashFlow.Value) FROM FinanceCashFlow WHERE FinanceCashFlow.Subject = Subject.Id AND FinanceCashFlow.Value > 0) as Gains, (SELECT SUM(FinanceCashFlow.Value) FROM FinanceCashFlow WHERE FinanceCashFlow.Subject = Subject.Id AND FinanceCashFlow.Value < 0) as Spends, (SELECT SUM(FinanceAdvances.Value) FROM FinanceAdvances WHERE FinanceAdvances.Subject = Subject.Id AND FinanceAdvances.Direction="In") as AdvancesIn, (SELECT SUM(FinanceAdvances.Value) FROM FinanceAdvances WHERE FinanceAdvances.Subject = Subject.Id AND FinanceAdvances.Direction="Out") as AdvancesOut FROM Subject WHERE Id='.$_GET['Id']);
     324        $Output .= '</table>';*/
     325
     326        $DbResult = $this->Database->query('SELECT Id, 0 AS Cash, (SELECT SUM(FinanceClaimsLiabilities.Value) '.
     327          'FROM FinanceClaimsLiabilities WHERE FinanceClaimsLiabilities.Subject = Subject.Id AND '.
     328          'FinanceClaimsLiabilities.Value > 0) as Claims, (SELECT SUM(FinanceClaimsLiabilities.Value) '.
     329          'FROM FinanceClaimsLiabilities WHERE FinanceClaimsLiabilities.Subject = Subject.Id AND '.
     330          'FinanceClaimsLiabilities.Value > 0 AND TimePayment IS NULL) as OpenedClaims, '.
     331          '(SELECT SUM(FinanceClaimsLiabilities.Value) FROM FinanceClaimsLiabilities '.
     332          'WHERE FinanceClaimsLiabilities.Subject = Subject.Id AND FinanceClaimsLiabilities.Value < 0) AS '.
     333          'Liabilities, (SELECT SUM(FinanceClaimsLiabilities.Value) FROM FinanceClaimsLiabilities '.
     334          'WHERE FinanceClaimsLiabilities.Subject = Subject.Id AND FinanceClaimsLiabilities.Value < 0 '.
     335          'AND TimePayment IS NULL) as OpenedLiabilities, (SELECT SUM(FinanceOperation.Value) '.
     336          'FROM FinanceOperation WHERE FinanceOperation.Subject = Subject.Id AND FinanceOperation.Value > 0) '.
     337          'AS Gains, (SELECT SUM(FinanceOperation.Value) FROM FinanceOperation WHERE '.
     338          'FinanceOperation.Subject = Subject.Id AND FinanceOperation.Value < 0) as Spends '.
     339          'FROM Subject WHERE Id='.$_GET['Id']);
    324340        $Row = $DbResult->fetch_array();
    325         $Output .= 'Stav placení: '.($Row['AdvancesIn'] - $Row['AdvancesOut'] - $Row['OpenedClaims'] + Abs($Row['OpenedLiabilities']));
     341        $Output .= 'Stav placení: '.(-$Row['OpenedClaims'] + Abs($Row['OpenedLiabilities']));
    326342        break;
    327343      case 'PrintMonthOperations':
Note: See TracChangeset for help on using the changeset viewer.