Пример #1
0
$reader->close();
if (!file_exists(SYSTEM_CSV_FILE)) {
    throw new IOException('Could not locate ' . SYSTEM_CSV_FILE);
}
$f = fopen(SYSTEM_CSV_FILE, 'r');
if ($f === false) {
    throw new IOException('Could not open ' . SYSTEM_CSV_FILE . ' for reading');
}
$reader = new CsvFileReader($f);
$reader->addFields($config['csv.fields']);
$pos = 0;
$counter = new Counter(true, [COUNT_CREATED, COUNT_EXISTING, COUNT_NEXT_PASS]);
while (!$reader->eof() && ++$pos) {
    $row = $reader->read();
    $logger->debug('-- Read CSV row', [$row]);
    $qb = $client->createQueryBuilder();
    $qb->select('Id')->from('Account')->where('Name = :dealership');
    $account = $qb->setMaxResults(1)->setParameter('dealership', $row->dealership)->getQuery()->getOneOrNullResult();
    if ($account === null) {
        $counter->inc(COUNT_NEXT_PASS);
        continue;
    }
    $logger->debug('Found Account with Id ' . $account->Id, [$account]);
    $qb = $client->createQueryBuilder();
    $qb->select('Id')->from('Contact')->where('AccountId = :id')->andWhere($qb->expr()->orX('Phone like :phone', 'Phone_2__c like :phone', 'Phone like :alt', 'Phone_2__c like :alt'));
    $contact = $qb->setMaxResults(1)->setParameter('id', $account->Id)->setParameter('phone', getPhoneLikeStatement($row->phone))->setParameter('alt', getPhoneLikeStatement($row->altPhone))->getQuery()->getOneOrNullResult();
    if ($contact !== null) {
        $counter->inc(COUNT_EXISTING);
        continue;
    }
    $sob = new SObject();