1
Changeset 94d80f7 – MultiMag

Changeset 94d80f7


Ignore:
Timestamp:
Oct 28, 2013, 1:05:57 AM (8 years ago)
Author:
Blacklight <blacklight@…>
Branches:
master
Children:
efc0409
Parents:
d6ba0c8
Message:
  • Добавлена печатная форма наценок (PDF) в реализацию
  • Исправлен внутренний расширенный поиск
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • web/include/doc.realizaciya.php

    rd6ba0c8 r94d80f7  
    4040                        array('name'=>'nak_kompl','desc'=>'Накладная на комплектацию','method'=>'PrintNaklKomplektPDF'),
    4141                        array('name'=>'sfak','desc'=>'Счёт - фактура','method'=>'SfakPDF'),
    42                         array('name'=>'sfak2010','desc'=>'Счёт - фактура 2010','method'=>'Sfak2010PDF')
     42                        array('name'=>'sfak2010','desc'=>'Счёт - фактура 2010','method'=>'Sfak2010PDF'),
     43                        array('name'=>'nacenki','desc'=>'Наценки','method'=>'Nacenki')             
    4344                );
    4445                $this->status_list                      = array('in_process'=>'В процессе', 'ok'=>'Готов к отгрузке', 'err'=>'Ошибочный');
     
    18951896}
    18961897
     1898function Nacenki($to_str=0)
     1899{
     1900        global $tmpl, $CONFIG, $db;
     1901        if (!$to_str)   $tmpl->ajax = 1;
     1902
     1903        define('FPDF_FONT_PATH', $CONFIG['site']['location'] . '/fpdf/font/');
     1904        require('fpdf/fpdf_mc.php');
     1905
     1906        $pdf = new PDF_MC_Table('P');
     1907        $pdf->Open();
     1908        $pdf->SetAutoPageBreak(1, 12);
     1909        $pdf->AddFont('Arial', '', 'arial.php');
     1910        $pdf->tMargin = 5;
     1911        $pdf->AddPage('L');
     1912        $pdf->SetFillColor(255);
     1913
     1914        $pdf->SetFont('Arial','',16);
     1915        $str = iconv('UTF-8', 'windows-1251', "Наценки N {$this->doc_data['altnum']}{$this->doc_data['subtype']}, от ".date("d.m.Y", $this->doc_data['date']));
     1916        $pdf->Cell(0,6,$str,0,1,'C');
     1917        $pdf->SetFont('','',12);
     1918       
     1919        $str = "Поставщик: {$this->firm_vars['firm_name']}";
     1920        $pdf->CellIconv(0,5,$str,0,1,'L');
     1921        $str = "Покупатель: {$this->doc_data['agent_name']}";
     1922        $pdf->CellIconv(0,5,$str,0,1,'L');
     1923        $pdf->ln();
     1924       
     1925        $res = $db->query("SELECT `users`.`name`, `users_worker_info`.`worker_real_name`, CONCAT(`doc_list`.`altnum`,`doc_list`.`subtype`) AS `num`,
     1926                `doc_list`.`date`, `doc_list`.`sum`, `doc_list`.`id`
     1927                FROM `doc_list`
     1928                LEFT JOIN `users` ON `users`.`id`=`doc_list`.`user`
     1929                LEFT JOIN `users_worker_info` ON `users_worker_info`.`user_id`=`doc_list`.`user`
     1930                WHERE `doc_list`.`id`='{$this->doc_data['p_doc']}' AND `doc_list`.`type`='3'");
     1931        if ($res->num_rows) {
     1932                $l = $res->fetch_assoc();
     1933                $l['date'] = date("Y-m-d", $l['date']);
     1934                $str = "К заявке: N{$l['num']}, от {$l['date']} на {$l['sum']}, создал {$l['name']}/{$l['worker_real_name']}";
     1935                $z_id = $l['id'];
     1936                $pdf->CellIconv(0,5,$str,0,1,'L');
     1937        }
     1938        else    $z_id = 0;
     1939
     1940        $res = $db->query("SELECT `users`.`name`, `users_worker_info`.`worker_real_name`, CONCAT(`doc_list`.`altnum`,`doc_list`.`subtype`) AS `num`,
     1941                `doc_list`.`date`, `doc_list`.`sum`
     1942                FROM `doc_list`
     1943                LEFT JOIN `users` ON `users`.`id`=`doc_list`.`user`
     1944                LEFT JOIN `users_worker_info` ON `users_worker_info`.`user_id`=`doc_list`.`user`
     1945                WHERE (`doc_list`.`p_doc`='{$this->doc}' OR `doc_list`.`p_doc`='$z_id') AND `doc_list`.`type`='4' AND `doc_list`.`p_doc`>0");
     1946        while($l = $res->fetch_assoc()) {
     1947                $l['date'] = date("Y-m-d", $l['date']);         
     1948                $str = "Подчинённый банк-приход: N{$l['num']}, от {$l['date']} на {$l['sum']}, создал {$l['name']}/{$l['worker_real_name']}";
     1949                $pdf->CellIconv(0,5,$str,0,1,'L');
     1950        }
     1951
     1952        $res = $db->query("SELECT `users`.`name`, `users_worker_info`.`worker_real_name`, CONCAT(`doc_list`.`altnum`,`doc_list`.`subtype`) AS `num`,
     1953                `doc_list`.`date`, `doc_list`.`sum`
     1954                FROM `doc_list`
     1955                LEFT JOIN `users` ON `users`.`id`=`doc_list`.`user`
     1956                LEFT JOIN `users_worker_info` ON `users_worker_info`.`user_id`=`doc_list`.`user`
     1957                WHERE (`doc_list`.`p_doc`='{$this->doc}' OR `doc_list`.`p_doc`='$z_id') AND `doc_list`.`type`='5' AND `doc_list`.`p_doc`>0");
     1958        while($l = $res->fetch_assoc()) {
     1959                $l['date'] = date("Y-m-d", $l['date']);
     1960                $str = "Подчинённый расходно-кассовый ордер: N{$l['num']}, от {$l['date']} на {$l['sum']}, создал {$l['name']}/{$l['worker_real_name']}";
     1961                $pdf->CellIconv(0,5,$str,0,1,'L');
     1962        }
     1963
     1964        $pdf->SetLineWidth(0.7);
     1965        $t_width = array(8, 90, 18, 16, 19, 16, 20, 27, 19, 19, 27);
     1966        $t_text = array('№', 'Наименование', 'Кол-во', 'Цена', 'Сумма', 'АЦП', 'Наценка', 'Сум.наценки', 'П/закуп', 'Разница', 'Сум.разницы');
     1967        $aligns = array('R', 'L', 'R', 'R', 'R', 'R', 'R', 'R', 'R', 'R', 'R');
     1968       
     1969        foreach ($t_width as $id => $w) {
     1970                $pdf->CellIconv($w, 6, $t_text[$id], 1, 0, 'C', 0);
     1971        }
     1972        $pdf->Ln();
     1973        $pdf->SetWidths($t_width);
     1974        $pdf->SetHeight(5);
     1975
     1976        $pdf->SetAligns($aligns);
     1977        $pdf->SetLineWidth(0.2);
     1978        $pdf->SetFont('', '', 9);
     1979       
     1980        $res = $db->query("SELECT `doc_group`.`printname`, `doc_base`.`name`, `doc_base`.`proizv`, `doc_list_pos`.`cnt`, `doc_list_pos`.`cost`,
     1981                `class_unit`.`rus_name1` AS `units`, `doc_list_pos`.`tovar`
     1982                FROM `doc_list_pos`
     1983                LEFT JOIN `doc_base` ON `doc_list_pos`.`tovar`=`doc_base`.`id`
     1984                LEFT JOIN `doc_group` ON `doc_group`.`id`=`doc_base`.`group`
     1985                LEFT JOIN `class_unit` ON `doc_base`.`unit`=`class_unit`.`id`
     1986                WHERE `doc_list_pos`.`doc`='{$this->doc}'
     1987                ORDER BY `doc_list_pos`.`id`");
     1988        $i = 0;
     1989        $ii = 1;
     1990        $sum = $snac = $srazn = $cnt = 0;
     1991        while ($nxt = $res->fetch_row()) {
     1992                $sm = $nxt[3] * $nxt[4];
     1993                $cost = sprintf("%01.2f", $nxt[4]);
     1994                $cost2 = sprintf("%01.2f", $sm);
     1995                $act_cost = sprintf('%0.2f', GetInCost($nxt[6]));
     1996                $nac = sprintf('%0.2f', $cost - $act_cost);
     1997                $sum_nac = sprintf('%0.2f', $nac * $nxt[3]);
     1998                $snac+=$sum_nac;
     1999
     2000                $r = $db->query("SELECT `doc_list`.`date`, `doc_list_pos`.`cost` FROM `doc_list_pos`
     2001                        LEFT JOIN `doc_list` ON `doc_list`.`id`=`doc_list_pos`.`doc`
     2002                        WHERE `doc_list`.`ok`>'0' AND `doc_list`.`type`='1' AND `doc_list_pos`.`tovar`='$nxt[6]' AND `doc_list`.`date`<'{$this->doc_data['date']}'
     2003                        ORDER BY `doc_list`.`date` DESC");
     2004                if ($r->num_rows) {
     2005                        $rr = $r->fetch_row();
     2006                        $zakup = sprintf('%0.2f', $rr[1]);
     2007                }
     2008                else    $zakup = 0;
     2009                $razn = sprintf('%0.2f', $cost - $zakup);
     2010                $sum_razn = sprintf('%0.2f', $razn * $nxt[3]);
     2011                $srazn+=$sum_razn;
     2012                if (!@$CONFIG['doc']['no_print_vendor'] && $nxt[2])
     2013                        $nxt[1].=' / ' . $nxt[2];
     2014                if($nxt[0]) $nxt[1] = $nxt[0].' '.$nxt[1];
     2015                //$tmpl->AddText("<tr align=right><td>$ii</td><td align=left>$nxt[0] $nxt[1]<td>$nxt[3] $nxt[5]<td>$cost<td>$cost2<td>$act_cost<td>$nac<td>$sum_nac<td>$zakup<td>$razn<td>$sum_razn");
     2016               
     2017                $row = array($ii, $nxt[1], $nxt[3].' '.$nxt[5], $cost, $cost2, $act_cost, $nac, $sum_nac, $zakup, $razn, $sum_razn);
     2018               
     2019                $pdf->RowIconv($row);
     2020               
     2021                $i = 1 - $i;
     2022                $ii++;
     2023                $sum+=$sm;
     2024                $cnt+=$nxt[3];
     2025        }
     2026        $ii--;
     2027        $cost = sprintf("%01.2f", $sum);
     2028        $srazn = sprintf("%01.2f", $srazn);
     2029        $snac = sprintf("%01.2f", $snac);
     2030
     2031//      $tmpl->AddText("<tr>
     2032//<td colspan='2'><b>ИТОГО:</b><td>$cnt<td><td>$cost<td><td><td>$snac<td><td><td>$srazn
     2033//</table>
     2034//<p>Всего <b>$ii</b> наименований на сумму <b>$cost</b></p>
     2035//");
     2036        if($to_str)     return $pdf->Output('extra.pdf','S');
     2037        else            $pdf->Output('extra.pdf','I');
     2038}
     2039
    18972040};
    18982041?>
  • web/include/doc.s.sklad.php

    rd6ba0c8 r94d80f7  
    19561956        /// Поиск товаров по параметрам
    19571957        function Search() {
    1958                 global $tmpl, $CONFIG;
     1958                global $tmpl, $CONFIG, $db;
    19591959                $opt = request("opt");
    19601960                $name = request('name');
     
    20402040                                WHERE 1 ";
    20412041
    2042                         switch ($CONFIG['doc']['sklad_default_order']) {
     2042                        switch (@$CONFIG['doc']['sklad_default_order']) {
    20432043                                case 'vc': $order = '`doc_base`.`vc`';
    20442044                                        break;
     
    20802080                        $cheader_add = ($_SESSION['sklad_cost'] > 0) ? '<th>Выб. цена' : '';
    20812081                        $tmpl->addContent("<table width='100%' cellspacing='1' cellpadding='2' class='list'>
    2082                         <tr><th>№</th><th>Наименование</th><th>Производитель</th><th>Цена, р.</th><th>Ликв.</th><th>АЦП, р.</th>$cheader_add<th>Аналог</th><th>Тип</th><th>d</th><th>D</th><th>B</th><th>Масса</th><th><img src='/img/i_lock.png' alt='В резерве'></th><th><img src='/img/i_alert.png' alt='Под заказ'></th><th><img src='/img/i_truck.png' alt='В пути'></th><th>Склад</th><th>Всего</th><th>Место</th></tr>");
     2082                        <tr><th>№</th>");
     2083                       
     2084                        if(@$CONFIG['poseditor']['vc'])
     2085                                $tmpl->addContent("<th>Код</th>");
     2086                        $tmpl->addContent("<th>Наименование</th><th>Производитель</th><th>Цена, р.</th><th>Ликв.</th><th>АЦП, р.</th>$cheader_add<th>Аналог</th>");
     2087                       
     2088                        if (@$CONFIG['poseditor']['tdb'] == 1)
     2089                                $tmpl->addContent("<th>Тип</th><th>d</th><th>D</th><th>B</th>");
     2090                        $tmpl->addContent("<th>Масса</th>");
     2091                        if(@$CONFIG['poseditor']['rto'])
     2092                                $tmpl->addContent("<th><img src='/img/i_lock.png' alt='В резерве'></th><th><img src='/img/i_alert.png' alt='Под заказ'></th><th><img src='/img/i_truck.png' alt='В пути'></th>");
     2093                        $tmpl->addContent("<th>Склад</th><th>Всего</th><th>Место</th></tr>");
    20832094
    20842095                        $res = $db->query($sql);
    2085                         if ($cnt = $res->num_rows()) {
     2096                        if ($cnt = $res->num_rows) {
    20862097                                $tmpl->addContent("<tr><th colspan='16' align='center'>Параметрический поиск, найдено $cnt");
    20872098                                $this->DrawSkladTable($res, $name);
     
    21592170                        $vc_add = $CONFIG['poseditor']['vc'] ? "<td>{$nxt['vc']}</td>" : '';
    21602171
    2161                         if ($CONFIG['poseditor']['tdb'] == 1)
     2172                        if (@$CONFIG['poseditor']['tdb'] == 1)
    21622173                                $tdb_add = "<td>{$nxt['type']}</td><td>{$nxt['d_int']}</td><td>{$nxt['d_ext']}</td><td>{$nxt['size']}</td>";
    21632174                        else
    21642175                                $tdb_add = '';
    2165                         if ($CONFIG['poseditor']['rto'] == 1)
     2176                        if (@$CONFIG['poseditor']['rto'])
    21662177                                $rto_add = "<td>$rezerv</td><td>$pod_zakaz</td><td>$v_puti</td>";
    21672178                        else    $rto_add = '';
  • web/tickets.php

    rd6ba0c8 r94d80f7  
    3838                global $tmpl, $db;
    3939                settype($n, 'int');
    40                 $res = $db->query("SELECT `tickets`.`id`, `tickets`.`date`, `tickets`.`theme`, `tickets_priority`.`name`, `a`.`name`,
    41                         `tickets`.`to_date`, `tickets_state`.`name`, `t`.`name`, `tickets`.`text`, `tickets`.`state`
     40                $res = $db->query("SELECT `tickets`.`id`, `tickets`.`date`, `tickets`.`theme`, `tickets_priority`.`name` AS `prio_name`,
     41                        `a`.`name` AS `author_name`, `tickets`.`to_date`, `tickets_state`.`name` AS `state_name`, `tickets`.`text`, `tickets`.`state`
    4242                FROM `tickets`
    4343                LEFT JOIN `users` AS `a` ON `a`.`id`=`tickets`.`autor`
    44                 LEFT JOIN `users` AS `t` ON `t`.`id`=`tickets`.`to_uid`
    4544                LEFT JOIN `tickets_priority` ON `tickets_priority`.`id`=`tickets`.`priority`
    4645                LEFT JOIN `tickets_state` ON `tickets_state`.`id`=`tickets`.`state`
    4746                WHERE `tickets`.`id`='$n'");
    48                 $nxt = $res->fetch_row();
     47                $nxt = $res->fetch_assoc();
    4948                if (!$nxt)      $tmpl->msg("Задача не найдена!", "err");
    5049                else {
    51                         $tmpl->addContent("<h2>" . html_out($nxt[2]) . "</h2>
    52                         <b>Дата создания:</b> $nxt[1]<br>
    53                         <b>Важность:</b> $nxt[3]<br>
    54                         <b>Автор:</b> $nxt[4]<br>
    55                         <b>Исполнитель:</b> " . html_out($nxt[7]) . "<br>
    56                         <b>Срок:</b> $nxt[5]<br>
    57                         <b>Состояние:</b> $nxt[6]<br>
    58                         <b>Описание:</b> " . html_out($nxt[8]) . "<br>
     50                        //<b>Исполнитель:</b> " . html_out($nxt[7]) . "<br>
     51                        $tmpl->addContent("<h2>" . html_out($nxt['theme']) . "</h2>
     52                        <b>Дата создания:</b> {$nxt['date']}<br>
     53                        <b>Важность:</b> {$nxt['prio_name']}<br>
     54                        <b>Автор:</b> {$nxt['author_name']}<br>
     55                       
     56                        <b>Срок:</b> {$nxt['to_date']}<br>
     57                        <b>Состояние:</b> {$nxt['state_name']}<br>
     58                        <b>Описание:</b> " . html_out($nxt['text']) . "<br>
    5959                        <ul>");
    6060                        $res = $db->query("SELECT `users`.`name`, `tickets_log`.`date`, `tickets_log`.`text` FROM `tickets_log`
    6161                        LEFT JOIN `users` ON `users`.`id`=`tickets_log`.`uid`
    62                         WHERE `ticket`='$nxt[0]'");
     62                        WHERE `ticket`='{$nxt['id']}'");
    6363                        while ($nx = $res->fetch_row())
    6464                                $tmpl->addContent("<li><i>".html_out($nx[1])."</i>, <b>$nx[0]:</b> ".html_out($nx[2])."</li>");
     
    7979                        <input type='hidden' name='mode' value='set'>
    8080                        <input type='hidden' name='opt' value='comment'>
    81                         <input type='hidden' name='n' value='$nxt[0]'>
     81                        <input type='hidden' name='n' value='{$nxt['id']}'>
    8282                        <textarea name='comment'></textarea><br>
    8383                        <input type='submit' value='Добавить'></form></fieldset>
     
    8787                        <input type='hidden' name='mode' value='set'>
    8888                        <input type='hidden' name='opt' value='to_date'>
    89                         <input type='hidden' name='n' value='$nxt[0]'>
    90                         <input type='text' name='to_date' class='vDateField' value='$nxt[5]'>
     89                        <input type='hidden' name='n' value='{$nxt['id']}'>
     90                        <input type='text' name='to_date' class='vDateField' value='{$nxt['to_date']}'>
    9191                        <input type='submit' value='Изменить'></form></fieldset>
    9292
     
    9595                        <input type='hidden' name='mode' value='set'>
    9696                        <input type='hidden' name='opt' value='to_user'>
    97                         <input type='hidden' name='n' value='$nxt[0]'>
     97                        <input type='hidden' name='n' value='{$nxt['id']}'>
    9898                        <select name='user_id'>");
    9999
     
    102102                        INNER JOIN `users_worker_info` ON `users_worker_info`.`user_id`=`users`.`id`
    103103                        WHERE `users_worker_info`.`worker`>'0' ORDER BY `users`.`name`");
     104                        // !!!!!!!!!!!!!!!!!!!
    104105                        while ($nxt = $res->fetch_row()) {
    105106                                if ($nxt[0] == 0)
     
    177178}
    178179
    179 ;
    180180
    181181if (!isAccess('generic_tickets', 'view'))       throw new AccessException();
     
    218218}
    219219else if ($mode == 'my') {
    220         p_menu("Мои задачи");
     220        $tt->PMenu("Мои задачи");
    221221
    222222        $tmpl->addContent("<table width='100%' class='list'><tr><th>N<th>Дата задачи<th>Тема<th>Важность<th>Для<th>Срок<th>Статус");
     
    235235}
    236236else if ($mode == 'viewall') {
    237         p_menu("Все задачи");
     237        $tt->PMenu("Все задачи");
    238238
    239239        $tmpl->addContent("<table width='100%' class='list'><tr><th>N<th>Дата задачи<th>Тема<th>Важность<th>Автор<th>Для<th>Срок<th>Статус");
     
    253253else if ($mode == 'view') {
    254254        $n = rcvint('n');
    255         p_menu("Просмотр задачи N$n");
     255        $tt->PMenu("Просмотр задачи N$n");
    256256        ShowTicket($n);
    257257}
     
    330330        }
    331331
    332         p_menu("Корректировка задачи N$n");
     332        $tt->PMenu("Корректировка задачи N$n");
    333333        $tmpl->msg("Сделано!");
    334334        ShowTicket($n);
Note: See TracChangeset for help on using the changeset viewer.