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.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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();
Note: See TracChangeset for help on using the changeset viewer.