Exemplo n.º 1
0
 function readFiles()
 {
     $path = "data/in/";
     $dir = dir($path);
     while ($file = $dir->read()) {
         $ext = @pathinfo($path . $file, PATHINFO_EXTENSION);
         if ($ext === 'dat') {
             $fd = fopen($path . $file, "r");
             $salesmanList = array();
             $s = 0;
             $customerList = array();
             $c = 0;
             $totalSale = 0;
             $salesList = array();
             $salesmanSalesList = array();
             while (!feof($fd)) {
                 $linha = utf8_decode(fgets($fd, 750));
                 if (substr($linha, 0, 3) == '001') {
                     $salesmanList[$s] = $linha;
                     $s++;
                 }
                 if (substr($linha, 0, 3) == '002') {
                     $customerList[$c] = $linha;
                     $c++;
                 }
                 if (substr($linha, 0, 3) == '003') {
                     $sale = explode("ç", $linha);
                     $totalSale = $this->calculateSales($linha);
                     $salesList[$sale[1]] = $totalSale;
                     if (isset($salesmanSalesList[$sale[3]])) {
                         $salesmanSalesList[$sale[3]] += $totalSale;
                     } else {
                         $salesmanSalesList[$sale[3]] = $totalSale;
                     }
                 }
             }
             $Writer = new WriteFile($file, $customerList, $salesmanList, $salesList, $salesmanSalesList);
             $Writer->write();
         }
     }
     $dir->close();
 }
    //      object of GetFile class
    //
    $file = new GetFile($argv[1]);
    $file->checkFileType();
    //check filetype of output file
    //
    //      object of Salaries class
    //
    $data = new Salaries();
    $data->baseSalary();
    //set base salaries dates
    $data->bonusSalary();
    //set bonus salaries dates
    $data->monthNames();
    //set months names
    $write = new WriteFile();
    //object of WriteFile class
    //
    //      setting all parameters in WriteFile class
    //
    $write->setPath($argv[1]);
    $write->setMonths($data->getMonths());
    $write->setBase($data->getBaseSalary());
    $write->setBonus($data->getBonusSalary());
    $write->writeAll();
    //write all datas to output file
} else {
    if ($argc > 2) {
        //if user enter 2 or more arguments
        die("Too many arguments!");
    } else {