Ignore:
Timestamp:
Dec 23, 2019, 1:08:17 AM (5 years ago)
Author:
chronos
Message:
  • Added: Allow to manually regenerate PDF files for invoices and finance operations.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Modules/Finance/Manage.php

    r833 r866  
    2828      case 'GenerateBills':
    2929        $Output = $this->GenerateBills();
     30        break;
     31      case 'RegenerateInvoice':
     32        $Output = $this->GenerateInvoice('AND (Id='.$_GET['i'].')');
     33        break;
     34      case 'RegenerateOperation':
     35        $Output = $this->GenerateOperation('AND (Id='.$_GET['i'].')');
    3036        break;
    3137      default:
     
    406412  }
    407413
    408   function GenerateBills()
    409   {
    410     $Output = '';
    411 
    412     // FinanceInvoice
     414  function GenerateInvoice($Where)
     415  {
     416    $Output = '';
    413417    $DbResult = $this->Database->query('SELECT * FROM `FinanceInvoice` WHERE (`BillCode` <> "") '.
    414       'AND (`Value` != 0) AND (`File` IS NULL) AND (`Generate` = 1)');
     418      'AND (`Value` != 0) AND (`Generate` = 1)'.$Where);
    415419    while($Row = $DbResult->fetch_assoc())
    416420    {
    417       $DbResult2 = $this->Database->insert('File', array('Name' => '', 'Size' => 0,
    418         'Directory' => $this->System->Modules['Finance']->DirectoryId, 'Time' => 'NOW()'));
    419       $FileId = $this->Database->insert_id;
     421      if ($Row['File'] == null)
     422      {
     423        $DbResult2 = $this->Database->insert('File', array('Name' => '', 'Size' => 0,
     424          'Directory' => $this->System->Modules['Finance']->DirectoryId, 'Time' => 'NOW()'));
     425        $FileId = $this->Database->insert_id;
     426      } else $FileId = $Row['File'];
    420427      $FileName = 'doklad-'.$FileId.'.pdf';
    421428      $Bill = new BillInvoice($this->System);
     
    425432      $FullFileName = $this->System->Modules['File']->GetDir($this->System->Modules['Finance']->DirectoryId).$FileName;
    426433      $Bill->SaveToFile($FullFileName);
    427       if(file_exists($FullFileName))
     434      if (file_exists($FullFileName))
    428435      {
    429436        $this->Database->update('File', 'Id='.$FileId, array('Name' => $FileName, 'Size' => filesize($FullFileName)));
    430437        $this->Database->update('FinanceInvoice', 'Id='.$Row['Id'], array('File' => $FileId));
    431         $Output .= '.';
     438        $Output .= 'Faktura '.$Row['Id'].' vygenerována do souboru '.$FileName.'<br/>'."\n";
    432439      } else $Output .= 'Soubor "'.$FullFileName.'" se nepodařilo uložit.';
    433440    }
    434 
    435     // FinanceOperations
     441    return $Output;
     442  }
     443
     444  function GenerateOperation($Where)
     445  {
     446    $Output = '';
    436447    $DbResult = $this->Database->query('SELECT * FROM `FinanceOperation` WHERE (`BillCode` <> "") '.
    437         'AND (`Value` != 0) AND (`File` IS NULL) AND (`Generate` = 1)');
     448        'AND (`Value` != 0) AND (`Generate` = 1)'.$Where);
    438449    while($Row = $DbResult->fetch_assoc())
    439450    {
    440       $DbResult2 = $this->Database->insert('File', array('Name' => '', 'Size' => 0,
     451      if ($Row['File'] == null)
     452      {
     453        $DbResult2 = $this->Database->insert('File', array('Name' => '', 'Size' => 0,
    441454          'Directory' => $this->System->Modules['Finance']->DirectoryId, 'Time' => 'NOW()'));
    442       $FileId = $this->Database->insert_id;
     455        $FileId = $this->Database->insert_id;
     456      } else $FileId = $Row['File'];
    443457      $FileName = 'doklad2-'.$FileId.'.pdf';
    444458      $Bill = new BillOperation($this->System);
     
    452466        $this->Database->update('File', 'Id='.$FileId, array('Name' => $FileName, 'Size' => filesize($FullFileName)));
    453467        $this->Database->update('FinanceOperation', 'Id='.$Row['Id'], array('File' => $FileId));
    454         $Output .= '.';
     468        $Output .= 'Doklad pro platbu '.$Row['Id'].' vygenerován do souboru '.$FileName.'<br/>'."\n";
    455469      } else $Output .= 'Soubor "'.$FullFileName.'" se nepodařilo uložit.';
    456470    }
     471    return $Output;
     472  }
     473
     474  function GenerateBills()
     475  {
     476    $Output = '';
     477    // Generate PDF files for new invoices and operations
     478    $Output .= $this->GenerateInvoice(' AND (`File` IS NULL)');
     479    $Output .= $this->GenerateOperation(' AND (`File` IS NULL)');
    457480    return($Output);
    458481  }
Note: See TracChangeset for help on using the changeset viewer.