1
Changeset 268 – MultiMag

Changeset 268


Ignore:
Timestamp:
Oct 6, 2011, 7:58:40 PM (6 years ago)
Author:
blacklight
Message:
  • Групповое добавление складских позиций из анализатора прайсов
  • Доработка базы данных
Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/web/include/doc.core.php

    r267 r268  
    373373
    374374        $tmpl->AddText("<table width='100%' style='background-color: #e0f0ff; border: 0;' ><tr><td>
    375         <a href='' title='Назад' onclick=\"history.go(-1);\"><img src='img/i_back.png' alt='Журнал документов' border='0'></a>
     375        <a href='' title='Назад' onclick=\"history.go(-1);\"><img src='img/i_back.png' alt='Назад' border='0'></a>
    376376       
    377377        <img src='img/i_separator.png' alt=''>
  • trunk/web/priceload.php

    r259 r268  
    213213                <table>
    214214                <thead>Номера колонок
    215                 <tr><th>Имя листа<th>С артикулами<th>С названиями<th>С ценами<th>С наличием
     215                <tr><th>Имя листа<th>С кодом производителя<th>С названиями<th>С ценами<th>С наличием
    216216                <tr><td><input type='text' name='table_name'>
    217217                <td><input type='text' name='col_art'>
     
    232232                <table>
    233233                <tr><th rowspan='2'>Имя листа<th colspan='4'>Номера колонок
    234                 <tr><th>С артикулами<th>С названиями<th>С ценами<th>С наличием");
     234                <tr><th>С кодом производителя<th>С названиями<th>С ценами<th>С наличием");
    235235                $res=mysql_query("SELECT `table_name`, `art`, `name`, `cost`, `nal`, `id` FROM `firm_info_struct`
    236236                WHERE `firm_id`='$nxt[0]'");
     
    680680{
    681681        $f=rcv('f');
    682         $tmpl->AddText("<h1>Отчёт по необработаным позициям</h1>");
    683         if($f) $f=" AND `price`.`firm`='$f'";
    684         $res=mysql_query("SELECT `price`.`id`, `price`.`name`, `price`.`art`, `firm_info`.`name`
     682        $s1=rcv('s1');
     683        $s2=rcv('s2');
     684        $s3=rcv('s3');
     685        $tmpl->AddText("<h1 id='page-title'>Необработанные позиции</h1>
     686        <div id='page-info'>Отметьте галочками нужные, и добавте на склад. Можно воспользоваться фильтром.</div>");
     687        if($f)  $sql_add=" AND `price`.`firm`='$f'";
     688        else    $sql_add='';
     689        if($s1) $sql_add.="AND `price`.`name` LIKE '%$s1%'";
     690        if($s2) $sql_add.="AND `price`.`name` LIKE '%$s2%'";
     691        if($s3) $sql_add.="AND `price`.`name` LIKE '%$s3%'";
     692        $res=mysql_query("SELECT `price`.`id`, `price`.`art`, `price`.`name`, `firm_info`.`name`
    685693        FROM `price`
    686694        LEFT JOIN `firm_info` ON `firm_info`.`id`=`price`.`firm`
    687         WHERE `seeked`='0' $f
     695        WHERE `seeked`='0' $sql_add
    688696        LIMIT 100000");
    689697        if(mysql_num_rows($res))
    690698        {
    691699                $i=0;
    692                 $tmpl->AddText("<table width='100%'><tr><th>ID<th>Наименование<th>Артикул<th>Фирма");
     700                $tmpl->AddText("
     701                <form action='' method='get'>
     702                <input type='hidden' name='mode' value='r_noparsed'>
     703                <input type='hidden' name='f' value='$f'>
     704                <input type='text' name='s1' value='$s1'> - <input type='text' name='s2' value='$s2'> - <input type='text' name='s3' value='$s3'>
     705                <button>Отфильтровать</button>
     706                </form>
     707                <form action='' method='post'>
     708                <input type='hidden' name='mode' value='adding'>
     709                <table width='100%'><tr><th>ID<th>Код произв.<th>Наименование<th>Фирма");
    693710                while($nxt=mysql_fetch_row($res))
    694711                {
    695712                        $i=1-$i;
    696                         $tmpl->AddText("<tr class='lin$i'><td>$nxt[0]<td>$nxt[1]<td>$nxt[2]<td>$nxt[3]");
    697                 }
    698                 $tmpl->AddText("</table>");
     713                        $tmpl->AddText("<tr class='lin$i'><td><label><input type='checkbox' name='p[]' value='$nxt[0]'>$nxt[0]</label><td>$nxt[1]<td>$nxt[2]<td>$nxt[3]");
     714                }
     715                $tmpl->AddText("</table><button type='submit'>Далее</button></form>");
    699716        }
    700717        else $tmpl->msg("Необработанных позиций не обнаружено!");       
     718}
     719else if($mode=='adding')
     720{
     721        $tmpl->AddText("<h1 id='page-title'>Добавление позиций на склад</h1>
     722        <div id='page-info'>Назовите позиции так, как они должны называться в вашем прайсе</div>");
     723        $p=@$_POST['p'];
     724        if(!is_array($p))       throw new Exception("Список позиций не получен");
     725        $res=mysql_query("SELECT `price`.`id`, `price`.`art`, `price`.`name`
     726        FROM `price`
     727        WHERE `seeked`='0'");
     728        if(mysql_errno())       throw new MysqlException("Не удалось получить данные прайсов");
     729        $tmpl->AddText("<form action='' method='post'>
     730        <input type='hidden' name='mode' value='adding_s'>
     731        <table width='100%'><tr><th>N<th>Код произв.<th>Оригинальное наименование<th style='width: 50%'>Наше наименование");
     732        $i=0;
     733        while($nxt=mysql_fetch_row($res))
     734        {
     735                if(!in_array($nxt[0],$p))       continue;
     736                $i++;
     737                $nxt[1]=trim($nxt[1]);
     738                $nxt[2]=trim($nxt[2]);
     739                $tmpl->AddText("<tr class='lin$i'><td>$i<td><input type='text' name='vc[$nxt[0]]' value='$nxt[1]'><td>$nxt[2]<td><input type='text' name='n[$nxt[0]]' value='$nxt[2]' style='width: 95%'>");
     740        }
     741        $tmpl->AddText("</table>Группа:<br><select name='group'>");
     742        $res=mysql_query("SELECT `id`, `name` FROM `doc_group`");
     743        while($nxt=mysql_fetch_row($res))
     744        {
     745                $tmpl->AddText("<option value='$nxt[0]'>$nxt[1] ($nxt[0])</option>");
     746        }
     747        $tmpl->AddText("</select><br>Единицы измерения:<br><select name='units'>");
     748        $res=mysql_query("SELECT `id`, `name`, `printname` FROM `doc_units`");
     749        while($nxt=mysql_fetch_row($res))
     750        {
     751                $tmpl->AddText("<option value='$nxt[0]'>$nxt[2] ($nxt[1])</option>");
     752        }
     753        $tmpl->AddText("</select><br><button type='submit'>Добавить</button></form>");
     754}
     755else if($mode=='adding_s')
     756{
     757        $group=rcv('group');
     758        $units=rcv('units');
     759        $tmpl->AddText("<h1 id='page-title'>Добавление позиций на склад - сохранение</h1>");
     760        $n=@$_POST['n'];
     761        if(!is_array($n))       throw new Exception("Список позиций не получен");
     762        foreach($n as $id => $value)
     763        {
     764                $vc=mysql_real_escape_string(@$_POST['vc'][$id]);
     765                $value=mysql_real_escape_string($value);
     766                mysql_query("INSERT INTO `doc_base` (`group`, `name`, `vc`, `unit`) VALUES ('$group', '$value', '$vc', '$units')");
     767                if(mysql_errno())       throw new MysqlException("Не удалось добавить наименование $value");
     768                $pos_id=mysql_insert_id();
     769                $tmpl->AddText("Добавлено $pos_id: $vc - $value<br>");
     770                if($vc)
     771                {
     772                        mysql_query("INSERT INTO `seekdata` (`id`, `sql`) VALUES ('$pos_id', '$vc')");
     773                        if(mysql_errno())       throw new MysqlException("Не удалось добавить данные анализатора для наименования $value");
     774                }
     775        }
     776        $tmpl->msg("Все операции выполнены!","ok");
    701777}
    702778else if($mode=='r_parsed')
Note: See TracChangeset for help on using the changeset viewer.