1
Changeset 267 – MultiMag

Changeset 267


Ignore:
Timestamp:
Oct 2, 2011, 10:25:33 PM (7 years ago)
Author:
blacklight
Message:
  • Исправлено отображение данных контрагента в акте сверки
  • Добавлены суммы итого приход и итого расход за день в отчёте по кассе
  • Добавлена возможность просмотреть долги агента по каждой из фирм при клике на сумму долга и в отчёте
Location:
trunk/web
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/web/doc_otchet.php

    r258 r267  
    3636        'doc_otchet.php?mode=dolgi' => 'Долги',
    3737        'doc_otchet.php?mode=kassday' => 'Кассовый отчёт за день',
    38         'doc_otchet.php?mode=kassday2' => 'Кассовый отчёт за день (2)',
    3938        'doc_otchet.php?mode=ostatki' => 'Остатки на складе',
    4039        'doc_otchet.php?mode=ostatkinadatu' => 'Остатки на складе на дату',
     
    5958        <a href='doc_otchet.php?mode=dolgi'><div>Долги</div></a>
    6059        <a href='doc_otchet.php?mode=kassday'><div>Кассовый отчёт за день</div></a>
    61         <a href='doc_otchet.php?mode=kassday'><div>Кассовый отчёт за день (2)</div></a>
    6260        <a href='doc_otchet.php?mode=ostatki'><div>Остатки на складе</div></a>
    6361        <a href='doc_otchet.php?mode=ostatkinadatu'><div>Остатки на складе на дату</div></a>
     
    255253};
    256254
    257 class Report_KassDay2
     255class Report_KassDay
    258256{
    259257        function Form()
     
    268266                <script src='/css/jquery/ui/i18n/jquery.ui.datepicker-ru.js'></script>
    269267                <form action=''>
    270                 <input type='hidden' name='mode' value='kassday2'>
     268                <input type='hidden' name='mode' value='kassday'>
    271269                <input type='hidden' name='opt' value='ok'>
    272270                Выберите кассу:<br>
     
    292290                $daystart=strtotime("$dt 00:00:00");
    293291                $dayend=strtotime("$dt 23:59:59");
    294                 $tmpl->AddText("<table width='100%'><tr><th>ID<th>Время<th>Документ<th>Приход<th>Расход");                     
     292                $tmpl->AddText("<table width='100%'><tr><th>ID<th>Время<th>Документ<th>Приход<th>Расход<th>В кассе");                   
    295293                $res=mysql_query("SELECT `doc_list`.`id`, `doc_list`.`type`, `doc_list`.`sum`, `doc_list`.`date`, `doc_list`.`altnum`, `doc_list`.`subtype`, `doc_types`.`name`, `doc_agent`.`name`, `doc_list`.`p_doc`, `t`.`name`, `p`.`altnum`, `p`.`subtype`, `p`.`date`, `p`.`sum`         
    296294                FROM `doc_list`
     
    310308                                $flag=1;
    311309                                $sum_p=sprintf("%0.2f руб.",$sum);
    312                                 $tmpl->AddText("<tr><td>-<td>-<td><b>На начало дня</b><td align='right' colspan='2'><b>$sum_p</b>");
     310                                $tmpl->AddText("<tr><td colspan=5><b>На начало дня</b><td align='right'><b>$sum_p</b>");
    313311                        }
    314312                        if($nxt[1]==6)          $sum+=$nxt[2];
     
    333331                                $sum_p=sprintf("%0.2f руб.",$sum);
    334332                               
    335                                 $tmpl->AddText("<tr><td>$nxt[0]<td>$dt<td>$nxt[6] N$nxt[4]$nxt[5] $sadd<br>от $nxt[7]<td align='right'>$csum_p<td align='right'>$csum_r");     
     333                                $tmpl->AddText("<tr><td>$nxt[0]<td>$dt<td>$nxt[6] N$nxt[4]$nxt[5] $sadd<br>от $nxt[7]<td align='right'>$csum_p<td align='right'>$csum_r<td align='right'>$sum_p</tr>");
    336334                        }
    337335                }
     
    339337                $psum_p=sprintf("%0.2f руб.",$prix);
    340338                $rsum_p=sprintf("%0.2f руб.",$rasx);
    341                 $tmpl->AddText("<tr><td>-<td>-<td><b>На конец дня</b><td align='right' colspan='2'><b>$sum_p</b>");
    342 //              $tmpl->AddText("<tr><td>-<td>-<td><b>Приход за смену</b><td>-<td align='right'><b>$psum_p</b>");
    343 //              if($rasx)
    344 //              {
    345 //                      $tmpl->AddText("<tr><td>-<td>-<td><b>Расход за смену</b><td>-<td align='right'><b>$rsum_p</b>");
    346 //                      $tmpl->AddText("<tr><td>-<td>-<td><b>Разница за смену</b><td>-<td align='right'><b>$dsum_p</b>");
    347 //              }
    348 //             
    349 //              $res=mysql_query("SELECT `name` FROM `users` WHERE `id`='$uid'");
    350 //              $nm=mysql_result($res,0,0);
    351 //             
    352 //              $tmpl->AddText("</table><br><br>
    353 //              Cоответствие суммы подтверждаю ___________________ ($nm)");
     339                $tmpl->AddText("<tr><td>-<td>-<td><b>На конец дня</b><td align='right'><b>$psum_p</b><td align='right'><b>$rsum_p</b><td align='right'><b>$sum_p</b>");
     340                $tmpl->AddText("<tr><td>-<td>-<td><b>Разница за смену</b><td align='right' colspan=3><b>$dsum_p</b>");
     341               
     342               
     343                $res=mysql_query("SELECT `name` FROM `users` WHERE `id`='{$_SESSION['uid']}'");
     344                $nm=mysql_result($res,0,0);
     345               
     346                $tmpl->AddText("</table><br><br>
     347                Cоответствие сумм подтверждаю ___________________ ($nm)");
    354348        }
    355349       
     
    371365                <input type='hidden' name='mode' value='dolgi'>
    372366                <input type='hidden' name='opt' value='ok'>
     367                Организация:<br>
     368                <select name='firm_id'>
     369                <option value='0'>--все--</option>");
     370                $res=mysql_query("SELECT `id`, `firm_name` FROM `doc_vars` ORDER BY `id`");
     371                while($nxt=mysql_fetch_row($res))
     372                {
     373                        $tmpl->AddText("<option value='$nxt[0]'>$nxt[1]</option>");
     374                }
     375                $tmpl->AddText("</select><br>
    373376                Группа агентов:<br>
    374377                <select name='agroup'>
     
    392395                $vdolga=rcv('vdolga');
    393396                $agroup=rcv('agroup');
     397                $firm_id=rcv('firm_id');
    394398                $tmpl->LoadTemplate('print');
    395399                if($vdolga==2) $tmpl->SetText("<h1>Мы должны (от ".date('d.m.Y').")</h1>");
     
    402406                while($nxt=mysql_fetch_row($res))
    403407                {
    404                         $dolg=DocCalcDolg($nxt[0],0);
     408                        $dolg=DocCalcDolg($nxt[0],0,$firm_id);
    405409                        if( (($dolg>0)&&($vdolga==1))|| (($dolg<0)&&($vdolga==2)) )
    406410                        {
     
    439443        $tmpl->AddText(otch_divs());
    440444}
    441 else if($mode=='kassday2')
     445else if($mode=='kassday')
    442446{
    443447        $opt=rcv('opt');
    444         $otchet=new Report_KassDay2();
     448        $otchet=new Report_KassDay();
    445449        $otchet->Run($opt);
    446450}
     
    454458{
    455459        $opt=rcv('opt');
    456         $otchet=new Report_OstatkiNaDatu();     // Ext
     460
     461$otchet=new Report_OstatkiNaDatu();     // Ext
    457462        $otchet->Run($opt);
    458463}
     
    10271032                $tmpl->LoadTemplate('print');
    10281033
    1029                 $res=mysql_query("SELECT `id`, `fullname` FROM `doc_agent` WHERE `name`='$ag'");
    1030                 $agent=mysql_result($res,0,0);
    1031                 $fn=mysql_result($res,0,1);
    1032        
     1034                $res=mysql_query("SELECT `id`, `fullname`, `dir_fio` FROM `doc_agent` WHERE `id`='$ag'");
     1035                if(mysql_errno())               throw new MysqlException("Не удалось получить данные агента");
     1036                if(mysql_num_rows($res)==0)     throw new Exception("Не указан агент!");
     1037                list($agent, $fn, $dir_fio)=mysql_fetch_row($res);
     1038
    10331039                $tmpl->SetText("<center>Акт сверки<br>
    10341040                взаимных расчетов<br>".$dv['firm_name']."<br>
     
    10361042                $fn</center>
    10371043                Мы, нижеподписавшиеся, директор ".$dv['firm_name']." ".$dv['firm_director']."
    1038                 c одной стороны, и _____________ $fn ____________________ с другой стороны,
     1044                c одной стороны, и директор $fn $dir_fio с другой стороны,
    10391045                составили настоящий акт сверки в том, что состояние взаимных расчетов по
    10401046                данным учёта следующее:<br><br>");
     
    11641170                директор<br>____________________________ (".$dv['firm_director'].")<br><br>м.п.<br>
    11651171                <td colspan=4>От $fn<br>
    1166                 директор<br> ____________________________ (_____________)<br><br>м.п.<br>
     1172                директор<br> ____________________________ ($dir_fio)<br><br>м.п.<br>
    11671173                </table>");             
    11681174        }
     
    11831189                if(!$date_end) $date_end=time();
    11841190
    1185                 $res=mysql_query("SELECT `id`, `fullname`, `pdol`, `pfio` FROM `doc_agent` WHERE `id`='$agent_id'");
    1186                 if(mysql_errno())       throw new Exception("Не удалось выбрать агента");
    1187                 $agent=mysql_fetch_assoc($res);
     1191                $res=mysql_query("SELECT `id`, `fullname`, `dir_fio` FROM `doc_agent` WHERE `id`='$agent_id'");
     1192                if(mysql_errno())               throw new MysqlException("Не удалось получить данные агента");
     1193                if(mysql_num_rows($res)==0)     throw new Exception("Не указан агент $agent_id!");
     1194                list($agent, $fn, $dir_fio)=mysql_fetch_row($res);
    11881195               
    11891196                $firm_vars['firm_name']=unhtmlentities($firm_vars['firm_name']);
     
    12081215                $pdf->MultiCell(0,4,$str,0,'C',0);
    12091216                $pdf->Ln(2);
    1210                 $str="Мы, нижеподписавшиеся, директор {$firm_vars['firm_name']} {$firm_vars['firm_director']} c одной стороны, и              {$agent['fullname']}                 , с другой стороны, составили настоящий акт сверки о том, что состояние взаимных расчетов по данным учёта следующее:";                       
     1217                $str="Мы, нижеподписавшиеся, директор {$firm_vars['firm_name']} {$firm_vars['firm_director']} c одной стороны, и директор $fn $dir_fio, с другой стороны, составили настоящий акт сверки о том, что состояние взаимных расчетов по данным учёта следующее:";                   
    12111218                $str = iconv('UTF-8', 'windows-1251', $str);   
    12121219                $pdf->Write(5,$str,'');
     
    14061413                $str=iconv('UTF-8', 'windows-1251', "От {$firm_vars['firm_name']}\n\nДиректор ____________________________ ({$firm_vars['firm_director']})\n\n           м.п.");
    14071414                $pdf->MultiCell($t_width[0]+$t_width[1]+$t_width[2]+$t_width[3],5,$str,0,'L',0);
    1408                 $str=iconv('UTF-8', 'windows-1251', "От {$agent['fullname']}\n\n           ____________________________ (                )\n\n           м.п.");
     1415                $str=iconv('UTF-8', 'windows-1251', "От {$agent['fullname']}\n\n           ____________________________ ($dir_fio)\n\n           м.п.");
    14091416                $pdf->lMargin=$x;
    14101417                $pdf->setX($x);
     
    22562263        }
    22572264}
    2258 else if($mode=='kassday')
    2259 {
    2260         $opt=rcv('opt');
    2261         if($opt=='')
    2262         {
    2263                 $curdate=date("Y-m-d");
    2264                 $tmpl->AddText("<h1>Отчёт по кассе за текущий день</h1>
    2265                 <link rel='stylesheet' href='/css/jquery/ui/themes/base/jquery.ui.all.css'>
    2266                 <script src='/css/jquery/ui/jquery.ui.core.js'></script>
    2267                 <script src='/css/jquery/ui/jquery.ui.widget.js'></script>
    2268                 <script src='/css/jquery/ui/jquery.ui.datepicker.js'></script>
    2269                 <script src='/css/jquery/ui/i18n/jquery.ui.datepicker-ru.js'></script>
    2270                 <form action=''>
    2271                 <input type='hidden' name='mode' value='kassday'>
    2272                 <input type='hidden' name='opt' value='ok'>
    2273                 Выберите кассу:<br>
    2274                 <select name='kass'>");
    2275                 $res=mysql_query("SELECT `num`, `name` FROM `doc_kassa` WHERE `ids`='kassa'  ORDER BY `num`");
    2276                 while($nxt=mysql_fetch_row($res))
    2277                 {
    2278                         $tmpl->AddText("<option value='$nxt[0]'>$nxt[1]</option>");
    2279                 }
    2280                 $tmpl->AddText("</select><br>
    2281                 Выберите дату:<br>
    2282                 <input type='text' name='date' id='datepicker_f' value='$curdate'><br>
    2283                 <button type='submit'>Сформировать</button></form>");
    2284         }
    2285         else
    2286         {
    2287                 $tmpl->LoadTemplate('print');
    2288                 $dt=rcv('date');
    2289                 $kass=rcv('kass');
    2290                 $tmpl->AddText("<h1>Отчёт по кассе за $dt</h1>");               
    2291                 $daystart=strtotime("$dt 00:00:00");
    2292                 $dayend=strtotime("$dt 23:59:59");
    2293                 $tmpl->AddText("<table width='100%'><tr><th>ID<th>Время<th>Документ<th>Сумма документа<th>В кассе");                   
    2294                 $res=mysql_query("SELECT `doc_list`.`id`, `doc_list`.`type`, `doc_list`.`sum`, `doc_list`.`date`, `doc_list`.`altnum`, `doc_list`.`subtype`, `doc_types`.`name`, `doc_agent`.`name`, `doc_list`.`p_doc`, `t`.`name`, `p`.`altnum`, `p`.`subtype`, `p`.`date`, `p`.`sum`         
    2295                 FROM `doc_list`
    2296                 INNER JOIN `doc_agent`          ON `doc_agent`.`id` = `doc_list`.`agent`
    2297                 INNER JOIN `doc_types`          ON `doc_types`.`id` = `doc_list`.`type`
    2298                 LEFT JOIN `doc_list` AS `p`     ON `p`.`id`=`doc_list`.`p_doc`
    2299                 LEFT JOIN `doc_types` AS `t`    ON `t`.`id` = `p`.`type`               
    2300                 WHERE `doc_list`.`ok`>'0' AND ( `doc_list`.`type`='6' OR `doc_list`.`type`='7') AND `doc_list`.`kassa`='$kass'
    2301                 ORDER BY `doc_list`.`date`");
    2302                 $sum=$daysum=$prix=$rasx=0;
    2303                 $flag=0;
    2304                 while($nxt=mysql_fetch_row($res))
    2305                 {
    2306                         if( !$flag && $nxt[3]>=$daystart && $nxt[3]<=$dayend)
    2307                         {
    2308                                 $flag=1;
    2309                                 $sum_p=sprintf("%0.2f руб.",$sum);
    2310                                 $tmpl->AddText("<tr><td>-<td>-<td><b>На начало дня</b><td>-<td align='right'><b>$sum_p</b>");
    2311                         }
    2312                         if($nxt[1]==6)          $sum+=$nxt[2];
    2313                         else                    $sum-=$nxt[2];
    2314                         if($nxt[3]>=$daystart && $nxt[3]<=$dayend)
    2315                         {
    2316                                 if($nxt[1]==6)
    2317                                 {
    2318                                         $daysum+=$nxt[2];
    2319                                         $prix+=$nxt[2];
    2320                                 }
    2321                                 else
    2322                                 {
    2323                                         $daysum-=$nxt[2];
    2324                                         $rasx+=$nxt[2];
    2325                                 }
    2326                                 if($nxt[8])     $sadd="<br><i>к $nxt[9] N$nxt[10]$nxt[11] от ".date("d-m-Y H:i:s",$nxt[12])." на сумму ".sprintf("%0.2f руб",$nxt[13])."</i>";
    2327                                 else            $sadd='';
    2328                                 $dt=date("H:i:s",$nxt[3]);
    2329                                 $sum_p=sprintf("%0.2f руб.",$sum);
    2330                                 $csum_p=sprintf("%0.2f руб.",$nxt[2]);
    2331                                 $tmpl->AddText("<tr><td>$nxt[0]<td>$dt<td>$nxt[6] N$nxt[4]$nxt[5] $sadd<br>от $nxt[7]<td align='right'>$csum_p<td align='right'>$sum_p");       
    2332                         }
    2333                 }
    2334                 $dsum_p=sprintf("%0.2f руб.",$daysum);
    2335                 $psum_p=sprintf("%0.2f руб.",$prix);
    2336                 $rsum_p=sprintf("%0.2f руб.",$rasx);
    2337                 $tmpl->AddText("<tr><td>-<td>-<td><b>На конец дня</b><td>-<td align='right'><b>$sum_p</b>");
    2338                 $tmpl->AddText("<tr><td>-<td>-<td><b>Приход за смену</b><td>-<td align='right'><b>$psum_p</b>");
    2339                 if($rasx)
    2340                 {
    2341                         $tmpl->AddText("<tr><td>-<td>-<td><b>Расход за смену</b><td>-<td align='right'><b>$rsum_p</b>");
    2342                         $tmpl->AddText("<tr><td>-<td>-<td><b>Разница за смену</b><td>-<td align='right'><b>$dsum_p</b>");
    2343                 }
    2344                
    2345                 $res=mysql_query("SELECT `name` FROM `users` WHERE `id`='$uid'");
    2346                 $nm=mysql_result($res,0,0);
    2347                
    2348                 $tmpl->AddText("</table><br><br>
    2349                 Cоответствие суммы подтверждаю ___________________ ($nm)");
    2350         }
    2351 }
    23522265else $tmpl->msg("ERROR $mode","err");
    23532266
  • trunk/web/doc_service.php

    r264 r267  
    415415        if(rcv('opt'))
    416416        {
    417                 $res=mysql_query("SELECT `id`, `name`, `dont_control` FROM `doc_sklady`");
     417                $res=mysql_query("SELECT `id`, `name`, `dnc` FROM `doc_sklady`");
    418418                if(mysql_errno())       throw new MysqlException("Не удалось получить список складов");
    419419                while($nxt=mysql_fetch_row($res))
     
    424424                        $desc='';
    425425                        if($_POST['sname'][$nxt[0]]!=$nxt[1])   $desc.="name:(".mysql_real_escape_string($nxt[1])." => $name), ";
    426                         if($dnc!=$nxt[2])                       $desc.="dont_control: ($nxt[2] => $dnc)";
     426                        if($dnc!=$nxt[2])                       $desc.="dnc: ($nxt[2] => $dnc)";
    427427                        if($desc=='')   continue;                       
    428428                       
    429                         mysql_query("UPDATE `doc_sklady` SET `name`='$name', `dont_control`='$dnc' WHERE `id`='$nxt[0]'");
     429                        mysql_query("UPDATE `doc_sklady` SET `name`='$name', `dnc`='$dnc' WHERE `id`='$nxt[0]'");
    430430                        doc_log('UPDATE',$desc,'sklad',$nxt[0]);
    431431                }
     
    438438        <input type='hidden' name='opt' value='save'>
    439439        <table><tr><th>N</th><th>Наименование</th><th>Не контролировать остатки</th></tr>");
    440         $res=mysql_query("SELECT `id`, `name`, `dont_control` FROM `doc_sklady` ORDER BY `id`");
     440        $res=mysql_query("SELECT `id`, `name`, `dnc` FROM `doc_sklady` ORDER BY `id`");
    441441        if(mysql_errno())       throw new MysqlException("Не удалось получить список складов");
    442442        while($line=mysql_fetch_row($res))
  • trunk/web/include/doc.core.php

    r264 r267  
    537537}
    538538
    539 function DocCalcDolg($agent, $print=0)
     539function DocCalcDolg($agent, $print=0, $firm_id=0)
    540540{
    541541        global $tmpl;
    542542        $dolg=0;
    543         $res=mysql_query("SELECT `type`, `sum` FROM `doc_list` WHERE `ok`>'0' AND `agent`='$agent' AND `mark_del`='0'");
     543        $sql_add=$firm_id?"AND `firm_id`='$firm_id'":'';
     544        $res=mysql_query("SELECT `type`, `sum` FROM `doc_list` WHERE `ok`>'0' AND `agent`='$agent' AND `mark_del`='0' $sql_add");
    544545        while($nxt=mysql_fetch_row($res))
    545546        {
     
    557558
    558559        $dolg=sprintf("%0.2f", $dolg);
    559         if($print)
    560         {
    561                 if($dolg>0)
    562                         $tmpl->AddText("<b>Долг агента:</b> <b class=f_red>$dolg</b> рублей<br>");
    563                 else if($dolg<0)
    564                         $tmpl->AddText("<b>Наш долг:</b> $dolg рублей<br>");
    565         }
    566560        return $dolg;
    567561}
  • trunk/web/include/doc.nulltype.php

    r255 r267  
    328328                {
    329329                        $tmpl->AddText("<b>Агент-партнер:</b> ".$this->doc_data[3].", ");
    330                         DocCalcDolg($this->doc_data[2],1);             
     330                        $dolg=DocCalcDolg($this->doc_data[2]);
     331                        if($dolg>0)
     332                                $tmpl->AddText("<b>Общий долг агента:</b> <a onclick=\"ShowPopupWin('/docs.php?l=inf&mode=srv&opt=dolgi&agent={$this->doc_data[2]}'); return false;\"  title='Подробно' href='/docs.php?l=inf&mode=srv&opt=dolgi&agent={$this->doc_data[2]}'><b class=f_red>$dolg</b> рублей</a><br>");
     333                        else if($dolg<0)
     334                                $tmpl->AddText("<b>Наш общий долг:</b> <a onclick=\"ShowPopupWin('/docs.php?l=inf&mode=srv&opt=dolgi&agent={$this->doc_data[2]}'); return false;\"  title='Подробно' href='/docs.php?l=inf&mode=srv&opt=dolgi&agent={$this->doc_data[2]}'>$dolg рублей</a><br>");
     335
    331336                }
    332337               
  • trunk/web/include/doc.s.inform.php

    r230 r267  
    113113               
    114114                }
     115                else if($opt=='dolgi')
     116                {
     117                        $agent=rcv('agent');
     118                        $res=mysql_query("SELECT `id`, `firm_name` FROM `doc_vars` ORDER BY `id`");
     119                        if(mysql_errno())       throw new MysqlException("Не удалось получить список организаций");
     120                        while($nxt=mysql_fetch_row($res))
     121                        {
     122                                $dolg=DocCalcDolg($agent,0,$nxt[0]);
     123                                $tmpl->AddText("<div>Долг перед $nxt[1]: <b>$dolg</b> руб.</div>");
     124                        }
     125                }
    115126        }
    116127               
Note: See TracChangeset for help on using the changeset viewer.