поставщик стал добавлять в колонку с наличием - СЛОВО и скрипт перестал нормально работать

Статус
В этой теме нельзя размещать новые ответы.

air1on

Новичок
Здравствуйте! Есть скрипт, которые сравнивает артикула в xls файле с артикулами в базе на сайте, и в зависимости от данных проставляет статус наличия! Все бы хорошо, но один поставщик стал добавлять в колонку с наличием - СЛОВО. И получается, что скрипт не может нормально работать т.к в колонке содержится СЛОВО. Помогите пожалуйста обойти этот момент!!!
PHP:
<?php
    include("admin/libs/settings.php");
    define ("PREFIX", $dbprefix );
    include("admin/libs/func.php");
    include("includes/functions.php");
    require_once('PHPExcel/PHPExcel.php');
   
    $db = new DB($dbhost, $dbuser, $dbpass, $dbname);
    $db->Query("SET NAMES 'UTF8'");

    function getXls() {
        return PHPExcel_IOFactory::load("/var/www/vhosts/yourlamp.ru/httpdocs/sync_storage/favourite.xls");
    }
   
    function getArticleInfo($xls) {
        $a = array(); $b = array();
        $s = ""; $f = false;
       
        $sheet = $xls->getActiveSheet();
       
        $i = 1;
        while(true) {
            $cell = $sheet->getCell("A$i");
            $i++;
           
            if ($cell == null) {
                continue;
            }
           
            $v = $cell->getFormattedValue();
           
            if (empty($v) && $i > 15)
                break;
           
            if ($v === "Номенклатура") {
                $f = true;
                continue;
            }
           
            if ($f) {
                $j = $i-1;
                $q = $sheet->getCell("B$j")->getFormattedValue();
               
                if (empty($q) || intval($q) == 0) {
                    $b[] = $v;
                }
                else {
                    $a[] = $v;
                }
            }
        }
       
        if (empty($a) && empty($b))
            exit;
       
        return array('in_stock' => $a, 'out_of_stock' => $b);
    }
   
    function strbetween($str, $left, $right, $p1 = 0) {
        $p1 = strpos($str, $left, $p1);
       
        if ($p1 === false)
            return 0;
        $p1 += strlen($left);
       
        $p2 = strpos($str, $right, $p1);
       
        if ($p2 === false)
            return 0;
       
        return array(substr($str, $p1, $p2-$p1), $p1);
    }
   
    function updateStatus($entity, $status = 3) {
        global $db;
       
        if (intval($entity['on_sclad']) !== $status) {
            $id = $entity['id'];
            $db->Query("update ".PREFIX."_tovars set on_sclad='$status' where id='$id'");
        }
    }
   
    $xls = getXls();
   
    if (empty($xls))
        exit;
   
    $articles = getArticleInfo($xls);

    $res = $db->Query("select id, code, on_sclad, brand_id from ".PREFIX."_tovars where brand_id='24'")->_result;
   
    $matched = array();
    $missing = array();
    $out_of_stock = array();
   
    while($row = mysql_fetch_assoc($res)) {
        if (in_array($row['code'], $articles['in_stock'])) {
            updateStatus($row, 1);
            $matched[] = $row['code'];
        }
        else if (in_array($row['code'], $articles['out_of_stock'])) {
            updateStatus($row);
            $out_of_stock[] = $row['code'];
        }
        else {
            updateStatus($row);
            $missing[] = $row['code'];
        }
    }
   
    $new = array_diff(array_merge($articles['in_stock'], $articles['out_of_stock']), array_merge($matched, $out_of_stock));
   
    $msg = "Артикулы, отсутствующие на сайте, но присутствующие в файле поставщика:\r\n----------------\r\n";
    $msg .= implode("\r\n", $new) . "\r\n----------------\r\n";
   
    $msg .= "Артикулы, присутствующие на сайте, но отсутствующие в файле поставщика:\r\n----------------\r\n";
    $msg .= implode("\r\n", $missing) . "\r\n----------------\r\n";
   
    $msg .= "Артикулы, присутствующие на сайте, но отсутствующие в наличии у поставщика:\r\n----------------\r\n";
    $msg .= implode("\r\n", $out_of_stock);
   
    $header = "Content-Type: text/plain; charset=UTF-8";
   
    mail('[email protected]', "Отчет об артикулах поставщика Favourite", $msg, $header);
?>
 

С.

Продвинутый новичок
Вы через этот скрипт получаете доход. Наймите специалиста, не жлобствуйте.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
air1on, есть раздел http://phpclub.ru/talk/forums/Работа.9/ где вы можете создать свое сообщение о найме специалиста. Главное - прочитайте правила раздела и укажите вилку ЗП, чтобы тему не удалили.
 

air1on

Новичок
я вас понял спасибо! я просто ни когда не занимался подобным? может подскажите сколько это стоить будет примерно, что бы меня не обманули(
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Не могу вам сказать точно, но я думаю, что работы там на час, расценки часа работы можете посмотреть на фрилансе или у нас в разделе работа.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху