1
Changeset 975 – MultiMag

Changeset 975


Ignore:
Timestamp:
Jul 3, 2018, 6:30:16 PM (7 weeks ago)
Author:
blacklight
Message:
  • Добавлена возможность прихода/расхода средств без печати кассового чека
  • В документе *информация о платеже* для эквайринга добавлен выбор кассового аппарата, на котором будет распечатан чек
  • При печати кассовых чеков добавлена проверка соответствий сумм накладной и кассового документа, а так же факта проведения накладной
Location:
trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/common/cri/atol/llpv3.php

    r972 r975  
    8383        $result = socket_connect($this->socket, $address, $port);
    8484        if ($result === false) {
    85             throw new AtolException("Не могу принять данные: " . socket_strerror(socket_last_error($this->socket)));
     85            throw new AtolException("Не могу соединиться: " . socket_strerror(socket_last_error($this->socket)));
    8686        }
    8787    }
  • trunk/web/include/doc.payinfo.php

    r972 r975  
    2828        $this->viewname = 'Информация о платеже';
    2929        $this->bank_modify = 1;
    30         $this->header_fields = 'bank sum separator agent';
     30        $this->header_fields = 'bank kassa sum separator agent';
    3131    }
    3232
    3333    function initDefDopdata() {
    34         $this->def_dop_data = array('cardpay' => '', 'cardholder' => '', 'masked_pan' => '', 'trx_id' => '', 'p_rnn' => '', 'credit_type' => 0);
     34        $this->def_dop_data = array('cardpay' => '', 'cardholder' => '', 'masked_pan' => '', 'trx_id' => '', 'p_rnn' => '', 'credit_type' => 0, 'print_check' => true);
    3535    }
    3636
     
    4242                <b>RNN транзакции:</b>{$this->dop_data['p_rnn']}><br>");
    4343        }
     44        $checked_r = $this->dop_data['print_check'] ? 'checked' : '';
     45        $tmpl->addContent("<label><input type='checkbox' name='print_check' value='1' $checked_r>Печатать чек при проведении</label><br>");
     46    }
     47   
     48    function dopSave() {
     49        $new_data = array(
     50            'print_check' => rcvint('print_check'),
     51        );
     52        $old_data = array_intersect_key($new_data, $this->dop_data);
     53
     54        $log_data = '';
     55        if ($this->id)
     56            $log_data = getCompareStr($old_data, $new_data);
     57        $this->setDopDataA($new_data);
     58        if ($log_data)
     59            doc_log("UPDATE {$this->typename}", $log_data, 'doc', $this->id);
    4460    }
    4561   
     
    5066            throw new Exception("Номер документа не уникален!");
    5167        }
    52         $res = $db->query("SELECT `doc_list`.`id`, `doc_list`.`date`, `doc_list`.`bank`, `doc_list`.`ok`, `doc_list`.`firm_id`, `doc_list`.`sum`,
     68        $res = $db->query("SELECT `doc_list`.`id`, `doc_list`.`date`, `doc_list`.`bank`, `doc_list`.`kassa`, `doc_list`.`ok`, `doc_list`.`firm_id`, `doc_list`.`sum`,
    5369                `doc_kassa`.`firm_id` AS `kassa_firm_id`, `doc_vars`.`firm_till_lock`, `doc_kassa`.`cash_register_id` AS `cr_id`
    5470            FROM `doc_list`
    55             INNER JOIN `doc_kassa` ON `doc_kassa`.`num`=`doc_list`.`bank` AND `ids`='bank'
     71            INNER JOIN `doc_kassa` ON `doc_kassa`.`num`=`doc_list`.`kassa` AND `ids`='kassa'
    5672            INNER JOIN `doc_vars` ON `doc_list`.`firm_id` = `doc_vars`.`id`
    5773            WHERE `doc_list`.`id`='{$this->id}'");
     
    6480        if (!$silent) {
    6581            //  Напечатать чек при необходимости
    66             if($doc_params['cr_id']>0) {
     82            if($doc_params['cr_id']>0 && $this->dop_data['print_check']) {
    6783                $this->printCheck($doc_params['cr_id']);
     84                $this->setDopData('print_check', false);
    6885            }
    6986            $this->paymentNotify();
  • trunk/web/include/doc.pko.php

    r972 r975  
    3838            $acc = $def_acc['account'];
    3939        }
    40         $this->def_dop_data = array('credit_type' => 0, 'account' => $acc);
     40        $this->def_dop_data = array('credit_type' => 0, 'account' => $acc, 'print_check' => true);
    4141    }
    4242
     
    5858
    5959        $tmpl->addContent("Номер бухгалтерского счёта:<br><input type='text' name='account' value='{$this->dop_data['account']}'><br>");
     60        $checked_r = $this->dop_data['print_check'] ? 'checked' : '';
     61        $tmpl->addContent("<label><input type='checkbox' name='print_check' value='1' $checked_r>Печатать чек при проведении</label><br>");
    6062    }
    6163
     
    6365        $new_data = array(
    6466            'credit_type' => rcvint('credit_type'),
    65             'account' => request('account')
     67            'account' => request('account'),
     68            'print_check' => rcvint('print_check'),
    6669        );
    6770        $old_data = array_intersect_key($new_data, $this->dop_data);
     
    123126        if (!$silent) {
    124127            //  Напечатать чек при необходимости
    125             if($doc_params['cr_id']>0) {
     128            if($doc_params['cr_id']>0 && $this->dop_data['print_check']) {
    126129                $this->printCheck($doc_params['cr_id']);
     130                $this->setDopData('print_check', false);
    127131            }
    128132            $this->paymentNotify();
  • trunk/web/include/doc.rko.php

    r972 r975  
    3939            $acc = $def_acc['account'];
    4040        }
    41         $this->def_dop_data = array('rasxodi' => 0, 'account' => $acc);
     41        $this->def_dop_data = array('rasxodi' => 0, 'account' => $acc, 'print_check' => true);
    4242    }
    4343
     
    5656        $tmpl->addContent("</select><br>");
    5757        $tmpl->addContent("Номер бухгалтерского счёта:<br><input type='text' name='account' value='{$this->dop_data['account']}'><br>");
     58        $checked_r = $this->dop_data['print_check'] ? 'checked' : '';
     59        $tmpl->addContent("<label><input type='checkbox' name='print_check' value='1' $checked_r>Печатать чек при проведении</label><br>");
    5860    }
    5961
     
    6163        $new_data = array(
    6264            'rasxodi' => request('rasxodi'),
    63             'account' => request('account')
     65            'account' => request('account'),
     66            'print_check' => rcvint('print_check'),
    6467        );
    6568        $old_data = array_intersect_key($new_data, $this->dop_data);
     
    129132        if (!$silent) {
    130133            //  Напечатать чек при необходимости
    131             if($doc_params['cr_id']>0) {
     134            if($doc_params['cr_id']>0 && $this->dop_data['print_check']) {
    132135                $this->printCheck($doc_params['cr_id']);
     136                $this->setDopData('print_check', false);
    133137            }
    134138        }
  • trunk/web/include/doc/printcheck.php

    r972 r975  
    7272    protected function printCheck($cr_id) {
    7373        if($this->doc_data['p_doc']==0) {
    74             throw new Exception("Невозможна печать чека для документа, не являющегося потомком накладной");
     74            throw new \Exception("Невозможна печать чека для документа, не являющегося потомком накладной");
    7575        }
    7676        $doc = \document::getInstanceFromDb($this->doc_data['p_doc']);
     
    8686            }
    8787            else {
    88                 throw new Exception("Невозможна печать чека - данный документ не допустим для расхода товара");
     88                throw new \Exception("Невозможна печать чека - данный документ не допустим для расхода товара");
    8989            }
    9090        }
     
    9797            }
    9898            else {
    99                 throw new Exception("Невозможна печать чека - данный документ не допустим для прихода товара");
     99                throw new \Exception("Невозможна печать чека - данный документ не допустим для прихода товара");
    100100            }
    101101        }
    102102        else {
    103             throw new Exception("Печать чека возможна лишь на основании поступления или реализации");
     103            throw new \Exception("Печать чека возможна лишь на основании поступления или реализации");
    104104        }
     105        if(!$doc->getDocData('ok')) {
     106            throw new \Exception("Накладная-основание не проведена");
     107        }
     108        if($this->getDocData('sum')!=$doc->getDocData('sum')) {
     109            throw new \Exception("Частичные поступления и возвраты не реализованы");
     110        }       
    105111        $cr = $this->getCashRegister($cr_id);
    106112        try {
Note: See TracChangeset for help on using the changeset viewer.