1
Changeset 969 – MultiMag

Changeset 969


Ignore:
Timestamp:
Jun 1, 2018, 6:01:56 PM (5 months ago)
Author:
blacklight
Message:
  • Добавлена возможность отображения колонки с наименованием производителя в xls прайс-листе
Location:
trunk
Files:
14 edited
4 copied

Legend:

Unmodified
Added
Removed
  • trunk/common/document.php

    r967 r969  
    157157    static function getListTypes() {
    158158        $list = array();
    159         for($i=1;$i<50;$i++) {
     159        for($i=1;$i<25;$i++) {
    160160            $item = self::getClassNameFromType($i);
    161161            if($item) {
  • trunk/common/pricewriter/basepricewriter.php

    r963 r969  
    3030    protected $vendor_filter = '';  ///< Фильтр по производителю
    3131    protected $count_filter = '';   ///< Фильтр по наличию
     32    protected $show_vc = false; ///< Колонока с наименованием производителя
     33    protected $show_vn = false; ///< Колонока с наименованием производителя
    3234
    3335    /// Конструктор
     
    4042        $this->view_groups = false;
    4143        $this->view_groupname = true;
     44        $this->show_vc = \cfg::get('site', 'price_show_vc', false);
     45        $this->show_vn = \cfg::get('site', 'price_show_vn', false);
    4246    }
    4347
  • trunk/common/pricewriter/html.php

    r963 r969  
    7777        echo"</center><table><tr>";
    7878        for ($cur_col = 0; $cur_col < $this->column_count; $cur_col++) {
    79             if (@$CONFIG['site']['price_show_vc']) {
     79            if ($this->show_vc) {
    8080                echo"<th class='cost'>Код</th>";
    8181            }
     
    8383        }
    8484        echo"</tr>";
    85         if (@$CONFIG['site']['price_show_vc']) {
     85        if ($this->show_vc) {
    8686            $this->span = $this->column_count * 3;
    8787        } else {
     
    165165                $name = $group_name .' '.$name;
    166166            }
    167             if (@$CONFIG['site']['price_show_vc']) {
     167            if ($this->show_vc) {
    168168                echo"<td>" . html_out($nxt['vc']) . "</td>";
    169169            }
  • trunk/common/pricewriter/pdf.php

    r963 r969  
    112112        $this->pdf->numCols = $CONFIG['site']['price_col_cnt'];
    113113
    114         if ($CONFIG['site']['price_show_vc']) {
     114        if ($this->show_vc) {
    115115            $str = iconv('UTF-8', 'windows-1251', 'Код');
    116116            $this->pdf->AddCol('vc', $CONFIG['site']['price_width_vc'], $str, '');
  • trunk/common/pricewriter/xls.php

    r963 r969  
    7272        $this->format_line[1]->setFgColor(41);
    7373        $this->format_line[1]->SetSize(12);
     74     
     75        $this->format_exists = array();
     76        $this->format_exists[0] = & $this->workbook->addFormat();
     77        $this->format_exists[0]->setColor(0);
     78        $this->format_exists[0]->setFgColor(26);
     79        $this->format_exists[0]->SetSize(12);
     80        $this->format_exists[0]->SetAlign('right');
     81        $this->format_exists[1] = & $this->workbook->addFormat();
     82        $this->format_exists[1]->setColor(0);
     83        $this->format_exists[1]->setFgColor(41);
     84        $this->format_exists[1]->SetSize(12);
     85        $this->format_exists[1]->SetAlign('right');
    7486
    7587        // для серых цен
     
    126138        // Настройка ширины столбцов
    127139
    128         if (@$CONFIG['site']['price_show_vc']) {
    129             $column_width = array(8, 8, 112, 15, 15);
    130         } else {
    131             $column_width = array(8, 120, 15, 15);
    132         }
     140        $name_w = 120;
     141        if(\cfg::get('site', 'price_show_vc', false)) {
     142            $name_w -= 8;
     143        }
     144        if($this->show_vn) {
     145            $name_w -= 12;
     146        }
     147        $column_width = [8];
     148        $headers = ["N"];
     149        if($this->show_vc) {
     150            $column_width[] = 8;
     151            $headers[] = "Код";
     152        }
     153        $column_width[] = $name_w;
     154        $headers[] = "Наименование";
     155        if($this->show_vn) {
     156            $column_width[] = 12;
     157            $headers[] = "Произв.";
     158        }
     159        $column_width[] = 15;
     160        $headers[] = "Наличие";
     161        $column_width[] = 15;
     162        $headers[] = "Цена";
     163       
    133164        foreach ($column_width as $id => $width) {
    134165            $this->worksheet->setColumn($id, $id, $width);
     
    170201        if (is_array($this->view_groups)) {
    171202            $this->line++;
    172             //$this->Ln(3);
    173             //$this->SetFont('','',14);
    174             //$this->SetTextColor(255,24,24);
    175203            $str = 'Прайс содержит неполный список позиций, в соответствии с выбранными критериями при его загрузке с сайта.';
    176204            $str = iconv('UTF-8', 'windows-1251', $str);
     
    182210        $this->line++;
    183211        $this->worksheet->write(8, 8, ' ');
    184         if (@$CONFIG['site']['price_show_vc']) {
    185             $headers = array("N", "Код", "Наименование", "Наличие", "Цена");
    186         } else {
    187             $headers = array("N", "Наименование", "Наличие", "Цена");
    188         }
     212
    189213        foreach ($headers as $id => $item) {
    190214            $headers[$id] = iconv('UTF-8', 'windows-1251', $item);
     
    275299            $this->worksheet->write($this->line, $c++, $nxt['id'], $this->format_line[$i]); // номер
    276300
    277             if (@$CONFIG['site']['price_show_vc']) {
     301            if ($this->show_vc) {
    278302                $str = iconv('UTF-8', 'windows-1251', $nxt['vc']);
    279303                $this->worksheet->write($this->line, $c++, $str, $this->format_line[$i]); // код производителя
     
    289313            $name = iconv('UTF-8', 'windows-1251', $name);
    290314            $this->worksheet->write($this->line, $c++, $name, $this->format_line[$i]); // наименование
     315           
     316            if ($this->show_vn) {
     317                $str = iconv('UTF-8', 'windows-1251', $nxt['proizv']);
     318                $this->worksheet->write($this->line, $c++, $str, $this->format_line[$i]); // наименование производителя
     319            }
    291320
    292321            $nal = $this->GetCountInfo($nxt['cnt'], $nxt['transit']);
    293322            $str = iconv('UTF-8', 'windows-1251', $nal);
    294             $this->worksheet->write($this->line, $c++, $str, $this->format_line[$i]);  // наличие - пока не отображается
     323            $this->worksheet->write($this->line, $c++, $str, $this->format_exists[$i]);  // наличие - пока не отображается
    295324
    296325            $cost = $pc->getPosSelectedPriceValue($nxt['id'], $this->cost_id, $nxt);
  • trunk/config_all.sample.php

    r964 r969  
    3232);
    3333$CONFIG['site']['price_show_vc']        = 0;    // Отображать ли столбец с кодом производителя в прайсах
     34$CONFIG['site']['price_show_vn']        = 1;    // Отображать ли столбец с наименованием производителя в прайсах
    3435
    3536
  • trunk/web/core.php

    r963 r969  
    813813}
    814814
    815 $tmpl=new BETemplate;
     815$tmpl = new BETemplate;
    816816testForeignSession();
    817 
    818 $dop_status=array('new'=>'Новый', 'err'=>'Ошибочный', 'inproc'=>'В процессе', 'ready'=>'Готов', 'ok'=>'Отгружен');
    819 if (is_array(@$CONFIG['doc']['status_list'])) {
    820     $CONFIG['doc']['status_list'] = array_merge($dop_status, $CONFIG['doc']['status_list']);
    821 } else {
    822     $CONFIG['doc']['status_list'] = $dop_status;
    823 }
  • trunk/web/include/acl/service/main.php

    r963 r969  
    6565                "mask" => \acl::VIEW | \acl::APPLY
    6666            ),
    67             'scripts' => array(
    68                 "name" => "Сценарии и операции",
    69                 "mask" => \acl::VIEW | \acl::APPLY
    70             ),
    7167            'sendprice' => array(
    7268                "name" => "Управление рассылкой прайс-листов",
  • trunk/web/include/api/document.php

    r967 r969  
    9090            \acl::accessGuard([ 'firm.global', 'firm.' . $firm_id], \acl::UPDATE);
    9191        }
     92        if ($document->getDocData('ok')) {
     93            throw new \Exception("Операция не допускается для проведённого документа!");
     94        }
     95        if ($document->getDocData('mark_del')) {
     96            throw new \Exception("Операция не допускается для документа, отмеченного для удаления!");
     97        }
    9298        $document->updateDocumentHeader($data);
    9399        $firm_id = $document->getDocData('firm_id'); // т.к. могло измениться
  • trunk/web/include/api/paytype.php

    r963 r969  
    1919namespace api;
    2020
    21 /// Обработчик API запросов к объектам справочника складов. Проверяет необходимиые привилегии перед осуществлением действий.
    22 class store {
    23 
    24     protected function shortlist() {
    25         global $db;
    26         $store_list = array();
    27         $res = $db->query("SELECT `id`, `name`, `firm_id` FROM `doc_sklady` ORDER by `id` ASC");
    28         while ($line = $res->fetch_assoc()) {
    29             $store_list[$line['id']] = $line;
    30         }
    31         return $store_list;
    32     }
     21/// Обработчик API запросов к объектам справочника сотрудников. Проверяет необходимиые привилегии перед осуществлением действий.
     22class paytype {
    3323
    3424    public function dispatch($action, $data = null) {
    3525        switch ($action) {
    36             case 'listnames':
    37                 \acl::accessGuard('directory.storelist', \acl::VIEW);
    38                 $ldo = new \Models\LDO\skladnames();
     26            case 'listnames':             
     27                $ldo = new \Models\LDO\paytypes();
    3928                return $ldo->getData();
    40             case 'shortlist':
    41                 \acl::accessGuard('directory.storelist', \acl::VIEW);
    42                 return $this->shortlist();
    4329            default:
    4430                throw new \NotFoundException('Некорректное действие');
  • trunk/web/include/api/worker.php

    r963 r969  
    1919namespace api;
    2020
    21 /// Обработчик API запросов к объектам справочника складов. Проверяет необходимиые привилегии перед осуществлением действий.
    22 class store {
    23 
    24     protected function shortlist() {
    25         global $db;
    26         $store_list = array();
    27         $res = $db->query("SELECT `id`, `name`, `firm_id` FROM `doc_sklady` ORDER by `id` ASC");
    28         while ($line = $res->fetch_assoc()) {
    29             $store_list[$line['id']] = $line;
    30         }
    31         return $store_list;
    32     }
     21/// Обработчик API запросов к объектам справочника сотрудников. Проверяет необходимиые привилегии перед осуществлением действий.
     22class worker {
    3323
    3424    public function dispatch($action, $data = null) {
    3525        switch ($action) {
    3626            case 'listnames':
    37                 \acl::accessGuard('directory.storelist', \acl::VIEW);
    38                 $ldo = new \Models\LDO\skladnames();
     27                \acl::accessGuard('service.doclist', \acl::VIEW);
     28                $ldo = new \Models\LDO\workernames();
    3929                return $ldo->getData();
    40             case 'shortlist':
    41                 \acl::accessGuard('directory.storelist', \acl::VIEW);
    42                 return $this->shortlist();
    4330            default:
    4431                throw new \NotFoundException('Некорректное действие');
  • trunk/web/include/doc.realizaciya.php

    r965 r969  
    6363        $this->get_docdata();
    6464        return $this->id;
     65    }
     66   
     67    public function getExtControls() {
     68        return $this->ext_controls = array(
     69            'ishop' => [
     70                'type' => 'label_flag',
     71                'label' => 'Заявка интернет-магазина',
     72            ],
     73            'buyer_info' => [
     74                'type' => 'buyer_info',
     75            ],
     76            'delivery_info' => [
     77                'type' => 'delivery_info',
     78            ],         
     79            'pay_type' => [
     80                'type' => 'select',               
     81                'label' => 'Способ оплаты',
     82                'data_source' => 'paytype.listnames',
     83            ],
     84            'status' => [
     85                'type' => 'status',               
     86                'label' => 'Статус',
     87            ],
     88            'worker_id' => [
     89                'type' => 'select',               
     90                'label' => 'Сотрудник',
     91                'data_source' => 'worker.listnames',
     92            ],
     93        );
    6594    }
    6695
  • trunk/web/include/doc.zayavka.php

    r968 r969  
    5151                'type' => 'select',               
    5252                'label' => 'Способ оплаты',
    53                 'data_source' => 'paytypes',
     53                'data_source' => 'paytype.listnames',
    5454            ],
    5555            'status' => [
     
    6060                'type' => 'select',               
    6161                'label' => 'Сотрудник',
    62                 'data_source' => 'workers',
     62                'data_source' => 'worker.listnames',
    6363            ],
    6464        );
     
    324324        if (@$this->dop_data['pay_type']) {
    325325            $tmpl->addContent("<b>Способ оплаты: </b>");
    326             switch ($this->dop_data['pay_type']) {
    327                 case 'bank': $tmpl->addContent("безналичный");
    328                     break;
    329                 case 'cash': $tmpl->addContent("наличными");
    330                     break;
    331                 case 'card': $tmpl->addContent("картой ?");
    332                     break;
    333                 case 'card_o': $tmpl->addContent("картой на сайте");
    334                     break;
    335                 case 'card_t': $tmpl->addContent("картой при получении");
    336                     break;
    337                 case 'wmr': $tmpl->addContent("Webmoney WMR");
    338                     break;
    339                 default: $tmpl->addContent("не определён ({$this->dop_data['pay_type']})");
     326            $ldo = new \Models\LDO\paytypes();
     327            $paytypes = $ldo->getData();
     328            if(isset($paytypes[$this->dop_data['pay_type']])) {
     329                $tmpl->addContent($paytypes[$this->dop_data['pay_type']]);
     330            }
     331            else {
     332                $tmpl->addContent("не определён ({$this->dop_data['pay_type']})");
    340333            }
    341334            $tmpl->addContent("<br>");
     
    384377            $tmpl->addContent("<option value=''>Не задан</option>");
    385378        }
    386         foreach ($CONFIG['doc']['status_list'] as $id => $name) {
     379        $ldo = new \Models\LDO\zstatuses();
     380        $status_list = $ldo->getData();
     381        foreach ($status_list as $id => $name) {
    387382            $s = (@$this->dop_data['status'] == $id) ? 'selected' : '';
    388383            $tmpl->addContent("<option value='$id' $s>$name</option>");
  • trunk/web/include/models/ldo/paytypes.php

    r963 r969  
    2121namespace Models\LDO;
    2222
    23 /// Класс списка наименований сотрудников
    24 class workernames extends \Models\ListDataObject {
     23/// Класс списка наименований типов оплат
     24class paytypes extends \Models\ListDataObject {
    2525
    2626    /// @brief Получить данные
    2727    public function getData() {
    2828        global $db;
    29         $sql = "SELECT `user_id`, `worker_real_name` FROM `users_worker_info` WHERE `worker`='1' ORDER by `user_id` ASC";
    30         $result = '';
    31         $a = array();
    32         $res = $db->query($sql);
    33         while ($line = $res->fetch_assoc()) {
    34             $a[$line['user_id']] = $line['worker_real_name'];
    35         }
     29        $a = [
     30            'bank' =>   'Безналичный',
     31            'cash' =>   'Наличными',
     32            'card_o' => 'Картой на сайте',
     33            'card_t' => 'Картой при получении',
     34        ];
    3635        return $a;
    3736    }
  • trunk/web/include/models/ldo/zstatuses.php

    r963 r969  
    1919namespace Models\LDO;
    2020
    21 /// Класс списка наименований типов документов
    22 class docnames extends \Models\ListDataObject {
    23        
    24         /// @brief Получить данные
    25         public function getData() {
    26                 global $db;
    27                 $sql = "SELECT `id`, `name` FROM `doc_types` ORDER by `id` ASC";
    28                 $result = '';
    29                 $a = array();
    30                 $res = $db->query($sql);
    31                 while ($line = $res->fetch_assoc()) {
    32                         $a[$line['id']] = $line['name'];
    33                 }
    34                 return $a;
    35         }
     21/// Класс списка статусов заявки покупателя
     22class zstatuses extends \Models\ListDataObject {
     23
     24    /// @brief Получить данные
     25    public function getData() {
     26        $def_list = array(
     27            'new'=>'Новый',
     28            'err'=>'Ошибочный',
     29            'inproc'=>'В процессе',
     30            'ready'=>'Готов',
     31            'ok'=>'Отгружен'
     32        );
     33        $res_list = \cfg::get('doc', 'status_list', null);
     34        if (is_array($res_list)) {
     35            $res_list = array_merge($def_list, $res_list);
     36        } else {
     37            $res_list = $def_list;
     38        }
     39        return $res_list;
     40    }
     41
    3642}
  • trunk/web/incomp_orders.php

    r963 r969  
    107107
    108108    $new_lines = $inproc_lines = $other_lines = $ready_lines = '';
    109 
     109    $ldo = new \Models\LDO\zstatuses();
     110    $zstatus_list = $ldo->getData();
    110111    while ($line = $res->fetch_assoc()) {
    111112        if ($line['status'] == 'ok' || $line['status'] == 'err') {
     
    118119            $line['status'] = 'new';
    119120        }
    120         $status = @$CONFIG['doc']['status_list'][$line['status']];
     121        $status = @$zstatus_list[$line['status']];
    121122        if ($line['resp_name'] == 'anonymous') {
    122123            $line['resp_name'] = '-';
  • trunk/web/js/doceditor.js

    r968 r969  
    1111    doc.label_classname = 'label';
    1212    doc.input_id_prefix = 'dochead_';
    13     listproxy.prefetch(['agent.shortlist', 'firm.listnames', 'mybank.shortlist', 'store.shortlist', 'price.listnames', 'deliverytype.listnames', 'deliveryregion.getlist', 'deliveryregion.listnames']);
     13    listproxy.prefetch(['agent.shortlist', 'firm.listnames', 'mybank.shortlist', 'store.shortlist', 'price.listnames', 'deliverytype.listnames',
     14        'deliveryregion.getlist', 'deliveryregion.listnames', 'worker.listnames']);
    1415   
    1516    function clearHighlight() {
     
    2021        if(response.errortype=='AccessException') {
    2122            if(response.object=='document' && response.action=='cancel') {
    22                 jAlert(response.errormessage+"<br><br>Вы можете <a href='#' onclick=\"return petitionMenu(event, '{$this->id}')\""+
     23                jAlert(response.errormessage+"<br><br>Вы можете <a href='#' onclick=\"return petitionMenu(event, '"+doc.id+"')\""+
    2324                    ">попросить руководителя</a> выполнить отмену этого документа.", "Не достаточно привилегий!", null, 'icon_err');
    2425                doc.updateMainMenu();
     
    4748            }
    4849            else if(response.action=='update') {
    49                 left_block.style.backgroundColor = '#afa';
     50                left_block.style.backgroundColor = '#cfc';
    5051                if (hltimer) {
    5152                    window.clearTimeout(hltimer);
    5253                }
    53                 hltimer = window.setTimeout(clearHighlight, 400);
     54                hltimer = window.setTimeout(clearHighlight, 500);
     55                if(response.content.header) {
     56                    doc.header = response.content.header;
     57                }
    5458            }
    5559            else if(response.action=='apply' || response.action=='cancel' ) {
     
    127131        }
    128132    }
    129     function insertContractList(select_elem, data, selected_id, not_select_item) {
     133    function updateContractList(select_elem, data, selected_id, not_select_item) {
    130134        var i;
    131         if(not_select_item) {
    132             var opt = newElement('option', select_elem, '', '--не задано--');
    133             opt.value='null';
    134         }
     135        select_elem.innerHTML = '';
     136        var found = 0;
     137        var selected = 0;
    135138        for(i in data) {
    136             var str = data[i].name + " N:" + data[i].altnum + data[i].subtype + ", от " + data[i].date;
     139            var str = "N:" + data[i].altnum + data[i].subtype + ", от " + data[i].date;
     140            if(data[i].name!=null) {
     141                str = data[i].name + " " + str;
     142            }
    137143            var opt = newElement('option', select_elem, '', str);
    138144            opt.value = data[i].id;
    139145            if(data[i].id==selected_id) {
    140146                opt.selected=true;
    141             }
    142         }
    143     }
    144    
    145     function initStoreSelect(store_list) {
     147                selected = 1;
     148            }
     149            found = 1;
     150        }       
     151        if(not_select_item) {
     152            var opt = newElement('option', select_elem, '', '--не задано--');
     153            opt.value='null';
     154        }
     155    }
     156   
     157    function initStoreSelect() {
    146158        var i;
    147159        var firm_id = doc.i_firm_id.value;
    148160        var select_elem = doc.i_store_id;
    149         var selected = false;
    150         select_elem.innerHTML = '';
    151        
    152         for(i in store_list) {
    153             var line = store_list[i];
    154             if(line.firm_id>0 && line.firm_id!=firm_id) {
    155                 continue;
    156             }
    157             var opt = newElement('option', select_elem, '', line.name);
    158             opt.value = line.id;
    159             if(line.id==doc.header.store_id) {
    160                 opt.selected = true;
    161                 selected = true;
    162             }
    163         }
    164         if( (!doc.header.store_id) || (!selected)) {           
    165             var opt = newElement('option', select_elem, '', '--не задано--');
    166             opt.value='null';
    167             opt.selected=true;
    168         }
    169     }
    170    
    171     function initBankSelect() {       
    172         function refill(bank_list) {
     161        var store_list;
     162       
     163        function refill() {
     164            var selected = false;
     165            select_elem.innerHTML = '';
     166            for(i in store_list) {
     167                var line = store_list[i];
     168                if(line.firm_id>0 && line.firm_id!=firm_id) {
     169                    console.log("lfi:"+line.firm_id+",fi:"+firm_id);
     170                    continue;
     171                }
     172                var opt = newElement('option', select_elem, '', line.name);
     173                opt.value = line.id;
     174                if(line.id==doc.header.store_id) {
     175                    opt.selected = true;
     176                    selected = true;
     177                }
     178            }
     179            if( (!doc.header.store_id) || (!selected)) {           
     180                var opt = newElement('option', select_elem, '', '--не задано--');
     181                opt.value='null';
     182                opt.selected=true;
     183            }
     184        }
     185        function onNewData(key, value) {
     186            store_list = value;
     187            refill();
     188        }
     189        if(select_elem.setbind == undefined) {
     190            listproxy.bind('store.shortlist', onNewData);
     191        }
     192        else {
     193            refill();
     194        }
     195    }
     196   
     197    function initBankSelect() {   
     198        var select_elem = doc.i_bank_id;
     199        var bank_list;
     200        function refill() {           
    173201            var i;
    174             var firm_id = doc.i_firm_id.value;
    175             var select_elem = doc.i_bank_id;
     202            var firm_id = doc.i_firm_id.value;           
    176203            var selected = false;
    177204            select_elem.innerHTML = '';       
     
    196223            }
    197224        }
    198         function onNewData(key, data) {
    199             refill(data);
    200         }     
    201         listproxy.bind('mybank.shortlist', onNewData);
     225        function onNewData(key, value) {
     226            bank_list = value;
     227            refill();
     228        }
     229        if(select_elem.setbind == undefined) {
     230            listproxy.bind('mybank.shortlist', onNewData);
     231        }
     232        else {
     233            refill();
     234        }
     235       
    202236    }
    203237   
     
    316350        document.getElementById('contract_edit_link').href='/test_doc.php?doc_id='+doc.header.contract_id;
    317351        doc.i_contract_id = document.getElementById('dochead_contract_id');
    318         insertContractList(doc.i_contract_id, doc.header.agent_info.contract_list, doc.header.contract_id, true);
     352        updateContractList(doc.i_contract_id, doc.header.agent_info.contract_list, doc.header.contract_id, true);
    319353    }
    320354   
    321355    function onChangeHeaderField() {
    322         left_block.style.backgroundColor = '#ff8';
     356        left_block.style.backgroundColor = '#ffc';
    323357        var fstruct = formToArray();
    324358        delete fstruct['agent_name'];
     
    370404   
    371405    function showBuyerEditor(event) {
    372        
     406        alert("В настоящее время эта информация не редактируется!");
    373407    }
    374408   
     
    535569        return rootElement;
    536570    }
     571   
     572    function newSelectElement(name, options) {
     573        var rootElement = document.createElement('div');
     574        rootElement.className = doc.element_classname;
     575        var labelElement = document.createElement('div');
     576        labelElement.className = doc.label_classname;
     577        var label = document.createTextNode(options.label+':');
     578        labelElement.appendChild(label);
     579        rootElement.appendChild(labelElement);
     580        var selectElement = document.createElement('select');
     581        selectElement.name = name;
     582        selectElement.id = doc.input_id_prefix+name;
     583        rootElement.appendChild(selectElement);       
     584        doc.head_form.appendChild(rootElement);
     585        rootElement.select = selectElement;
     586        selectElement.label = labelElement;
     587        return rootElement;
     588    }
    537589       
    538590    function initExtFields(data) {
     
    544596            var field = ext_fields[i];
    545597            switch(field.type) {
     598                case 'select':
     599                    var element = newSelectElement(i, field);
     600                    var cb = function() {
     601                        var e = element;
     602                        var value = data[i];
     603                        function refillSelect(key, info) {
     604                            updateOptionsArray(e.select, info, value, true);
     605                        };
     606                        return refillSelect;
     607                    }();
     608                    listproxy.bind(field.data_source, cb);
     609                    element.select.onchange = onChangeHeaderField;
     610                    break;
    546611                case 'text':
    547612                    var element = newTextElement(i, data[i], field);
     
    618683            case 'firm.listnames':
    619684                updateOptionsArray(doc.i_firm_id, data, doc.header.firm_id);
    620                 break;
    621             case 'store.shortlist':
    622                 initStoreSelect(data);
    623685                break;
    624686            case 'cash.shortlist':
     
    716778                    var tmp = newElement('div', doc.head_form, 'item', templates.store);
    717779                    doc.i_store_id = document.getElementById('dochead_store_id');
    718                     listproxy.bind('store.shortlist', onNewData);
     780                    initStoreSelect();
    719781                    doc.i_store_id.onchange = onChangeHeaderField;
    720782                    break;
  • trunk/web/skins/inner/style.css

    r968 r969  
    893893
    894894
    895 /* Новый вид документов */
    896 
    897 #doc_left_block
    898 {
    899         float:                  left;
    900         background-color:       #f5f5f5;
    901         width:                  310px;
    902         padding:                5px;
    903         padding-left:           10px;
    904         padding-top:            0;
    905         font-size:              12px;
    906 }
    907 
    908895
    909896
     
    10611048
    10621049/* ajax вид документов */
     1050
     1051#doc_left_block {
     1052    float:                      left;
     1053    background-color:   #f5f5f5;
     1054    width:                      310px;
     1055    padding:            5px;
     1056    padding-left:           10px;
     1057    padding-top:            0;
     1058    font-size:          12px;
     1059    transition: background-color, 0.5s;
     1060}
     1061
     1062
     1063
     1064
    10631065#doc_left_block h1 {
    10641066    text-align: center;
     
    10831085    background-color: #fff;
    10841086    width:      100%;
     1087    transition: background-color, 0.8s;
    10851088}
    10861089
     
    10901093    padding-bottom: 4px;
    10911094    padding-top: 2px;
    1092     border-bottom: 1px #ddd dotted;
     1095    /*border-bottom: 1px #ddd dotted;*/
    10931096}
    10941097
     
    11001103#doc_left_block div.infoblock {
    11011104    cursor: pointer;
     1105    border-bottom: 1px #ddd dotted;
    11021106}
    11031107
Note: See TracChangeset for help on using the changeset viewer.