1
zp_s_prodaj.php in web/include/doc_scripts – MultiMag

source: web/include/doc_scripts/zp_s_prodaj.php @ 9bc434b

Last change on this file since 9bc434b was 9bc434b, checked in by Blacklight <blacklight@…>, 12 years ago
  • В модуле импрота данных клиента банка добавлено автоматическое определение организации и банка по расчётному счёту
  • Дальнейшая разработка модуля *зарплата с продаж*
  • Property mode set to 100644
File size: 5.2 KB
Line 
1<?php
2
3class ds_zp_s_prodaj
4{
5        var $coeff=0.05;
6
7function Run($mode)
8{
9        global $tmpl, $uid;
10        $tmpl->HideBlock('left');
11        if($mode=='view')
12        {
13                $tmpl->AddText("<h1>".$this->getname()."</h1>
14                <script type='text/javascript' src='/css/jquery/jquery.autocomplete.js'></script>
15                <form action='' method='post' enctype='multipart/form-data'>
16                <input type='hidden' name='mode' value='create'>
17                <input type='hidden' name='param' value='i'>
18                <input type='hidden' name='sn' value='zp_s_prodaj'>
19                Услуга начисления зарплаты:<br>
20                <input type='hidden' name='tov_id' id='tov_id' value=''>
21                <input type='text' id='tov'  style='width: 400px;' value=''><br>
22                <script type=\"text/javascript\">
23                $(document).ready(function(){
24                        $(\"#tov\").autocomplete(\"/docs.php\", {
25                        delay:300,
26                        minChars:1,
27                        matchSubset:1,
28                        autoFill:false,
29                        selectFirst:true,
30                        matchContains:1,
31                        cacheLength:10,
32                        maxItemsToShow:15,     
33                        formatItem:tovliFormat,
34                        onItemSelect:tovselectItem,
35                        extraParams:{'l':'sklad','mode':'srv','opt':'ac'}
36                        });
37                });
38               
39                function tovliFormat (row, i, num) {
40                        var result = row[0] + \"<em class='qnt'>\" +
41                        row[2] + \"</em> \";
42                        return result;
43                }
44               
45                function tovselectItem(li) {
46                        if( li == null ) var sValue = \"Ничего не выбрано!\";
47                        if( !!li.extra ) var sValue = li.extra[0];
48                        else var sValue = li.selectValue;
49                        document.getElementById('tov_id').value=sValue;
50                       
51                }
52                </script>               
53                <button type='submit'>Выполнить</button>
54                </form>
55                ");
56        }
57        else if($mode=='create')
58        {
59                $tov_id=rcv('tov_id');
60                $tmpl->AddText("<h1>".$this->getname()."</h1>");
61                $res=mysql_query("SELECT `curlist`.`id`, `curlist`.`user`, `doc_agent`.`name` AS `agent_name`, `curlist`.`date`, `curlist`.`sum`, `curusers`.`name` AS `ruser_name`, `zlist`.`user` AS `zuser`, `zusers`.`name` AS `zuser_name`, `curlist`.`p_doc`
62                FROM `doc_list` AS `curlist`
63                INNER JOIN `doc_agent` ON               `doc_agent`.`id`=`curlist`.`agent`
64                INNER JOIN `users` AS `curusers`        ON `curusers`.`id`=`curlist`.`user`
65                LEFT JOIN `doc_list` AS `zlist`         ON `zlist`.`id`=`curlist`.`p_doc` AND `zlist`.`type`='3'
66                LEFT JOIN `users` AS `zusers`           ON `zusers`.`id`=`zlist`.`user`
67                LEFT JOIN `doc_list` AS `pay_doc`       ON `pay_doc`.`p_doc`=`curlist`.`id`
68                WHERE `curlist`.`ok`>'0' AND `curlist`.`type`='2' AND `curlist`.`date`>='".strtotime("2011-01-01")."'
69                AND `curlist`.`id` NOT IN (SELECT `doc` FROM `doc_dopdata` WHERE `param`='nzp')");
70                echo mysql_error();
71                /// nsp (param) - начислена зарплата
72                $tmpl->AddText("
73                <form action='' method='post' enctype='multipart/form-data'>
74                <input type='hidden' name='mode' value='exec'>
75                <input type='hidden' name='param' value='i'>
76                <input type='hidden' name='sn' value='zp_s_prodaj'>
77                <input type='hidden' name='tov_id' id='tov_id' value='$tov_id'>
78                <table width='100%'>
79                <tr><th>ID<th>Автор<th>Агент<th>Дата<th>Сумма<th>К начислению");
80                $i=0;
81                $users=array();
82                while($nxt=mysql_fetch_assoc($res))
83                {
84                        if($nxt['zuser']>0)
85                        {
86                                if(!isset($users[$nxt['zuser']]))
87                                {
88                                        $users[$nxt['zuser']]=array();
89                                        $users[$nxt['zuser']]['name']=$nxt['zuser_name'];
90                                        $users[$nxt['zuser']]['sum']=0;
91                                }
92                        }
93                        else
94                        {
95                                if(!isset($users[$nxt['user']]))
96                                {
97                                        $users[$nxt['user']]=array();
98                                        $users[$nxt['user']]['name']=$nxt['ruser_name'];
99                                        $users[$nxt['user']]['sum']=0;
100                                }
101                       
102                        }
103                        // Расчёт входящей стоимости
104                        $res_tov=mysql_query("SELECT `doc_list_pos`.`id`, `doc_list_pos`.`tovar`, `doc_list_pos`.`cost`, `doc_list_pos`.`cnt`
105                        FROM `doc_list_pos`
106                        WHERE `doc_list_pos`.`doc`='{$nxt['id']}'");
107                        $nach_sum=0;
108                        while($nxt_tov=mysql_fetch_assoc($res_tov))
109                        {
110                                $incost = GetInCost($nxt_tov['tovar'], $nxt['date']);
111                                $nach_sum+=($nxt_tov['cost']-$incost)*$this->coeff;
112                        }
113                        // Проверка факта оплаты
114                        $add='';
115                        if($nxt['p_doc']) $add=" OR (`p_doc`='{$nxt['p_doc']}' AND (`type`='4' OR `type`='6'))";
116                        $rs=mysql_query("SELECT SUM(`sum`) FROM `doc_list` WHERE
117                        (`p_doc`='{$nxt['id']}' AND (`type`='4' OR `type`='6'))
118                        $add AND `ok`>0 AND `p_doc`!='0' GROUP BY `p_doc`");
119                        $disable='';
120                        if(@$prop=mysql_result($rs,0,0))
121                        {
122                                $prop=sprintf("%0.2f",$prop);
123                                if($prop>=$nxt['sum'])          $cl='f_green';
124                                else
125                                {
126                                        $cl='f_brown';
127                                        $disable='disabled';
128                                }
129                        }
130                        else
131                        {
132                                $cl='f_red';
133                                $disable='disabled';
134                        }
135                       
136                        $date=date("Y-m-d H:i:s", $nxt['date']);
137                        $tmpl->AddText("<tr class='lin$i $cl'><td><a href='/doc.php?mode=body&doc={$nxt['id']}'>{$nxt['id']}</a>
138                        <td>{$nxt['ruser_name']} / {$nxt['zuser_name']}<td>{$nxt['agent_name']} <td>$date<td>{$nxt['sum']}<td><input type='text' name='sum_doc[{$nxt['id']}]' value='$nach_sum' $disable>");
139                        $i=1-$i;
140                        if($disable=='')
141                        {
142                                if($nxt['zuser']>0)
143                                        $users[$nxt['zuser']]['sum']+=$nach_sum;
144                                else    $users[$nxt['user']]['sum']+=$nach_sum;
145                        }
146                }
147                $tmpl->AddText("</table>
148                <button>Начислить зарплату</button>
149                </form>
150                Суммы выплат:<br>");
151                foreach($users as $id=>$data)
152                {
153                        $tmpl->AddText("user:$id({$data['name']}) - {$data['sum']} руб.<br>");
154                }
155        }
156}
157
158function getName()
159{
160        return "Расчёт и выплата зарплаты с продаж";
161}
162
163};
164
165?>
Note: See TracBrowser for help on using the repository browser.