Changeset 45f0349
- Timestamp:
- Jan 17, 2012, 2:21:53 PM (11 years ago)
- Branches:
- master
- Children:
- c0dde68
- Parents:
- c214e53
- Location:
- web
- Files:
-
- 5 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
web/css/poseditor.js
rc214e53 r45f0349 282 282 document.getElementById('btn_sn_add').onclick=snAdd 283 283 284 // ??????????????????????????????????????????????????????????????????????????????????????????285 284 $("#sn").autocomplete("/doc.php", { 286 285 delay:300, … … 294 293 extraParams:{'mode':'srv','opt':'snp', 'doc': '1', 'pos': line} 295 294 }); 295 296 document.getElementById('sn').onkeyup=function(event) 297 { 298 if(event.keyCode==13) 299 { 300 snAdd(event) 301 } 302 } 303 296 304 } 297 305 else jAlert(json.message,"Ошибка", {}, 'icon_err') -
web/doc_otchet.php
rc214e53 r45f0349 34 34 'doc_otchet.php?mode=sverka_op' => 'Акт сверки (оперативный)', 35 35 'doc_otchet.php?mode=balance' => 'Баланс', 36 'doc_otchet.php?mode=dolgi' => 'Долги',37 'doc_otchet.php?mode=ostatki' => 'Остатки на складе',38 'doc_otchet.php?mode=ostatkinadatu' => 'Остатки на складе на дату',39 36 'doc_otchet.php?mode=agent_otchet' => 'Отчет по агенту', 40 'doc_otchet.php?mode=bankday' => 'Отчёт за день по банку',41 'doc_otchet.php?mode=kassday' => 'Отчёт за день по кассе',42 37 'doc_otchet.php?mode=img_otchet' => 'Отчет по изображениям', 43 38 'doc_otchet.php?mode=komplekt' => 'Отчет по комплектующим', … … 47 42 'doc_otchet.php?mode=doc_reestr' => 'Реестр документов', 48 43 'doc_otchet.php?mode=fin_otchet' => 'Сводный финансовый отчёт', 49 'doc_ otchet.php' => 'Другие отчёты');44 'doc_reports.php' => 'Другие отчёты'); 50 45 } 51 46 … … 56 51 <a href='doc_otchet.php?mode=sverka'><div>Акт сверки</div></a> 57 52 <a href='doc_otchet.php?mode=balance'><div>Баланс</div></a> 58 <a href='doc_otchet.php?mode=dolgi'><div>Долги</div></a>59 <a href='doc_otchet.php?mode=ostatki'><div>Остатки на складе</div></a>60 <a href='doc_otchet.php?mode=ostatkinadatu'><div>Остатки на складе на дату</div></a>61 53 <a href='doc_otchet.php?mode=agent_otchet'><div>Отчет по агенту</div></a> 62 <a href='doc_otchet.php?mode=bankday'><div>Отчёт за день по банку</div></a>63 <a href='doc_otchet.php?mode=kassday'><div>Отчёт за день по кассе</div></a>64 54 <a href='doc_otchet.php?mode=komplekt'><div>Отчет по комплектующим</div></a> 65 55 <a href='doc_otchet.php?mode=prod'><div>Отчёт по продажам</div></a> … … 70 60 <a href='doc_otchet.php?mode=fin_otchet'><div>Сводный финансовый отчёт</div></a> 71 61 <hr> 72 <a href='doc_ otchet.php'><div>Другие отчёты</div></a>";62 <a href='doc_reports.php'><div>Другие отчёты</div></a>"; 73 63 } 74 64 … … 184 174 } 185 175 186 class Report_Store 187 { 188 function Form() 189 { 190 global $tmpl; 191 $tmpl->SetText("<h1>Остатки товара на складе</h1> 192 <form action='' method='post'> 193 <input type='hidden' name='mode' value='ostatki'> 194 <input type='hidden' name='opt' value='make'> 195 <fieldset><legend>Отобразить цены</legend>"); 196 $res=mysql_query("SELECT `id`, `name` FROM `doc_cost` ORDER BY `id`"); 197 if(mysql_errno()) throw new MysqlException("Не удалось получить список цен"); 198 while($nxt=mysql_fetch_row($res)) 199 { 200 $tmpl->AddText("<label><input type='checkbox' name='cost[$nxt[0]]' value='$nxt[0]'>$nxt[1]</label><br>"); 201 } 202 $tmpl->AddText("</fieldset><br> 203 Группа товаров:<br>"); 204 GroupSelBlock(); 205 $tmpl->AddText("<button type='submit'>Создать отчет</button></form>"); 206 } 207 208 function MakeHTML() 209 { 210 global $tmpl; 211 $gs=rcv('gs'); 212 $g=@$_POST['g']; 213 $cost=@$_POST['cost']; 214 $tmpl->LoadTemplate('print'); 215 $tmpl->SetText("<h1>Остатки товара на складе</h1> 216 <table width=100%><tr><th>N<th>Наименование<th>Количество<th>Актуальная цена<br>поступления<th>Базовая цена<th>Наценка<th>Сумма по АЦП<th>Сумма по базовой"); 217 $col_count=8; 218 if(is_array($cost)) 219 { 220 $res=mysql_query("SELECT `id`, `name` FROM `doc_cost` ORDER BY `name`"); 221 if(mysql_errno()) throw new MysqlException("Не удалось получить список цен"); 222 $costs=array(); 223 while($nxt=mysql_fetch_row($res)) $costs[$nxt[0]]=$nxt[1]; 224 foreach($cost as $id => $value) 225 { 226 $tmpl->AddText("<th>".$costs[$id]); 227 $col_count++; 228 } 229 } 230 $sum=$bsum=$summass=0; 231 $res_group=mysql_query("SELECT `id`, `name` FROM `doc_group` ORDER BY `id`"); 232 while($group_line=mysql_fetch_assoc($res_group)) 233 { 234 if($gs && is_array($g)) 235 if(!in_array($group_line['id'],$g)) continue; 236 237 $tmpl->AddText("<tr><td colspan='$col_count' class='m1'>{$group_line['id']}. {$group_line['name']}</td></tr>"); 238 239 240 $res=mysql_query("SELECT `doc_base`.`id`, `doc_base`.`name`, `doc_base`.`cost`, 241 (SELECT SUM(`cnt`) FROM `doc_base_cnt` WHERE `doc_base_cnt`.`id`=`doc_base`.`id` GROUP BY `doc_base_cnt`.`id`) AS `count`, 242 `doc_base_dop`.`mass` 243 FROM `doc_base` 244 LEFT JOIN `doc_base_dop` ON `doc_base_dop`.`id`=`doc_base`.`id` 245 WHERE `doc_base`.`group`='{$group_line['id']}' 246 ORDER BY `doc_base`.`name`"); 247 if(mysql_errno()) throw new MysqlException("Не удалось получить список наименований"); 248 249 while($nxt=mysql_fetch_row($res)) 250 { 251 if($nxt[3]<=0) continue; 252 $act_cost=sprintf('%0.2f',GetInCost($nxt[0])); 253 $cost_p=sprintf("%0.2f",$nxt[2]); 254 $sum_p=sprintf("%0.2f",$act_cost*$nxt[3]); 255 $bsum_p=sprintf("%0.2f",$nxt[2]*$nxt[3]); 256 $sum+=$act_cost*$nxt[3]; 257 $bsum+=$nxt[2]*$nxt[3]; 258 if($nxt[3]<0) $nxt[3]='<b>'.$nxt[3].'</b/>'; 259 $summass+=$nxt[3]*$nxt[4]; 260 261 $nac=sprintf("%0.2f р. (%0.2f%%)",$cost_p-$act_cost,($cost_p/$act_cost)*100-100); 262 263 $tmpl->AddText("<tr><td>$nxt[0]<td>$nxt[1]<td>$nxt[3]<td>$act_cost р.<td>$cost_p р.<td>$nac<td>$sum_p р.<td>$bsum_p р."); 264 if(is_array($cost)) 265 { 266 foreach($cost as $id => $value) 267 { 268 $tmpl->AddText("<td>".GetCostPos($nxt[0], $id)); 269 } 270 } 271 } 272 } 273 $tmpl->AddText("<tr><td colspan='6'><b>Итого:</b><td>$sum р.<td>$bsum р. 274 </table><h3>Общая масса склада: $summass кг.</h3>"); 275 } 276 277 function Run($opt) 278 { 279 if($opt=='') $this->Form(); 280 else $this->MakeHTML(); 281 } 282 }; 283 284 class Report_KassDay 285 { 286 function Form() 287 { 288 global $tmpl; 289 $curdate=date("Y-m-d"); 290 $tmpl->AddText("<h1>Отчёт по кассе за текущий день</h1> 291 <link rel='stylesheet' href='/css/jquery/ui/themes/base/jquery.ui.all.css'> 292 <script src='/css/jquery/ui/jquery.ui.core.js'></script> 293 <script src='/css/jquery/ui/jquery.ui.widget.js'></script> 294 <script src='/css/jquery/ui/jquery.ui.datepicker.js'></script> 295 <script src='/css/jquery/ui/i18n/jquery.ui.datepicker-ru.js'></script> 296 <form action=''> 297 <input type='hidden' name='mode' value='kassday'> 298 <input type='hidden' name='opt' value='ok'> 299 Выберите кассу:<br> 300 <select name='kass'>"); 301 $res=mysql_query("SELECT `num`, `name` FROM `doc_kassa` WHERE `ids`='kassa' ORDER BY `num`"); 302 while($nxt=mysql_fetch_row($res)) 303 { 304 $tmpl->AddText("<option value='$nxt[0]'>$nxt[1]</option>"); 305 } 306 $tmpl->AddText("</select><br> 307 Выберите дату:<br> 308 <input type='text' name='date' id='datepicker_f' value='$curdate'><br> 309 <button type='submit'>Сформировать</button></form>"); 310 } 311 312 function MakeHTML() 313 { 314 global $tmpl; 315 $tmpl->LoadTemplate('print'); 316 $dt=rcv('date'); 317 $kass=rcv('kass'); 318 $res=mysql_query("SELECT `num`, `name` FROM `doc_kassa` WHERE `ids`='kassa'"); 319 if(mysql_errno()) throw new MysqlException("Не удалось получить список касс"); 320 $kass_list=array(); 321 while($nxt=mysql_fetch_row($res)) $kass_list[$nxt[0]]=$nxt[1]; 322 $tmpl->AddText("<h1>Отчёт по кассе {$kass_list[$kass]} за $dt</h1>"); 323 $daystart=strtotime("$dt 00:00:00"); 324 $dayend=strtotime("$dt 23:59:59"); 325 $tmpl->AddText("<table width='100%'><tr><th>ID<th>Время<th>Документ<th>Приход<th>Расход<th>В кассе"); 326 $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`, `doc_list`.`kassa`, `doc_dopdata`.`value` AS `vk_value` 327 FROM `doc_list` 328 LEFT JOIN `doc_agent` ON `doc_agent`.`id` = `doc_list`.`agent` 329 INNER JOIN `doc_types` ON `doc_types`.`id` = `doc_list`.`type` 330 LEFT JOIN `doc_list` AS `p` ON `p`.`id`=`doc_list`.`p_doc` 331 LEFT JOIN `doc_types` AS `t` ON `t`.`id` = `p`.`type` 332 LEFT JOIN `doc_dopdata` ON `doc_dopdata`.`doc`=`doc_list`.`id` AND `doc_dopdata`.`param`='v_kassu' 333 WHERE `doc_list`.`ok`>'0' AND ( `doc_list`.`type`='6' OR `doc_list`.`type`='7' OR `doc_list`.`type`='9') 334 AND (`doc_list`.`kassa`='$kass' OR `doc_dopdata`.`value`='$kass') 335 ORDER BY `doc_list`.`date`"); 336 $sum=$daysum=$prix=$rasx=0; 337 $flag=0; 338 while($nxt=mysql_fetch_array($res)) 339 { 340 $csum_p=$csum_r=''; 341 if( !$flag && $nxt[3]>=$daystart && $nxt[3]<=$dayend) 342 { 343 $flag=1; 344 $sum_p=sprintf("%0.2f руб.",$sum); 345 $tmpl->AddText("<tr><td colspan=5><b>На начало дня</b><td align='right'><b>$sum_p</b>"); 346 } 347 if($nxt[1]==6) $sum+=$nxt[2]; 348 else if($nxt[1]==7) $sum-=$nxt[2]; 349 else if($nxt[1]==9) 350 { 351 if($nxt['kassa']==$kass) 352 $sum-=$nxt[2]; 353 else $sum+=$nxt[2]; 354 } 355 if($nxt[3]>=$daystart && $nxt[3]<=$dayend) 356 { 357 if($nxt[1]==6) 358 { 359 $daysum+=$nxt[2]; 360 $prix+=$nxt[2]; 361 $csum_p=sprintf("%0.2f руб.",$nxt[2]); 362 } 363 else if($nxt[1]==7) 364 { 365 $daysum-=$nxt[2]; 366 $rasx+=$nxt[2]; 367 $csum_r=sprintf("%0.2f руб.",$nxt[2]); 368 } 369 else 370 { 371 if($nxt['kassa']==$kass) 372 { 373 $daysum-=$nxt[2]; 374 $rasx+=$nxt[2]; 375 $csum_r=sprintf("%0.2f руб.",$nxt[2]); 376 } 377 else 378 { 379 $daysum+=$nxt[2]; 380 $prix+=$nxt[2]; 381 $csum_p=sprintf("%0.2f руб.",$nxt[2]); 382 } 383 } 384 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>"; 385 else $sadd=''; 386 if($nxt[1]==6) $sadd.="<br>от $nxt[7]"; 387 else if($nxt[1]==7) $sadd.="<br>для $nxt[7]"; 388 else if($nxt[1]==9) 389 { 390 if($nxt['kassa']==$kass) $sadd.="<br>в кассу {$kass_list[$nxt['vk_value']]}"; 391 else $sadd.="<br>из кассы {$kass_list[$nxt['kassa']]}"; 392 } 393 $dt=date("H:i:s",$nxt[3]); 394 $sum_p=sprintf("%0.2f руб.",$sum); 395 396 $tmpl->AddText("<tr><td>$nxt[0]<td>$dt<td>$nxt[6] N$nxt[4]$nxt[5] $sadd<td align='right'>$csum_p<td align='right'>$csum_r<td align='right'>$sum_p</tr>"); 397 } 398 } 399 if( !$flag) 400 { 401 $sum_p=sprintf("%0.2f руб.",$sum); 402 $tmpl->AddText("<tr><td colspan=5><b>На начало дня</b><td align='right'><b>$sum_p</b>"); 403 } 404 if($flag) 405 { 406 $dsum_p=sprintf("%0.2f руб.",$daysum); 407 $psum_p=sprintf("%0.2f руб.",$prix); 408 $rsum_p=sprintf("%0.2f руб.",$rasx); 409 $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>"); 410 $tmpl->AddText("<tr><td>-<td>-<td><b>Разница за смену</b><td align='right' colspan=3><b>$dsum_p</b>"); 411 } 412 else $tmpl->AddText("<tr><td>-<td>-<td><b>Нет данных по балансу на выбранную дату</b><td align='right'><b>нет данных</b><td align='right'><b>нет данных</b><td align='right'><b>нет данных</b>"); 413 414 $res=mysql_query("SELECT `name` FROM `users` WHERE `id`='{$_SESSION['uid']}'"); 415 $nm=mysql_result($res,0,0); 416 417 $tmpl->AddText("</table><br><br> 418 Cоответствие сумм подтверждаю ___________________ ($nm)"); 419 } 420 421 function Run($opt) 422 { 423 if($opt=='') $this->Form(); 424 else $this->MakeHTML(); 425 } 426 }; 427 428 class Report_BankDay 429 { 430 function Form() 431 { 432 global $tmpl; 433 $curdate=date("Y-m-d"); 434 $tmpl->AddText("<h1>Отчёт по банку за текущий день (вариант 2)</h1> 435 <link rel='stylesheet' href='/css/jquery/ui/themes/base/jquery.ui.all.css'> 436 <script src='/css/jquery/ui/jquery.ui.core.js'></script> 437 <script src='/css/jquery/ui/jquery.ui.widget.js'></script> 438 <script src='/css/jquery/ui/jquery.ui.datepicker.js'></script> 439 <script src='/css/jquery/ui/i18n/jquery.ui.datepicker-ru.js'></script> 440 <form action=''> 441 <input type='hidden' name='mode' value='bankday'> 442 <input type='hidden' name='opt' value='ok'> 443 Выберите кассу:<br> 444 <select name='kass'>"); 445 $res=mysql_query("SELECT `num`, `name` FROM `doc_kassa` WHERE `ids`='bank' ORDER BY `num`"); 446 while($nxt=mysql_fetch_row($res)) 447 { 448 $tmpl->AddText("<option value='$nxt[0]'>$nxt[1]</option>"); 449 } 450 $tmpl->AddText("</select><br> 451 Выберите дату:<br> 452 <input type='text' name='date' id='datepicker_f' value='$curdate'><br> 453 <button type='submit'>Сформировать</button></form>"); 454 } 455 456 function MakeHTML() 457 { 458 global $tmpl; 459 $tmpl->LoadTemplate('print'); 460 $dt=rcv('date'); 461 $kass=rcv('kass'); 462 $res=mysql_query("SELECT `num`, `name` FROM `doc_kassa` WHERE `ids`='bank'"); 463 if(mysql_errno()) throw new MysqlException("Не удалось получить список банок"); 464 $kass_list=array(); 465 while($nxt=mysql_fetch_row($res)) $kass_list[$nxt[0]]=$nxt[1]; 466 $tmpl->AddText("<h1>Отчёт по банку {$kass_list[$kass]} за $dt</h1>"); 467 $daystart=strtotime("$dt 00:00:00"); 468 $dayend=strtotime("$dt 23:59:59"); 469 $tmpl->AddText("<table width='100%'><tr><th>ID<th>Время<th>Документ<th>Приход<th>Расход<th>В банке"); 470 $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`, `doc_list`.`bank` 471 FROM `doc_list` 472 LEFT JOIN `doc_agent` ON `doc_agent`.`id` = `doc_list`.`agent` 473 INNER JOIN `doc_types` ON `doc_types`.`id` = `doc_list`.`type` 474 LEFT JOIN `doc_list` AS `p` ON `p`.`id`=`doc_list`.`p_doc` 475 LEFT JOIN `doc_types` AS `t` ON `t`.`id` = `p`.`type` 476 WHERE `doc_list`.`ok`>'0' AND ( `doc_list`.`type`='4' OR `doc_list`.`type`='5') 477 AND `doc_list`.`bank`='$kass' 478 ORDER BY `doc_list`.`date`"); 479 if(mysql_errno()) throw new MysqlException("Не удалось получить данные отчёта".mysql_error()); 480 $sum=$daysum=$prix=$rasx=0; 481 $flag=0; 482 $lastdate=0; 483 while($nxt=mysql_fetch_array($res)) 484 { 485 $lastdate=$nxt[3]; 486 $csum_p=$csum_r=''; 487 if( !$flag && $nxt[3]>=$daystart && $nxt[3]<=$dayend) 488 { 489 $flag=1; 490 $sum_p=sprintf("%0.2f руб.",$sum); 491 $tmpl->AddText("<tr><td colspan=5><b>На начало дня</b><td align='right'><b>$sum_p</b>"); 492 } 493 if($nxt[1]==4) $sum+=$nxt[2]; 494 else if($nxt[1]==5) $sum-=$nxt[2]; 495 if($nxt[3]>=$daystart && $nxt[3]<=$dayend) 496 { 497 if($nxt[1]==4) 498 { 499 $daysum+=$nxt[2]; 500 $prix+=$nxt[2]; 501 $csum_p=sprintf("%0.2f руб.",$nxt[2]); 502 } 503 else if($nxt[1]==5) 504 { 505 $daysum-=$nxt[2]; 506 $rasx+=$nxt[2]; 507 $csum_r=sprintf("%0.2f руб.",$nxt[2]); 508 } 509 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>"; 510 else $sadd=''; 511 if($nxt[1]==4) $sadd.="<br>от $nxt[7]"; 512 else if($nxt[1]==5) $sadd.="<br>для $nxt[7]"; 513 514 $dt=date("H:i:s",$nxt[3]); 515 $sum_p=sprintf("%0.2f руб.",$sum); 516 517 $tmpl->AddText("<tr><td>$nxt[0]<td>$dt<td>$nxt[6] N$nxt[4]$nxt[5] $sadd<td align='right'>$csum_p<td align='right'>$csum_r<td align='right'>$sum_p</tr>"); 518 } 519 } 520 if( !$flag && $lastdate<=$dayend) 521 { 522 $sum_p=sprintf("%0.2f руб.",$sum); 523 $tmpl->AddText("<tr><td colspan=5><b>На начало дня</b><td align='right'><b>$sum_p</b>"); 524 } 525 if($flag) 526 { 527 $dsum_p=sprintf("%0.2f руб.",$daysum); 528 $psum_p=sprintf("%0.2f руб.",$prix); 529 $rsum_p=sprintf("%0.2f руб.",$rasx); 530 $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>"); 531 $tmpl->AddText("<tr><td>-<td>-<td><b>Разница за смену</b><td align='right' colspan=3><b>$dsum_p</b>"); 532 } 533 else $tmpl->AddText("<tr><td>-<td>-<td><b>Нет данных по балансу на выбранную дату</b><td align='right'><b>нет данных</b><td align='right'><b>нет данных</b><td align='right'><b>нет данных</b>"); 534 535 $res=mysql_query("SELECT `name` FROM `users` WHERE `id`='{$_SESSION['uid']}'"); 536 $nm=mysql_result($res,0,0); 537 538 $tmpl->AddText("</table><br><br> 539 Cоответствие сумм подтверждаю ___________________ (банкир $nm)"); 540 } 541 542 function Run($opt) 543 { 544 if($opt=='') $this->Form(); 545 else $this->MakeHTML(); 546 } 547 }; 548 549 class Report_Dolgi 550 { 551 function Form() 552 { 553 global $tmpl; 554 $curdate=date("Y-m-d"); 555 $tmpl->AddText("<h1>Отчёт по долгам</h1> 556 <form action=''> 557 <input type='hidden' name='mode' value='dolgi'> 558 <input type='hidden' name='opt' value='ok'> 559 Организация:<br> 560 <select name='firm_id'> 561 <option value='0'>--все--</option>"); 562 $res=mysql_query("SELECT `id`, `firm_name` FROM `doc_vars` ORDER BY `id`"); 563 while($nxt=mysql_fetch_row($res)) 564 { 565 $tmpl->AddText("<option value='$nxt[0]'>$nxt[1]</option>"); 566 } 567 $tmpl->AddText("</select><br> 568 Группа агентов:<br> 569 <select name='agroup'> 570 <option value='0'>--все--</option>"); 571 $res=mysql_query("SELECT `id`, `name` FROM `doc_agent_group` ORDER BY `name`"); 572 while($nxt=mysql_fetch_row($res)) 573 { 574 $tmpl->AddText("<option value='$nxt[0]'>$nxt[1]</option>"); 575 } 576 $tmpl->AddText("</select><br> 577 <fieldset><legend>Вид задолженности</legend> 578 <label><input type='radio' name='vdolga' value='1' checked>Нам должны</label><br> 579 <label><input type='radio' name='vdolga' value='2'>Мы должны</label> 580 </fieldset> 581 <button type='submit'>Сформировать</button></form>"); 582 } 583 584 function MakeHTML($vdolga) 585 { 586 global $tmpl; 587 $vdolga=rcv('vdolga'); 588 $agroup=rcv('agroup'); 589 $firm_id=rcv('firm_id'); 590 $tmpl->LoadTemplate('print'); 591 if($vdolga==2) $tmpl->SetText("<h1>Мы должны (от ".date('d.m.Y').")</h1>"); 592 else $tmpl->SetText("<h1>Долги партнёров (от ".date('d.m.Y').")</h1>"); 593 $tmpl->AddText("<table width=100%><tr><th>N<th>Агент - партнер<th>Дата сверки<th>Сумма"); 594 $sql_add=$agroup?"WHERE `group`='$agroup'":''; 595 $res=mysql_query("SELECT `id`, `name`, `data_sverki` FROM `doc_agent` $sql_add ORDER BY `name`"); 596 $i=0; 597 $sum_dolga=0; 598 while($nxt=mysql_fetch_row($res)) 599 { 600 $dolg=DocCalcDolg($nxt[0],0,$firm_id); 601 if( (($dolg>0)&&($vdolga==1))|| (($dolg<0)&&($vdolga==2)) ) 602 { 603 $i++; 604 $dolg=abs($dolg); 605 $sum_dolga+=$dolg; 606 $dolg=sprintf("%0.2f",$dolg); 607 $tmpl->AddText("<tr><td>$i<td>$nxt[1]<td>$nxt[2]<td align='right'>$dolg руб."); 608 609 } 610 } 611 $tmpl->AddText("</table> 612 <p>Итого: $i должников с общей суммой долга $sum_dolga руб.<br> (".num2str($sum_dolga).")</p>"); 613 } 614 615 function Run($opt) 616 { 617 if($opt=='') $this->Form(); 618 else $this->MakeHTML(); 619 } 620 }; 176 621 177 622 178 … … 657 213 $opt=rcv('opt'); 658 214 659 $otchet=new Report_OstatkiNaDatu(); // Ext215 $otchet=new Report_OstatkiNaDatu(); // Ext 660 216 $otchet->Run($opt); 661 217 } -
web/doc_sc.php
rc214e53 r45f0349 25 25 SafeLoadTemplate($CONFIG['site']['inner_skin']); 26 26 27 $ GLOBALS['m_left']=0;27 $tmpl->HideBlock('left'); 28 28 $mode=rcv('mode'); 29 29 $doc=rcv("doc"); -
web/include/doc.core.php
rc214e53 r45f0349 373 373 <div id='doc_menu_container'> 374 374 <div id='doc_menu_r'> 375 <a href='/user s.php' title='Возможности пользователя'><img src='/img/i_users.png' alt='Возможности пользователя' border='0'></a>375 <a href='/user.php' title='Возможности пользователя'><img src='/img/i_users.png' alt='Возможности пользователя' border='0'></a> 376 376 <a href='/login.php?mode=logout' title='Выход'><img src='/img/i_logout.png' alt='Выход'></a> 377 377 </div> -
web/include/reports/ostatkinadatu.php
rc214e53 r45f0349 21 21 class Report_OstatkiNaDatu 22 22 { 23 function draw_groups_tree($level) 24 { 25 $ret=''; 26 $res=mysql_query("SELECT `id`, `name`, `desc` FROM `doc_group` WHERE `pid`='$level' AND `hidelevel`='0' ORDER BY `name`"); 27 $i=0; 28 $r=''; 29 if($level==0) $r='IsRoot'; 30 $cnt=mysql_num_rows($res); 31 while($nxt=mysql_fetch_row($res)) 32 { 33 if($nxt[0]==0) continue; 34 $item="<label><input type='checkbox' name='g[]' value='$nxt[0]' id='cb$nxt[0]' class='cb' checked onclick='CheckCheck($nxt[0])'>$nxt[1]</label>"; 35 if($i>=($cnt-1)) $r.=" IsLast"; 36 $tmp=$this->draw_groups_tree($nxt[0]); // рекурсия 37 if($tmp) 38 $ret.="<li class='Node ExpandLeaf $r'><div class='Expand'></div><div class='Content'>$item</div><ul class='Container' id='cont$nxt[0]'>".$tmp.'</ul></li>'; 39 else 40 $ret.="<li class='Node ExpandLeaf $r'><div class='Expand'></div><div class='Content'>$item</div></li>"; 41 $i++; 42 } 43 return $ret; 44 } 45 46 47 function GroupSelBlock() 48 { 49 global $tmpl; 50 $tmpl->AddStyle(".scroll_block 51 { 52 max-height: 250px; 53 overflow: auto; 54 } 55 56 div#sb 57 { 58 display: none; 59 border: 1px solid #888; 60 } 61 62 .selmenu 63 { 64 background-color: #888; 65 width: auto; 66 font-weight: bold; 67 padding-left: 20px; 68 } 69 70 .selmenu a 71 { 72 color: #fff; 73 cursor: pointer; 74 } 75 76 .cb 77 { 78 width: 14px; 79 height: 14px; 80 border: 1px solid #ccc; 81 } 82 83 "); 84 $tmpl->AddText("<script type='text/javascript'> 85 function gstoggle() 86 { 87 var gs=document.getElementById('cgs').checked; 88 if(gs==true) 89 document.getElementById('sb').style.display='block'; 90 else document.getElementById('sb').style.display='none'; 91 } 92 93 function SelAll(flag) 94 { 95 var elems = document.getElementsByName('g[]'); 96 var l = elems.length; 97 for(var i=0; i<l; i++) 98 { 99 elems[i].checked=flag; 100 if(flag) elems[i].disabled = false; 101 } 102 } 103 104 function CheckCheck(ids) 105 { 106 var cb = document.getElementById('cb'+ids); 107 var cont=document.getElementById('cont'+ids); 108 if(!cont) return; 109 var elems=cont.getElementsByTagName('input'); 110 var l = elems.length; 111 for(var i=0; i<l; i++) 112 { 113 if(!cb.checked) elems[i].checked=false; 114 elems[i].disabled =! cb.checked; 115 } 116 } 117 118 </script> 119 <label><input type=checkbox name='gs' id='cgs' value='1' onclick='gstoggle()'>Выбрать группы</label><br> 120 <div class='scroll_block' id='sb'> 121 <ul class='Container'> 122 <div class='selmenu'><a onclick='SelAll(true)'>Выбрать всё<a> | <a onclick='SelAll(false)'>Снять всё</a></div> 123 ".$this->draw_groups_tree(0)."</ul></div>"); 124 } 125 126 23 127 function getName($short=0) 24 128 { … … 45 149 $tmpl->AddText("</select> 46 150 Группа товаров:<br>"); 47 GroupSelBlock();151 $this->GroupSelBlock(); 48 152 $tmpl->AddText("<button type='submit'>Создать отчет</button></form>"); 49 153 } … … 104 208 }; 105 209 106 $active_report=new Report_OstatkiNaDatu();107 210 ?> 108 211
Note: See TracChangeset
for help on using the changeset viewer.