Changeset f2cee48
- Timestamp:
- Mar 14, 2012, 4:13:02 PM (12 years ago)
- Branches:
- master
- Children:
- 5ce05c46
- Parents:
- 81eced7
- Files:
-
- 1 deleted
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
db_patches/316_322.sql
r81eced7 rf2cee48 3 3 SET SQL_MODE='TRADITIONAL'; 4 4 5 CREATE TABLE ` site`.`attachments` (5 CREATE TABLE `attachments` ( 6 6 `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , 7 7 `original_filename` VARCHAR( 64 ) NOT NULL , -
web/include/doc.kompredl.php
r81eced7 rf2cee48 708 708 $name=$nxt[0].' '.$nxt[1]; 709 709 if($nxt[2]) $name.='('.$nxt[2].')'; 710 $name = iconv('UTF-8', 'windows-1251', $name);710 $name = iconv('UTF-8', 'windows-1251', unhtmlentities($name)); 711 711 //$pdf->Cell($t_width[1],5,$name,1,0,'L',0); 712 $analog = iconv('UTF-8', 'windows-1251', $nxt[4]);712 $analog = iconv('UTF-8', 'windows-1251', unhtmlentities($nxt[4])); 713 713 //$pdf->Cell($t_width[2],5,$analog,1,0,'L',0); 714 $desc = iconv('UTF-8', 'windows-1251', $nxt[5]);714 $desc = iconv('UTF-8', 'windows-1251', unhtmlentities($nxt[5])); 715 715 //$pdf->Cell($t_width[3],5,$desc,1,0,'L',0); 716 716 $cost = iconv('UTF-8', 'windows-1251', $cost); -
web/include/doc.nulltype.php
r81eced7 rf2cee48 152 152 return $this->doc; 153 153 } 154 155 // Создать документ с товарными остатками на основе другого документа 156 // В новый документ войдут только те наименования, которых нет в других подчинённых документах 157 public function CreateFromPDiff($doc_obj) 158 { 159 $doc_data=$doc_obj->doc_data; 160 $doc_data['p_doc']=$doc_obj->doc; 161 if($this->sklad_editor_enable) 162 { 163 $res=mysql_query("SELECT `id` FROM `doc_list` WHERE `p_doc`='{$doc_obj->doc}' AND `type`='{$this->doc_type}'"); 164 $child_count=mysql_num_rows($res); 165 } 166 $this->Create($doc_data); 167 if($this->sklad_editor_enable) 168 { 169 if($child_count<1) 170 { 171 $res=mysql_query("SELECT `tovar`, `cnt`, `cost`, `page` FROM `doc_list_pos` WHERE `doc`='{$doc_obj->doc}' ORDER BY `doc_list_pos`.`id`"); 172 if(mysql_errno()) throw new MysqlException("Не удалось выбрать номенклатуру!"); 173 while($nxt=mysql_fetch_row($res)) 174 { 175 mysql_query("INSERT INTO `doc_list_pos` (`doc`, `tovar`, `cnt`, `cost`, `page`) 176 VALUES ('{$this->doc}', '$nxt[0]', '$nxt[1]', '$nxt[2]', '$nxt[3]')"); 177 if(mysql_errno()) throw new MysqlException("Не удалось сохранить номенклатуру!"); 178 } 179 } 180 else 181 { 182 $res=mysql_query("SELECT `a`.`tovar`, `a`.`cnt`, `a`.`comm`, `a`.`cost`, 183 ( SELECT SUM(`b`.`cnt`) FROM `doc_list_pos` AS `b` 184 INNER JOIN `doc_list` ON `b`.`doc`=`doc_list`.`id` AND `doc_list`.`p_doc`='{$doc_obj->doc}' AND `doc_list`.`mark_del`='0' 185 WHERE `b`.`tovar`=`a`.`tovar` ) 186 FROM `doc_list_pos` AS `a` 187 WHERE `a`.`doc`='{$doc_obj->doc}' 188 ORDER BY `a`.`id`"); 189 190 while($nxt=mysql_fetch_row($res)) 191 { 192 if($nxt[4]<$nxt[1]) 193 { 194 $n_cnt=$nxt[1]-$nxt[4]; 195 mysql_query("INSERT INTO `doc_list_pos` (`doc`, `tovar`, `cnt`, `comm`, `cost`) 196 VALUES ('{$this->doc}', '$nxt[0]', '$n_cnt', '$nxt[2]', '$nxt[3]' )"); 197 } 198 } 199 } 200 } 201 return $this->doc; 202 } 203 154 204 public function head() 155 205 { … … 457 507 $tmpl->AddText("</div> 458 508 <script type=\"text/javascript\"> 459 509 460 510 addEventListener('load',DocHeadInit,false) 461 511 462 512 //DocHeadInit() 463 513 </script> -
web/include/doc.realizaciya.php
r81eced7 rf2cee48 676 676 $tmpl->AddText("<h1>Наценки N {$this->doc_data[9]}{$this->doc_data[10]}, от $dt </h1> 677 677 <b>Поставщик: </b>{$this->firm_vars['firm_name']}<br> 678 <b>Покупатель: </b>{$this->doc_data[3]}<br><br>"); 679 680 $tmpl->AddText(" 678 <b>Покупатель: </b>{$this->doc_data[3]}<br>"); 679 680 $res=mysql_query("SELECT `users`.`name`, `users`.`rname` FROM `doc_list` 681 LEFT JOIN `users` ON `users`.`id`=`doc_list`.`user` 682 WHERE `doc_list`.`id`='{$this->doc_data['p_doc']}' AND `doc_list`.`type`='3'"); 683 if(mysql_errno()) throw new MysqlException('Ошибка выбоки автора заявки'); 684 if(mysql_num_rows($res)) 685 { 686 list($aname, $arname)=mysql_fetch_row($res); 687 if($arname) $arname.=' ('.$aname.')'; 688 else $arname=$aname; 689 $tmpl->AddText("<b>Автор заявки: </b>$arname<br>"); 690 } 691 else echo $this->doc; 692 693 $tmpl->AddText("<br> 681 694 <table width=800 cellspacing=0 cellpadding=0> 682 695 <tr><th>№</th><th width=450>Наименование<th>Кол-во<th>Стоимость<th>Сумма<th>АЦП<th>Наценка<th>Сумма наценки<th>П/закуп<th>Разница<th>Сумма разницы</tr>"); … … 688 701 WHERE `doc_list_pos`.`doc`='{$this->doc}' 689 702 ORDER BY `doc_list_pos`.`id`"); 703 if(mysql_errno()) throw new MysqlException('Ошибка выбоки товаров документа!'); 690 704 $i=0; 691 705 $ii=1; … … 703 717 $r=mysql_query("SELECT `doc_list`.`date`, `doc_list_pos`.`cost` FROM `doc_list_pos` 704 718 LEFT JOIN `doc_list` ON `doc_list`.`id`=`doc_list_pos`.`doc` 705 WHERE `doc_list`.`ok`>'0' AND `doc_list`.`type`='1' AND `doc_list_pos`.`tovar`='$nxt[6]' 719 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']}' 706 720 ORDER BY `doc_list`.`date` DESC"); 707 echo mysql_error(); 708 $zakup=sprintf('%0.2f',mysql_result($r,0,1)); 721 if(mysql_errno()) throw new MysqlException('Ошибка поиска поступления'); 722 if(mysql_num_rows($r)) $zakup=sprintf('%0.2f',mysql_result($r,0,1)); 723 else $zakup=0; 709 724 $razn=sprintf('%0.2f',$cost-$zakup); 710 725 $sum_razn=sprintf('%0.2f',$razn*$nxt[3]); … … 2132 2147 $i++; 2133 2148 } 2134 2149 2135 2150 $pdf->SetWidths($t_all_width); 2136 2151 2137 2152 $font_sizes=array(); 2138 2153 $font_sizes[0]=8; … … 2140 2155 $pdf->SetFSizes($font_sizes); 2141 2156 $pdf->SetHeight(4); 2142 2157 2143 2158 $aligns=array('L','R','R','R','R','R','C','R','R','R','R','L','R'); 2144 2159 $pdf->SetAligns($aligns); … … 2212 2227 $sum+=$snalogom; 2213 2228 $sumnaloga+=$nalog; 2214 2215 2229 2230 2216 2231 $row=array( "$nxt[0] $nxt[1] / $nxt[2]", $nxt[10], $nxt[8], $cnt, $cena, $stoimost, '--', "$ndsp%", $nalog, $snalogom, $nxt[11], $nxt[6], $gtd); 2217 2232 $pdf->RowIconv($row); … … 2245 2260 $sum+=$snalogom; 2246 2261 $sumnaloga+=$nalog; 2247 2262 2248 2263 $row=array( "$nxt[0] $nxt[1] / $nxt[2]", $nxt[10], $nxt[8], $nxt[3], $cena, $stoimost, '--', "$ndsp%", $nalog, $snalogom, $nxt[11], $nxt[6], $nxt[7]); 2249 2264 $pdf->RowIconv($row); -
web/include/doc.s.agent.php
r81eced7 rf2cee48 27 27 global $tmpl; 28 28 doc_menu(0,0); 29 29 30 30 $sklad=rcv('sklad'); 31 31 settype($sklad,'int'); … … 40 40 $tmpl->AddText("</table>"); 41 41 } 42 42 43 43 function Service() 44 44 { … … 58 58 else if($opt=='ep') 59 59 { 60 $this->Edit(); 60 $this->Edit(); 61 61 } 62 62 else if($opt=='acost') … … 99 99 else $tmpl->msg("Неверный режим!"); 100 100 } 101 101 102 102 // Служебные функции класса 103 103 function Edit() 104 104 { 105 global $tmpl; 105 global $tmpl; 106 106 doc_menu(); 107 107 $pos=rcv('pos'); … … 115 115 $this->PosMenu($pos, $param); 116 116 } 117 117 118 118 if($param=='') 119 119 { … … 123 123 if(mysql_errno()) throw new MysqlException("Выборка информации об агенте не удалась"); 124 124 $nxt=@mysql_fetch_row($res); 125 125 126 126 $pagent_name=''; 127 127 128 128 if(!$nxt) $tmpl->AddText("<h3>Новая запись</h3>"); 129 129 else if($nxt[26]>0) … … 138 138 <input type=hidden name=pos value=$pos> 139 139 <tr class=lin0><td align=right width=20%>Наименование 140 <td><input type=text name='pos_name' value='$nxt[1]'> 140 <td><input type=text name='pos_name' value='$nxt[1]'> 141 141 <tr class=lin1><td align=right>Тип: 142 142 <td>"); … … 149 149 { 150 150 $tmpl->AddText("<label><input type='radio' name='type' value='0'>Физическое лицо</label><br> 151 <label><input type='radio' name='type' value='1' checked>Юридическое лицо</label>"); 151 <label><input type='radio' name='type' value='1' checked>Юридическое лицо</label>"); 152 152 } 153 153 $tmpl->AddText(" … … 157 157 if((($pos!=0)&&($nxt[0]==0))||($group==0)) $i=" selected"; 158 158 $tmpl->AddText("<option value='0' $i>--</option>"); 159 159 160 160 $res=mysql_query("SELECT * FROM `doc_agent_group`"); 161 161 while($nx=mysql_fetch_row($res)) 162 162 { 163 163 $i=""; 164 164 165 165 if((($pos!=0)&&($nx[0]==$nxt[0]))||($group==$nx[0])) $i=" selected"; 166 166 $tmpl->AddText("<option value='$nx[0]' $i>$nx[1]</option>"); 167 167 } 168 168 169 169 $ext=''; 170 170 $rights=getright('doc_agent_ext',@$_SESSION['uid']); 171 171 if(! $rights['write']) $ext='disabled'; 172 172 173 173 $tmpl->AddText("</select> 174 174 <tr class=lin1><td align=right>Адрес электронной почты (e-mail)<td><input type=text name='email' value='$nxt[3]'> … … 199 199 $s=''; 200 200 if($nxt[21]==$nx[0]) $s='selected'; 201 $tmpl->AddText("<option value='$nx[0]' $s>$nx[1]</option>"); 201 $tmpl->AddText("<option value='$nx[0]' $s>$nx[1]</option>"); 202 202 } 203 203 $dish_checked=$nxt[25]?'checked':''; … … 219 219 matchContains:1, 220 220 cacheLength:10, 221 maxItemsToShow:15, 221 maxItemsToShow:15, 222 222 formatItem:agliFormat, 223 223 onItemSelect:agselectItem, … … 225 225 }); 226 226 }); 227 227 228 228 function agliFormat (row, i, num) { 229 229 var result = row[0] + \"<em class='qnt'>тел. \" + … … 231 231 return result; 232 232 } 233 233 234 234 function agselectItem(li) { 235 235 if( li == null ) var sValue = \"Ничего не выбрано!\"; … … 242 242 243 243 <tr class=lin1><td><td><input type=submit value='Сохранить'> 244 244 245 245 </table></form>"); 246 246 … … 261 261 <tr class=lin1><td>Дополнительно: 262 262 <td><label><input type='checkbox' name='set_def' value='1'>Установить по умолчанию</label> 263 <tr class=lin0><td colspan=2 align=center> 263 <tr class=lin0><td colspan=2 align=center> 264 264 <input type='submit' value='Сохранить'> 265 265 </table> … … 272 272 { 273 273 $tmpl->AddText("<img src='img/t/$nxt[0].$nxt[1]'><br>"); 274 } 274 } 275 275 } 276 276 else if($param=='h') … … 292 292 else if($param=='g') 293 293 { 294 $res=mysql_query("SELECT `id`, `name` , `desc` , `pid` 294 $res=mysql_query("SELECT `id`, `name` , `desc` , `pid` 295 295 FROM `doc_agent_group` 296 296 WHERE `id`='$group'"); … … 312 312 <td>Описание: 313 313 <td><textarea name='desc'>$nxt[2]</textarea> 314 <tr class=lin0><td colspan=2 align=center> 314 <tr class=lin0><td colspan=2 align=center> 315 315 <input type='submit' value='Сохранить'> 316 316 </table> … … 318 318 } 319 319 else $tmpl->msg("Неизвестная закладка"); 320 320 321 321 } 322 322 function ESave() 323 323 { 324 global $tmpl, $CONFIG; 324 global $tmpl, $CONFIG; 325 325 doc_menu(); 326 326 $pos=rcv('pos'); … … 331 331 { 332 332 //$this->PosMenu($pos, $param); 333 333 334 334 } 335 335 … … 340 340 if(mysql_error()) throw new Exception("Невозможно получить данные агента!"); 341 341 $ag_info=@mysql_fetch_assoc($res); 342 342 343 343 $log_text=''; 344 344 $log_start='U_MOT'; 345 345 346 346 $pos_name=rcv('pos_name'); 347 347 $type=rcv('type'); … … 376 376 } 377 377 else $p_agent='NULL'; 378 378 379 379 settype($g,'int'); 380 settype($bik,'int');381 380 settype($responsible,'int'); 382 381 settype($dishonest,'int'); 383 382 384 383 if($pos_name!=$ag_info['name']) $log_text.="name: ( {$ag_info['name']} => $pos_name ), "; 385 384 if($type!=$ag_info['type']) $log_text.="type: ( {$ag_info['type']} => $type ), "; … … 392 391 if($inn!=$ag_info['inn']) $log_text.="inn: ( {$ag_info['inn']} => $inn ), "; 393 392 if($rs!=$ag_info['rs']) $log_text.="rs: ( {$ag_info['rs']} => $rs ), "; 394 if($ks!=$ag_info['ks']) $log_text.="ks: ( {$ag_info['ks']} => $ks ), "; 393 if($ks!=$ag_info['ks']) $log_text.="ks: ( {$ag_info['ks']} => $ks ), "; 395 394 if($okevd!=$ag_info['okevd']) $log_text.="okevd: ( {$ag_info['okevd']} => $okevd ), "; 396 395 if($okpo!=$ag_info['okpo']) $log_text.="okpo: ( {$ag_info['okpo']} => $okpo ), "; … … 408 407 if(!$ag_info['p_agent']) $ag_info['p_agent']='NULL'; 409 408 if($p_agent!=$ag_info['p_agent']) $log_text.="p_agent: ( {$ag_info['p_agent']} => $p_agent ), "; 410 409 411 410 if( (!preg_match('/^\w+([-\.\w]+)*\w@\w(([-\.\w])*\w+)*\.\w{2,8}$/', $email)) && ($email!='') ) 412 411 { 413 412 $tmpl->msg("Неверный e-mail! Данные не сохранены!","err"); 414 } 413 } 415 414 else if($pos) 416 415 { 417 416 $log_start='UPDATE'; 418 417 419 418 $sql_add=''; 420 419 $rights=getright('doc_agent_ext',@$_SESSION['uid']); … … 431 430 } 432 431 else 433 { 432 { 434 433 $log_start='CREATE'; 435 434 436 435 $sql_c=$sql_v=''; 437 436 $rights=getright('doc_agent_ext',@$_SESSION['uid']); … … 450 449 else $tmpl->msg("Ошибка сохранения!".mysql_error(),"err"); 451 450 } 452 451 453 452 doc_log($log_start.' agent', $log_text, 'AGENT', $pos); 454 453 } … … 478 477 else 479 478 { 480 $iminfo=getimagesize($_FILES['userfile']['tmp_name']); 479 $iminfo=getimagesize($_FILES['userfile']['tmp_name']); 481 480 switch ($iminfo[2]) 482 481 { … … 502 501 } 503 502 } 504 503 505 504 //mysql_query("INSERT INTO `doc_base_img` (`pos_id`, `img_id`, `default`) VALUES ('$pos', '$img_id', '$set_def')"); 506 505 507 506 } 508 507 else if($param=='g') … … 514 513 if($group) 515 514 $res=mysql_query("UPDATE `doc_agent_group` SET `name`='$name', `desc`='$desc', `pid`='$pid' WHERE `id` = '$group'"); 516 else 515 else 517 516 $res=mysql_query("INSERT INTO `doc_agent_group` (`name`, `desc`, `pid`) 518 VALUES ('$name', '$desc', '$pid')"); 517 VALUES ('$name', '$desc', '$pid')"); 519 518 if($res) $tmpl->msg("Сохранено!"); 520 519 else $tmpl->msg("Ошибка!".mysql_error(),"err"); 521 520 } 522 521 else $tmpl->msg("Неизвестная закладка"); 523 } 524 522 } 523 525 524 function draw_level($select, $level) 526 525 { … … 535 534 if($nxt[0]==0) continue; 536 535 $item="<a href='' title='$nxt[2]' onclick=\"EditThis('/docs.php?l=agent&mode=srv&opt=pl&g=$nxt[0]','list'); return false;\" >$nxt[1]</a>"; 537 536 538 537 if($i>=($cnt-1)) $r.=" IsLast"; 539 538 540 539 $tmp=$this->draw_level($select, $nxt[0]); // рекурсия 541 540 if($tmp) … … 551 550 return $ret; 552 551 } 553 554 552 553 555 554 function draw_groups($select) 556 555 { … … 570 569 { 571 570 $res=mysql_query("SELECT `desc` FROM `doc_agent_group` WHERE `id`='$group'"); 572 $g_desc=mysql_result($res,0,0); 571 $g_desc=mysql_result($res,0,0); 573 572 if($g_desc) $tmpl->AddText("<h4>$g_desc</h4>"); 574 573 } 575 576 $sql="SELECT `doc_agent`.`id`, `doc_agent`.`group`, `doc_agent`.`name`, `doc_agent`.`tel`, `doc_agent`.`email`, `doc_agent`.`type`, `doc_agent`.`fullname`, `doc_agent`.`pfio`, `users`.`name`, `doc_agent`.`dishonest` 574 575 $sql="SELECT `doc_agent`.`id`, `doc_agent`.`group`, `doc_agent`.`name`, `doc_agent`.`tel`, `doc_agent`.`email`, `doc_agent`.`type`, `doc_agent`.`fullname`, `doc_agent`.`pfio`, `users`.`name`, `doc_agent`.`dishonest` 577 576 FROM `doc_agent` 578 577 LEFT JOIN `users` ON `doc_agent`.`responsible`=`users`.`id` … … 606 605 $tmpl->AddText("<br>"); 607 606 $sl=($page-1)*$lim; 608 607 609 608 $res=mysql_query("$sql LIMIT $sl,$lim"); 610 609 } … … 624 623 <a href='/docs.php?l=agent&mode=search'><img src='/img/i_find.png' alt=''> Расширенный поиск</a>"); 625 624 } 626 625 627 626 function ViewListS($group=0,$s) 628 627 { … … 632 631 $tmpl->AddText("<table width=100% cellspacing=1 cellpadding=2><tr> 633 632 <th>№<th>Название<th>Телефон<th>e-mail<th>Дополнительно"); 634 633 635 634 $sql="SELECT `doc_agent`.`id`, `doc_agent`.`group`, `doc_agent`.`name`, `doc_agent`.`tel`, `doc_agent`.`email`, `doc_agent`.`type`, `doc_agent`.`fullname`, `doc_agent`.`pfio`, `doc_agent`.`dishonest` FROM `doc_agent`"; 636 635 … … 643 642 $sf=1; 644 643 } 645 644 646 645 $sqla=$sql."WHERE (`doc_agent`.`name` LIKE '%$s%' OR `doc_agent`.`fullname` LIKE '%$s%') AND (`doc_agent`.`name` NOT LIKE '$s%' AND `doc_agent`.`fullname` NOT LIKE '$s%') ORDER BY `doc_agent`.`name` LIMIT 30"; 647 646 $res=mysql_query($sqla); … … 652 651 $sf=1; 653 652 } 654 653 655 654 $tmpl->AddText("</table><a href='/docs.php?l=agent&mode=srv&opt=ep&pos=0&g=$group'><img src='/img/i_add.png' alt=''> Добавить</a>"); 656 655 657 656 if($sf==0) 658 657 $tmpl->msg("По данным критериям записей не найдено!"); 659 658 } 660 659 661 660 function Search() 662 661 { … … 691 690 <td><input type=text name='kont'> 692 691 <td><input type=text name='pasp_num'> 693 692 694 693 <tr> 695 694 <td colspan=5 align=center><input type='submit' value='Найти'> … … 709 708 $kont=rcv('kont'); 710 709 $pasp_num=rcv('pasp_num'); 711 710 712 711 $sql="SELECT `doc_agent`.`id`, `doc_agent`.`group`, `doc_agent`.`name`, `doc_agent`.`tel`, `doc_agent`.`email`, `doc_agent`.`type`, `doc_agent`.`fullname`, `doc_agent`.`pfio` 713 712 FROM `doc_agent` WHERE 1 "; 714 713 715 714 if($name) $sql.="AND (`doc_agent`.`name` LIKE '%$name%' OR `doc_agent`.`fullname` LIKE '%$name%')"; 716 715 if($mail) $sql.="AND `doc_agent`.`email` LIKE '%$mail%'"; … … 723 722 724 723 $sql.=" ORDER BY `doc_agent`.`name`"; 725 724 726 725 $tmpl->AddText("<table width=100% cellspacing=1 cellpadding=2><tr> 727 726 <th>№<th>Название<th>Телефон<th>e-mail<th>Дополнительно"); 728 727 729 728 $res=mysql_query($sql); 730 729 echo mysql_error(); … … 738 737 } 739 738 } 740 739 741 740 function DrawTable($res,$s) 742 741 { … … 746 745 { 747 746 $nxt[2]=SearchHilight($nxt[2],$s); 748 $i=1-$i; 747 $i=1-$i; 749 748 if($nxt[5]) $info=$nxt[7]; 750 749 else $info=$nxt[6]; … … 754 753 $tmpl->AddText("<tr class='lin$i pointer' align='right' $red> 755 754 <td><a href='/docs.php?l=agent&mode=srv&opt=ep&pos=$nxt[0]'>$nxt[0]</a><td align=left>$nxt[2]<td>$nxt[3]<td>$nxt[4]<td>$info<td>$nxt[8]"); 756 } 757 } 758 755 } 756 } 757 759 758 function PosMenu($pos, $param) 760 759 { … … 763 762 if($param=='') $param='v'; 764 763 $sel[$param]="class='selected'"; 765 764 766 765 $tmpl->AddText("<ul class='tabs'> 767 766 <li><a {$sel['v']} href='/docs.php?l=agent&mode=srv&opt=ep&pos=$pos'>Основные</a></li> 768 767 <li><a {$sel['h']} href='/docs.php?l=agent&mode=srv&opt=ep&param=h&pos=$pos'>История</a></li> 769 768 770 769 </ul>"); 771 770 } 772 771 773 772 }; 774 773 -
web/include/doc.zayavka.php
r81eced7 rf2cee48 33 33 settype($this->doc,'int'); 34 34 } 35 35 36 36 function DopHead() 37 37 { … … 41 41 if(!isset($this->dop_data['delivery_date'])) $this->dop_data['delivery_date']=''; 42 42 $delivery_checked=@$this->dop_data['delivery']?'checked':''; 43 $tmpl->AddText("Кладовщик:<br><select name='kladovshik'>"); 43 $tmpl->AddText("Кладовщик:<br><select name='kladovshik'>"); 44 44 $res=mysql_query("SELECT `id`, `name`, `rname` FROM `users` WHERE `worker`='1' ORDER BY `name`"); 45 45 if(mysql_errno()) throw new MysqlException("Не удалось получить имя кладовщика"); … … 60 60 $delivery=rcv('delivery'); 61 61 $delivery_date=rcv('delivery_date'); 62 62 63 63 settype($kladovshik, 'int'); 64 64 $delivery=$delivery?'1':'0'; … … 70 70 ( '{$this->doc}' ,'delivery_date','$delivery_date')"); 71 71 } 72 72 73 73 function DocApply($silent=0) 74 74 { … … 76 76 $res=mysql_query("SELECT `doc_list`.`id`, `doc_list`.`date`, `doc_list`.`type`, `doc_list`.`sklad`, `doc_list`.`ok` 77 77 FROM `doc_list` WHERE `doc_list`.`id`='{$this->doc}'"); 78 if( !($nx=@mysql_fetch_row($res) ) ) throw new MysqlException('Ошибка выборки данных документа при проведении!'); 78 if( !($nx=@mysql_fetch_row($res) ) ) throw new MysqlException('Ошибка выборки данных документа при проведении!'); 79 79 if( $nx[4] && ( !$silent) ) throw new Exception('Документ уже был проведён!'); 80 80 if($silent) return; … … 89 89 FROM `doc_list` WHERE `doc_list`.`id`='{$this->doc}'"); 90 90 if(!$res) throw new MysqlException('Ошибка выборки данных документа!'); 91 if(! ($nx=@mysql_fetch_row($res))) throw new Exception('Документ не найден!'); 91 if(! ($nx=@mysql_fetch_row($res))) throw new Exception('Документ не найден!'); 92 92 if(!$nx[4]) throw new Exception('Документ НЕ проведён!'); 93 93 $tim=time(); … … 103 103 $tmpl->ajax=1; 104 104 $tmpl->AddText(" 105 <div onclick=\"window.location='/doc.php?mode=print&doc={$this->doc}&opt=komplekt'\">Накладная на комплектацию</div> 106 <div onclick=\"window.location='/doc.php?mode=print&doc={$this->doc}&opt=schet_pdf'\">Счёт</div> 107 <div onclick=\"ShowPopupWin('/doc.php?mode=print&doc={$this->doc}&opt=schet_email'); return false;\">Счёт PDF по e-mail</div> 108 <div onclick=\"ShowPopupWin('/doc.php?mode=print&doc={$this->doc}&opt=schet_ue'); return false;\">Счёт в у.е.</div> 105 <div onclick=\"window.location='/doc.php?mode=print&doc={$this->doc}&opt=komplekt'\">Накладная на комплектацию</div> 106 <div onclick=\"window.location='/doc.php?mode=print&doc={$this->doc}&opt=schet_pdf'\">Счёт</div> 107 <div onclick=\"ShowPopupWin('/doc.php?mode=print&doc={$this->doc}&opt=schet_email'); return false;\">Счёт PDF по e-mail</div> 108 <div onclick=\"ShowPopupWin('/doc.php?mode=print&doc={$this->doc}&opt=schet_ue'); return false;\">Счёт в у.е.</div> 109 109 <div onclick=\"window.location='/doc.php?mode=print&doc={$this->doc}&opt=csv_export'\">Экспорт в CSV</div>"); 110 110 } … … 148 148 $tmpl->ajax=1; 149 149 $tmpl->AddText(" 150 <div onclick=\"window.location='/doc.php?mode=morphto&doc={$this->doc}&tt=t2'\">Реализация</div> 151 <div onclick=\"window.location='/doc.php?mode=morphto&doc={$this->doc}&tt=2'\">Реализация (старый метод)</div> 150 <div onclick=\"window.location='/doc.php?mode=morphto&doc={$this->doc}&tt=t2'\">Реализация (все товары)</div> 151 <div onclick=\"window.location='/doc.php?mode=morphto&doc={$this->doc}&tt=d2'\">Реализация (неотгруженные)</div> 152 <div onclick=\"window.location='/doc.php?mode=morphto&doc={$this->doc}&tt=2'\">Реализация (устарело)</div> 152 153 <div onclick=\"window.location='/doc.php?mode=morphto&doc={$this->doc}&tt=6'\">Приходный кассовый ордер</div> 153 154 <div onclick=\"window.location='/doc.php?mode=morphto&doc={$this->doc}&tt=4'\">Приход средств в банк</div> … … 159 160 $dd=$new_doc->CreateFromP($this); 160 161 $new_doc->SetDopData('cena',$this->dop_data['cena']); 162 $new_doc->SetDopData('platelshik',$this->doc_data['agent']); 163 $new_doc->SetDopData('gruzop',$this->doc_data['agent']); 164 $new_doc->SetDopData('received',0); 165 header("Location: doc.php?mode=body&doc=$dd"); 166 } 167 else if($target_type=='d2') 168 { 169 $new_doc=new doc_Realizaciya(); 170 $dd=$new_doc->CreateFromPDiff($this); 171 $new_doc->SetDopData('cena',$this->dop_data['cena']); 172 $new_doc->SetDopData('platelshik',$this->doc_data['agent']); 173 $new_doc->SetDopData('gruzop',$this->doc_data['agent']); 174 $new_doc->SetDopData('received',0); 161 175 header("Location: doc.php?mode=body&doc=$dd"); 162 176 } … … 256 270 } 257 271 } 258 272 259 273 function Service() 260 274 { … … 279 293 (`type`, `agent`, `date`, `sklad`, `user`, `altnum`, `subtype`, `p_doc`, `sum`, `nds`, `firm_id`) 280 294 VALUES ('$target_type', '{$this->doc_data[2]}', '$tm', '{$this->doc_data[7]}', '$uid', '$altnum', '{$this->doc_data[10]}', '{$this->doc}', '$sum', '{$this->doc_data[12]}', '{$this->doc_data[17]}')"); 281 295 282 296 $r_id= mysql_insert_id(); 283 297 284 298 if(!$r_id) return 0; 285 299 286 300 doc_log("CREATE", "FROM {$this->doc_name} {$this->doc_name}", 'doc', $r_id); 287 301 288 302 mysql_query("REPLACE INTO `doc_dopdata` (`doc`,`param`,`value`) 289 303 VALUES ('$r_id','cena','{$this->dop_data['cena']}')"); … … 314 328 if($nxt[4]<$nxt[1]) 315 329 { 316 330 317 331 if(!$new_id) 318 332 { … … 324 338 VALUES ('$target_type', '{$this->doc_data[2]}', '$tm', '{$this->doc_data[7]}', '$uid', '$altnum', '{$this->doc_data[10]}', '{$this->doc}', '$sum', '{$this->doc_data[12]}', '{$this->doc_data[17]}')"); 325 339 $new_id= mysql_insert_id(); 326 340 327 341 mysql_query("REPLACE INTO `doc_dopdata` (`doc`,`param`,`value`) 328 342 VALUES ('$new_id','cena','{$this->dop_data['cena']}')"); … … 361 375 $res=mysql_query("SELECT `adres`, `tel` FROM `doc_agent` WHERE `id`='{$this->doc_data[2]}'"); 362 376 $agent_data=mysql_fetch_row($res); 363 377 364 378 $dt=date("d.m.Y",$this->doc_data[5]); 365 379 $tmpl->AddText(" … … 414 428 $sumcost = sprintf("%01.2f", $sum); 415 429 $summass = sprintf("%01.3f", $summass); 416 430 417 431 if($this->doc_data[12]) 418 432 { … … 444 458 $tmpl->AddText("<img src='{$CONFIG['site']['doc_shtamp']}' alt='Место для печати'>"); 445 459 $tmpl->AddText("<p align='right'>Масса товара: <b>$summass</b> кг.<br></p>"); 446 } 447 } 448 460 } 461 } 462 449 463 function SendEMail() 450 464 { … … 452 466 global $CONFIG; 453 467 $email=rcv('email'); 454 468 455 469 if($email=='') 456 470 { … … 466 480 <textarea name='comm'></textarea><br> 467 481 <input type='submit' value='>>'> 468 </form>"); 482 </form>"); 469 483 } 470 484 else … … 475 489 $tmpl->msg("Сообщение отправлено!","ok"); 476 490 } 477 478 } 479 491 492 } 493 480 494 function PrintSchetUE($coeff) 481 495 { 482 496 global $tmpl, $CONFIG, $uid; 483 497 484 498 if($coeff==0) $coeff=1; 485 499 … … 498 512 $res=mysql_query("SELECT `adres`, `tel` FROM `doc_agent` WHERE `id`='{$this->doc_data[2]}'"); 499 513 $agent_data=mysql_fetch_row($res); 500 514 501 515 $dt=date("d.m.Y",$this->doc_data[5]); 502 516 $tmpl->AddText(" … … 504 518 <table width=800> 505 519 <tr><td align=center> 506 520 507 521 Счёт действителен в течение трёх банковских дней.<br> 508 522 Внимание! Оплата данного счёта означает согласие с условиями поставки товара. Уведомление об оплате обязательно, … … 510 524 самовывозом, при наличии доверенности и паспорта.<br> 511 525 <b>Выполняйте заказы через наш сайт http://{$CONFIG['site']['name']} - экономьте своё и наше время!<br> 512 При заказе через сайт предоставляются скидки!</b><br> 526 При заказе через сайт предоставляются скидки!</b><br> 513 527 1 у.е. = $coeff руб. Курс действителен на дату выписки счёта. 514 528 <h3>Образец заполнения платёжного поручения</h3> … … 553 567 $sumcost = sprintf("%01.2f", $sum); 554 568 $summass = sprintf("%01.3f", $summass); 555 569 556 570 if($this->doc_data[12]) 557 571 { … … 580 594 } 581 595 $tmpl->AddText("<hr>"); 582 596 583 597 if($CONFIG['site']['doc_shtamp']) 584 598 $tmpl->AddText("<img src='{$CONFIG['site']['doc_shtamp']}' alt='Место для печати'>"); 585 599 $tmpl->AddText("<p align=right>Масса товара: <b>$summass</b> кг.<br></p>"); 586 } 587 } 588 600 } 601 } 602 589 603 function PrintPDF($to_str=0) 590 604 { … … 592 606 require('fpdf/fpdf_mysql.php'); 593 607 global $tmpl, $CONFIG, $uid; 594 608 595 609 $res=mysql_query("SELECT `adres`, `tel` FROM `doc_agent` WHERE `id`='{$this->doc_data[2]}'"); 596 610 $agent_data=mysql_fetch_row($res); 597 611 598 612 $res=mysql_query("SELECT `name`, `bik`, `rs`, `ks` FROM `doc_kassa` WHERE `ids`='bank' AND `num`='{$this->doc_data[16]}'"); 599 613 $bank_data=mysql_fetch_row($res); 600 614 601 615 $dt=date("d.m.Y",$this->doc_data[5]); 602 616 603 617 if(!isset($coeff)) $coeff=1; 604 618 if($coeff==0) $coeff=1; 605 619 if(!$to_str) $tmpl->ajax=1; 606 620 607 621 $pdf=new FPDF('P'); 608 622 $pdf->Open(); … … 613 627 $pdf->SetFont('Arial','',10); 614 628 $pdf->SetFillColor(255); 615 629 616 630 if(@$CONFIG['site']['doc_header']) 617 631 { … … 621 635 if($size[2]!=IMAGETYPE_JPEG) throw new Exception("Файл изображения не в jpeg формате"); 622 636 if($size[0]<800) throw new Exception("Разрешение изображения слишком мало! Допустимя ширина - не менее 800px"); 623 $width=190; 637 $width=190; 624 638 $offset_y=($size[1]/$size[0]*$width)+14; 625 $pdf->Image($header_img,8,10, $width); 639 $pdf->Image($header_img,8,10, $width); 626 640 $pdf->Sety($offset_y); 627 641 628 642 } 629 643 630 644 $str = "Внимание! Оплата данного счёта означает согласие с условиями поставки товара. Уведомление об оплате обязательно, иначе не гарантируется наличие товара на складе. Товар отпускается по факту прихода денег на р/с поставщика, самовывозом, при наличии доверенности и паспорта. Система интернет-заказов для постоянных клиентов доступна на нашем сайте http://{$CONFIG['site']['name']}."; 631 645 $str = iconv('UTF-8', 'windows-1251', $str); … … 636 650 $str = iconv('UTF-8', 'windows-1251', $str); 637 651 $pdf->Cell(0,5,$str,0,1,'C',0); 638 652 639 653 // $str="При оформлении заказа через сайт {$CONFIG['site']['name']} предоставляется значительная скидка!"; 640 654 // $pdf->SetFont('','U',12); 641 655 // $str = iconv('UTF-8', 'windows-1251', $str); 642 656 // $pdf->Cell(0,8,$str,0,1,'C',0); 643 657 644 658 $str='Образец заполнения платёжного поручения:'; 645 659 $str = iconv('UTF-8', 'windows-1251', $str); 646 660 $pdf->SetFont('','',11); 647 661 $pdf->Cell(0,5,$str,0,1,'C',0); 648 662 649 663 $old_x=$pdf->GetX(); 650 664 $old_y=$pdf->GetY(); … … 652 666 $table_c=110; 653 667 $table_c2=15; 654 668 655 669 $pdf->SetFont('','',12); 656 670 $str=$bank_data[0]; … … 665 679 $ty=$pdf->GetY(); 666 680 $pdf->Cell($table_c,10,'',1,1,'L',0); 667 681 668 682 $pdf->lMargin=$old_x+1; 669 683 $pdf->SetX($tx+1); … … 684 698 $str = iconv('UTF-8', 'windows-1251', $str); 685 699 $pdf->Cell($table_c2,10,$str,1,1,'L',0); 686 700 687 701 $pdf->lMargin=$old_x+$table_c+$table_c2; 688 702 $pdf->SetY($old_y); … … 696 710 $str = iconv('UTF-8', 'windows-1251', $str); 697 711 $pdf->Cell(0,15,$str,1,1,'L',0); 698 712 699 713 $pdf->lMargin=$old_margin; 700 714 $pdf->SetY($old_y+30); 701 702 715 716 703 717 $pdf->SetFont('','',16); 704 718 $str='Счёт № '.$this->doc_data[9].', от '.$dt; 705 $str = iconv('UTF-8', 'windows-1251', $str); 719 $str = iconv('UTF-8', 'windows-1251', $str); 706 720 $pdf->Cell(0,5,$str,0,1,'L',0); 707 721 $pdf->SetFont('','',8); 708 722 $str='Поставщик: '.unhtmlentities($this->firm_vars['firm_name'].', '.$this->firm_vars['firm_adres'].', тел:'.$this->firm_vars['firm_telefon']); 709 $str = iconv('UTF-8', 'windows-1251', $str); 723 $str = iconv('UTF-8', 'windows-1251', $str); 710 724 $pdf->MultiCell(0,4,$str,0,1,'L',0); 711 725 $str="Покупатель: ".unhtmlentities($this->doc_data[3].", адрес: $agent_data[0], телефон: $agent_data[1]"); 712 $str = iconv('UTF-8', 'windows-1251', $str); 726 $str = iconv('UTF-8', 'windows-1251', $str); 713 727 $pdf->MultiCell(0,4,$str,0,1,'L',0); 714 728 715 729 $pdf->Ln(3); 716 730 $pdf->SetFont('','',11); 717 $str = iconv('UTF-8', 'windows-1251', str_replace("<br>",", ",unhtmlentities($this->doc_data[4]))); 731 $str = iconv('UTF-8', 'windows-1251', str_replace("<br>",", ",unhtmlentities($this->doc_data[4]))); 718 732 $pdf->MultiCell(0,5,$str,0,1,'L',0); 719 733 720 734 $pdf->Ln(3); 721 735 722 736 $t_width=array(8,110,20,25,0); 723 737 $pdf->SetFont('','',12); 724 738 $str='№'; 725 $str = iconv('UTF-8', 'windows-1251', $str); 739 $str = iconv('UTF-8', 'windows-1251', $str); 726 740 $pdf->Cell($t_width[0],5,$str,1,0,'C',0); 727 741 $str='Наименование'; 728 $str = iconv('UTF-8', 'windows-1251', $str); 742 $str = iconv('UTF-8', 'windows-1251', $str); 729 743 $pdf->Cell($t_width[1],5,$str,1,0,'C',0); 730 744 $str='Кол-во'; 731 $str = iconv('UTF-8', 'windows-1251', $str); 745 $str = iconv('UTF-8', 'windows-1251', $str); 732 746 $pdf->Cell($t_width[2],5,$str,1,0,'C',0); 733 747 $str='Цена'; 734 $str = iconv('UTF-8', 'windows-1251', $str); 748 $str = iconv('UTF-8', 'windows-1251', $str); 735 749 $pdf->Cell($t_width[3],5,$str,1,0,'C',0); 736 750 $str='Сумма'; 737 $str = iconv('UTF-8', 'windows-1251', $str); 751 $str = iconv('UTF-8', 'windows-1251', $str); 738 752 $pdf->Cell($t_width[4],5,$str,1,0,'C',0); 739 753 $pdf->Ln(); 740 754 741 755 $pdf->SetFont('','',9); 742 756 743 757 $res=mysql_query("SELECT `doc_group`.`printname`, `doc_base`.`name`, `doc_base`.`proizv`, `doc_list_pos`.`cnt`, `doc_list_pos`.`cost`, `doc_base_dop`.`mass` 744 758 FROM `doc_list_pos` … … 758 772 $cost = sprintf("%01.2f р.", $nxt[4]); 759 773 $smcost = sprintf("%01.2f р.", $sm); 760 774 761 775 $name=$nxt[0].' '.$nxt[1]; 762 776 if($nxt[2]) $name.='('.$nxt[2].')'; … … 765 779 $rough_lines=ceil($pdf->GetStringWidth($name)/$t_width[1]); 766 780 767 if( $pdf->h <= ($pdf->GetY()+15 + $rough_lines*5 ) ) $pdf->AddPage(); 768 769 781 if( $pdf->h <= ($pdf->GetY()+15 + $rough_lines*5 ) ) $pdf->AddPage(); 782 783 770 784 // Вывод наименования и расчёт отступов 771 785 $old_x=$pdf->GetX(); 772 786 $old_y=$pdf->GetY(); 773 $pdf->SetX($pdf->GetX()+$t_width[0]); 787 $pdf->SetX($pdf->GetX()+$t_width[0]); 774 788 $pdf->MultiCell($t_width[1],5,$name,1,'L'); 775 789 $line_height=$pdf->GetY()-$old_y; 776 790 $pdf->SetX($old_x); 777 791 $pdf->SetY($old_y); 778 779 792 793 780 794 781 795 $pdf->Cell($t_width[0],$line_height,$i,1,0,'R'); … … 784 798 //$pdf->MultiCell($t_width[1],5,$str,1,'L'); 785 799 $pdf->Cell($t_width[2],$line_height,$nxt[3],1,0,'C'); 786 $str = iconv('UTF-8', 'windows-1251', $cost); 800 $str = iconv('UTF-8', 'windows-1251', $cost); 787 801 $pdf->Cell($t_width[3],$line_height,$str,1,0,'R'); 788 $str = iconv('UTF-8', 'windows-1251', $smcost); 802 $str = iconv('UTF-8', 'windows-1251', $smcost); 789 803 $pdf->Cell($t_width[4],$line_height,$str,1,0,'R'); 790 804 $pdf->Ln($line_height); 791 805 } 792 806 793 807 $cost = num2str($sum); 794 808 $sumcost = sprintf("%01.2f", $sum); 795 809 $summass = sprintf("%01.3f", $summass); 796 797 810 811 798 812 if($pdf->h<=($pdf->GetY()+60)) $pdf->AddPage(); 799 813 800 814 $delta=$pdf->h-($pdf->GetY()+55); 801 815 if($delta>17) $delta=17; 802 816 803 817 if($CONFIG['site']['doc_shtamp']) 804 818 { 805 819 $shtamp_img=str_replace('{FN}', $this->doc_data['firm_id'], $CONFIG['site']['doc_shtamp']); 806 $pdf->Image($shtamp_img, 4,$pdf->GetY()+$delta, 120); 807 } 808 820 $pdf->Image($shtamp_img, 4,$pdf->GetY()+$delta, 120); 821 } 822 809 823 $pdf->SetFont('','',8); 810 824 $str="Масса товара: $summass кг."; 811 $str = iconv('UTF-8', 'windows-1251', $str); 825 $str = iconv('UTF-8', 'windows-1251', $str); 812 826 $pdf->Cell(0,6,$str,0,0,'L',0); 813 827 814 828 if($this->doc_data[12]) 815 829 { … … 818 832 $pdf->SetFont('','',12); 819 833 $str="Итого: $sumcost руб."; 820 $str = iconv('UTF-8', 'windows-1251', $str); 834 $str = iconv('UTF-8', 'windows-1251', $str); 821 835 $pdf->Cell(0,7,$str,0,1,'R',0); 822 836 $str="В том числе НДС ".$this->firm_vars['param_nds']."%: $nds руб."; 823 $str = iconv('UTF-8', 'windows-1251', $str); 837 $str = iconv('UTF-8', 'windows-1251', $str); 824 838 $pdf->Cell(0,5,$str,0,1,'R',0); 825 839 826 840 $pdf->SetFont('','',8); 827 841 $str="Всего $i наименований, на сумму $sumcost руб. ($cost)"; 828 $str = iconv('UTF-8', 'windows-1251', $str); 842 $str = iconv('UTF-8', 'windows-1251', $str); 829 843 $pdf->Cell(0,4,$str,0,1,'L',0); 830 844 $str="В том числе НДС ".$this->firm_vars['param_nds']."%: $nds руб."; 831 $str = iconv('UTF-8', 'windows-1251', $str); 845 $str = iconv('UTF-8', 'windows-1251', $str); 832 846 $pdf->Cell(0,4,$str,0,1,'L',0); 833 847 834 848 } 835 849 else … … 841 855 $pdf->SetFont('','',10); 842 856 $str="Итого: $sumcost руб."; 843 $str = iconv('UTF-8', 'windows-1251', $str); 857 $str = iconv('UTF-8', 'windows-1251', $str); 844 858 $pdf->Cell(0,5,$str,0,1,'R',0); 845 859 $str="НДС ".$this->firm_vars['param_nds']."%: $nds_p руб."; 846 $str = iconv('UTF-8', 'windows-1251', $str); 860 $str = iconv('UTF-8', 'windows-1251', $str); 847 861 $pdf->Cell(0,4,$str,0,1,'R',0); 848 862 $str="Всего: $cost2 руб."; 849 $str = iconv('UTF-8', 'windows-1251', $str); 863 $str = iconv('UTF-8', 'windows-1251', $str); 850 864 $pdf->Cell(0,4,$str,0,1,'R',0); 851 865 852 866 $pdf->SetFont('','',8); 853 867 $str="Всего $i наименований, на сумму $sumcost руб. ($cost)"; 854 $str = iconv('UTF-8', 'windows-1251', $str); 868 $str = iconv('UTF-8', 'windows-1251', $str); 855 869 $pdf->Cell(0,4,$str,0,1,'L',0); 856 870 $str="Кроме того, НДС ".$this->firm_vars['param_nds']."%: $nds_p, Всего $cost2 руб."; 857 $str = iconv('UTF-8', 'windows-1251', $str); 871 $str = iconv('UTF-8', 'windows-1251', $str); 858 872 $pdf->Cell(0,4,$str,0,1,'L',0); 859 873 } 860 874 861 875 $res=mysql_query("SELECT `rname`, `tel`, `email` FROM `users` WHERE `id`='{$this->doc_data[8]}'"); 862 876 $name=@mysql_result($res,0,0); … … 864 878 $tel=@mysql_result($res,0,1); 865 879 $email=@mysql_result($res,0,2); 866 880 867 881 $pdf->SetAutoPageBreak(0,10); 868 882 $pdf->SetY($pdf->h-18); … … 870 884 $pdf->SetFont('','',10); 871 885 $str="Исп. менеджер $name"; 872 $str = iconv('UTF-8', 'windows-1251', $str); 886 $str = iconv('UTF-8', 'windows-1251', $str); 873 887 $pdf->Cell(0,4,$str,0,1,'R',0); 874 888 $str="Контактный телефон: $tel"; 875 $str = iconv('UTF-8', 'windows-1251', $str); 889 $str = iconv('UTF-8', 'windows-1251', $str); 876 890 $pdf->Cell(0,4,$str,0,1,'R',0); 877 891 $str="Электронная почта: $email"; 878 $str = iconv('UTF-8', 'windows-1251', $str); 892 $str = iconv('UTF-8', 'windows-1251', $str); 879 893 $pdf->Cell(0,4,$str,0,1,'R',0); 880 894 … … 944 958 $mass_p=num2str($summass,'kg',3); 945 959 $summass = sprintf("%01.3f", $summass); 946 960 947 961 $res=mysql_query("SELECT `name` FROM `users` WHERE `id`='$uid'"); 948 962 if(mysql_errno()) throw new MysqlException("Не удалось получить имя пользователя"); 949 963 $vip_name=@mysql_result($res,0,0); 950 964 951 965 $res=mysql_query("SELECT `name` FROM `users` WHERE `id`='{$this->doc_data['user']}'"); 952 966 if(mysql_errno()) throw new MysqlException("Не удалось получить имя автора"); … … 967 981 } 968 982 } 969 983 970 984 function CSVExport() 971 985 { 972 986 global $tmpl; 973 987 global $uid; 974 988 975 989 $dt=date("d.m.Y",$this->doc_data[5]); 976 990 977 991 if($coeff==0) $coeff=1; 978 992 if(!$to_str) $tmpl->ajax=1; 979 980 header("Content-type: 'application/octet-stream'"); 993 994 header("Content-type: 'application/octet-stream'"); 981 995 header("Content-Disposition: attachment; filename=zayavka.csv;"); 982 996 echo"PosNum;ID;Name;Proizv;Cnt;Cost;Sum\r\n"; 983 997 984 998 $res=mysql_query("SELECT `doc_base`.`id`, `doc_group`.`printname`, `doc_base`.`name`, `doc_base`.`proizv`, `doc_list_pos`.`cnt`, `doc_list_pos`.`cost` 985 999 FROM `doc_list_pos` -
web/include/reports/revision_act.php
r81eced7 rf2cee48 26 26 else return "Акт сверки взаимных расчетов"; 27 27 } 28 28 29 29 30 30 function Form() … … 46 46 Агент-партнёр:<br> 47 47 <input type='hidden' name='agent_id' id='agent_id' value=''> 48 <input type='text' id='ag' name='agent_name' style='width: 400px;' value=''><br> 48 <input type='text' id='ag' name='agent_name' style='width: 400px;' value=''><br> 49 49 <p class='datetime'> 50 50 Дата от:<br><input type='text' id='datepicker_f' name='date_st' value='1970-01-01' maxlength='10'><br> … … 56 56 { 57 57 if($CONFIG['site']['default_firm']==$nx[0]) $s=' selected'; else $s=''; 58 $tmpl->AddText("<option value='$nx[0]' $s>$nx[1]</option>"); 59 } 58 $tmpl->AddText("<option value='$nx[0]' $s>$nx[1]</option>"); 59 } 60 60 $tmpl->AddText("</select><br> 61 61 Подтип документа (оставьте пустым, если учитывать не требуется):<br> 62 62 <input type='text' name='subtype'><br> 63 63 <label><input type='radio' name='opt' value='html'>Выводить в виде HTML</label><br> 64 <label><input type='radio' name='opt' value='pdf' checked>Выводить в виде PDF</label><br> 64 <label><input type='radio' name='opt' value='pdf' checked>Выводить в виде PDF</label><br> 65 65 <button type='submit'>Сформировать отчет</button></form> 66 66 67 67 <script type='text/javascript'> 68 68 69 69 $(document).ready(function(){ 70 70 $(\"#ag\").autocomplete(\"/docs.php\", { … … 76 76 matchContains:1, 77 77 cacheLength:10, 78 maxItemsToShow:15, 78 maxItemsToShow:15, 79 79 formatItem:agliFormat, 80 80 onItemSelect:agselectItem, … … 82 82 }); 83 83 $.datepicker.setDefaults( $.datepicker.regional[ 'ru' ] ); 84 84 85 85 $( '#datepicker_f' ).datepicker({showButtonPanel: true }); 86 86 $( '#datepicker_f' ).datepicker( 'option', 'dateFormat', 'yy-mm-dd' ); … … 101 101 document.getElementById('agent_id').value=sValue; 102 102 } 103 104 </script>"); 103 104 </script>"); 105 105 } 106 106 107 107 function Make($opt='html') 108 108 { … … 127 127 $pdf->AddPage('P'); 128 128 } 129 129 130 130 $firm_id=rcv('firm_id'); 131 131 $subtype=rcv('subtype'); … … 133 133 $date_end=strtotime(rcv('date_end'))+60*60*24-1; 134 134 $agent_id=rcv('agent_id'); 135 135 136 136 settype($firm_id,'int'); 137 137 if($firm_id) … … 147 147 if(mysql_num_rows($res)==0) throw new Exception("Не указан агент $agent_id!"); 148 148 list($agent, $fn, $dir_fio)=mysql_fetch_row($res); 149 149 150 150 $sql_add=''; 151 151 if($firm_id>0) $sql_add.=" AND `doc_list`.`firm_id`='$firm_id'"; 152 152 if($subtype!='') $sql_add.=" AND `doc_list`.`subtype`='$subtype'"; 153 153 154 154 $res=mysql_query("SELECT `doc_list`.`id`, `doc_list`.`type`, `doc_list`.`date`, `doc_list`.`sum`, `doc_list`.`altnum`, `doc_types`.`name` 155 155 FROM `doc_list` … … 177 177 { 178 178 $firm_vars['firm_name']=unhtmlentities($firm_vars['firm_name']); 179 $agent['fullname']=unhtmlentities($agent['fullname']); 179 $agent['fullname']=unhtmlentities($agent['fullname']); 180 $fn=unhtmlentities($fn); 181 $dir_fio=unhtmlentities($dir_fio); 180 182 $pdf->SetFont('Arial','',16); 181 183 $str = iconv('UTF-8', 'windows-1251', $this->getName()); 182 $pdf->Cell(0,6,$str,0,1,'C',0); 183 184 $pdf->Cell(0,6,$str,0,1,'C',0); 185 184 186 $str="от {$firm_vars['firm_name']}\nза период с ".date("d.m.Y",$date_st)." по ".date("d.m.Y",$date_end); 185 187 $pdf->SetFont('Arial','',10); … … 187 189 $pdf->MultiCell(0,4,$str,0,'C',0); 188 190 $pdf->Ln(2); 189 $str="Мы, нижеподписавшиеся, директор {$firm_vars['firm_name']} {$firm_vars['firm_director']} c одной стороны, и директор $fn $dir_fio, с другой стороны, составили настоящий акт сверки о том, что состояние взаимных расчетов по данным учёта следующее:"; 190 $str = iconv('UTF-8', 'windows-1251', $str); 191 $str="Мы, нижеподписавшиеся, директор {$firm_vars['firm_name']} {$firm_vars['firm_director']} c одной стороны, и директор $fn $dir_fio, с другой стороны, составили настоящий акт сверки о том, что состояние взаимных расчетов по данным учёта следующее:"; 192 $str = iconv('UTF-8', 'windows-1251', $str); 191 193 $pdf->Write(5,$str,''); 192 194 193 195 $pdf->Ln(8); 194 196 $y=$pdf->GetY(); … … 197 199 $t_width=array(17,44,17,17,17,44,17,0); 198 200 $t_text=array('Дата', 'Операция', 'Дебет', 'Кредит', 'Дата', 'Операция', 'Дебет', 'Кредит'); 199 201 200 202 $h_width=$t_width[0]+$t_width[1]+$t_width[2]+$t_width[3]; 201 203 $str1=iconv('UTF-8', 'windows-1251', "По данным {$firm_vars['firm_name']}"); 202 204 $str2=iconv('UTF-8', 'windows-1251', "По данным $fn"); 203 205 204 206 $pdf->MultiCell($h_width,5,$str1,0,'L',0); 205 207 $max_h=$pdf->GetY()-$y; … … 224 226 } 225 227 $pr=$ras=0; 226 $f_print=false; 228 $f_print=false; 227 229 while($nxt=mysql_fetch_array($res)) 228 230 { 229 $deb=$kr=""; 231 $deb=$kr=""; 230 232 if( ($nxt[2]>=$date_st) && (!$f_print) ) 231 233 { … … 244 246 if($pr) $pr=sprintf("%01.2f", $pr); 245 247 if($ras)$ras=sprintf("%01.2f", $ras); 246 248 247 249 if($opt=='html') 248 250 { … … 313 315 if($kr) $kr=sprintf("%01.2f", $kr); 314 316 $dt=date("d.m.Y",$nxt[2]); 315 317 316 318 if($opt=='html') $tmpl->AddText("<tr><td>$dt<td>$nxt[5] N$nxt[4]<td>$deb<td>$kr<td><td><td><td>"); 317 319 else if($opt=='pdf') … … 330 332 } 331 333 } 332 334 333 335 $razn=$pr-$ras; 334 336 $razn_p=abs($razn); 335 337 $razn_p=sprintf("%01.2f", $razn_p); 336 338 337 339 $pr=sprintf("%01.2f", $pr); 338 340 $ras=sprintf("%01.2f", $ras); 339 341 340 342 if($opt=='html') 341 343 { … … 353 355 $pdf->Ln(); 354 356 } 355 357 356 358 if($pr>$ras) 357 359 { … … 367 369 if($pr) $pr=sprintf("%01.2f", $pr); 368 370 if($ras)$ras=sprintf("%01.2f", $ras); 369 371 370 372 if($opt=='html') 371 373 { … … 382 384 директор<br> ____________________________ ($dir_fio)<br><br>м.п.<br> 383 385 </table>"); 384 386 385 387 } 386 388 else if($opt=='pdf') … … 400 402 else if($razn<0) $str="задолженность в пользу ".$firm_vars['firm_name']." $razn_p руб."; 401 403 else $str="переплат и задолженностей нет!"; 402 404 403 405 $str=iconv('UTF-8', 'windows-1251', $str); 404 406 $pdf->Write(4,$str); … … 411 413 $pdf->lMargin=$x; 412 414 $pdf->setX($x); 413 415 414 416 $pdf->setY($y); 415 417 $pdf->MultiCell(0,5,$str,0,'L',0); … … 417 419 $pdf->Output('akt_sverki.pdf','I'); 418 420 } 419 420 421 422 421 423 } 422 424 423 425 function Run($opt) 424 426 { 425 427 if($opt=='') $this->Form(); 426 else if(($opt=='html')||($opt=='pdf')) $this->Make($opt); 428 else if(($opt=='html')||($opt=='pdf')) $this->Make($opt); 427 429 } 428 430 };
Note: See TracChangeset
for help on using the changeset viewer.