Example #1
0
 public function processTable(\TestDbAcle\Psv\Table\Table $table)
 {
     if (!$table->getMeta()->isReplaceMode() && !$table->getMeta()->isAppendMode()) {
         $this->pdoFacade->clearTable($table->getName());
     }
     foreach ($table->toArray() as $valuesToBeInserted) {
         $this->insertValues($this->upsertBuilderFactory->getUpserter($table, $valuesToBeInserted), $valuesToBeInserted);
     }
 }
 function getUpserter(\TestDbAcle\Psv\Table\Table $table, $valuesToBeInserted = array())
 {
     $tableName = $table->getName();
     if ($table->getMeta()->isReplaceMode()) {
         $identifyMap = array();
         foreach ($table->getMeta()->getIdentifyColumns() as $idColumn) {
             $identifyMap[$idColumn] = $valuesToBeInserted[$idColumn];
         }
         if ($this->pdoFacade->recordExists($tableName, $identifyMap)) {
             return new \TestDbAcle\Db\DataInserter\Sql\UpdateBuilder($tableName, $identifyMap);
         }
     }
     return new \TestDbAcle\Db\DataInserter\Sql\InsertBuilder($tableName);
 }
 protected function truncateDatetimeFields(\TestDbAcle\Psv\Table\Table $table, array $tableDataFromDb)
 {
     $tableName = $table->getName();
     $truncateableColumns = $table->getMeta()->getTruncateDateColumns();
     $filtered = array();
     foreach ($tableDataFromDb as $dataRow) {
         $newFilteredRow = array();
         foreach ($dataRow as $columnName => $value) {
             $isDatetime = $this->tableList->getTable($tableName)->getColumn($columnName)->isDateTime() || in_array($columnName, $truncateableColumns);
             if ($isDatetime && $value) {
                 $newFilteredRow[$columnName] = date("Y-m-d", strtotime($value));
             } else {
                 $newFilteredRow[$columnName] = $value;
             }
         }
         $filtered[] = $newFilteredRow;
     }
     return $filtered;
 }