<?php /* 
Module:発送処理
 ==============================================
 =                 株式会社 松陰              =
 =            ♪ パソコンお直し隊 ♪          =
 ==============================================

 -  ファイル名 ： invoicepdf.php
 -
 -  概      要 ： 明細のPDFファイルを作成（ZendPDF　module　使用）
 -
 -  環      境 ： ターゲット    ：PostgreSQL 8.3, PHP 5
 -                プログラム開発：Windows XP, (VISTA Home)
 -
 -  作  成  者 ： Sainaa      2009年10月19日
 -                
*/

?>

<?php

$tax_rate = 0.10;//消費税率

require_once("Zend/Pdf.php");

$font;
$page;
$inkan;

//create_Invoices($pid);

if (isset($_POST["TODAY"]) && isset($_POST["ARCHIVED"]))
{	
	if ($_POST["TODAY"]!= 0 )
	
	{	
		$pid = $_POST["TODAY"];

		create_Invoices($pid);
	}
	else 
	{
		$pid=0;
		create_Invoices($pid);
	}
	
	
	
}
else
	exit;

//領収書
function create_Invoices($pid)
{
	global $tax_rate;

//$font = Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_HELVETICA);
	
	$usr = "test";
	$pass = "test";
	$dsn = "pgsql:dbname=postgres;";
	$conn = new PDO($dsn,$usr,$pass);



	$today = date("Y-m-d",strtotime('now'));
	$dayofweek = date("w",strtotime('now'));

	if ( $pid == 0 )
	{

		$pt_sql = "SELECT  *, computers.waydelivary  FROM invoices 
		LEFT OUTER JOIN computers on invoices.pid = computers.pcid 
		WHERE mitsumori=0 and (computers.newstatus ='修理完了。発送待ち' OR computers.newstatus ='修理完了。発送待ち。アラートなし' or computers.newstatus ='転送待ち')  
		and  computers.shipping_date ='".$today."'";
	}

	else 
	{
		$pt_sql = "SELECT  *, computers.waydelivary  FROM invoices 
		LEFT OUTER JOIN computers on invoices.pid = computers.pcid 
		WHERE (invoices.mitsumori=0 or invoices.mitsumori is null) and 
		(computers.newstatus ='修理完了。発送待ち' OR computers.newstatus ='修理完了。発送待ち。アラートなし' or computers.newstatus ='転送待ち')  
		and  invoices.pid =".$pid."";
	}

	
	
	
	$partsst = $conn->prepare($pt_sql);
	$partsst->execute();	
	$partsArray = $partsst->fetchAll();

	$x = 4;

try {
	$pdf = Zend_Pdf::load('templates.pdf');
	global $page,$font,$inkan;
	$invoiceTML = $pdf->pages[0];
	$seikyuTML = $pdf->pages[1];
	$nohinTML = $pdf->pages[2];
	$mitumoriTML = $pdf->pages[3];
	$font = Zend_Pdf_Font::fontWithPath('msgothic.ttf');
	$inkan = Zend_Pdf_Image::imageWithPath('inkan.png');

	foreach ($partsArray as $parts)
	
	{
		//echo "LOPP";
		$pdf->pages[] = new Zend_Pdf_Page($invoiceTML);
		
		$page = $pdf->pages[$x];


		//echo $parts['name']."<br>";
		$page->setFont($font, 12);

				//meisaiNO
				$page->drawText($parts['name'].' 様',75 , 750,'UTF-8');
				//echo ($parts['name']."\n");	
			
		$page->setFont($font, 9);

				//meisaiNO
				$page->drawText($parts['invoiceid'],504 , 788,'UTF-8');
		//$page->setFont($font, 10);	
		//Date
				$printDate = $parts['updated_date'];
				if ( ! $parts['updated_date'])
				{
					if (trim($parts['waydelivary']=="代引き"))
					{
						$printDate =  date("Y/m/d",strtotime( '+1 day'));
					}
					else 
					{
						$printDate =  date("Y/m/d",strtotime('now'));
					}
				}
				$printDate = date("Y年m月d日",strtotime($printDate));
				
				$page->drawText($printDate,480 , 220-22,'UTF-8');//date
				//Maker 643
				$page->drawText($parts['maker'],171 , 695,'UTF-8');
				//Model 634
				$page->drawText($parts['model'],171 , 683,'UTF-8');
				//contents
				//$page->drawText($parts['request'],171 , 616,'UTF-8');
				//623
				$condition = explode("<>",$parts['condition']);
				drawInFixedSize($condition[0],$font,9,171 , 678 ,250, 45);

				//target 526
				//$page->drawText($parts['target'],171 , 517,'UTF-8');
				drawInFixedSize($parts['target'],$font,9,171 , 575 ,250);
				//cause 498
				//$page->drawText($parts['problem'],171 , 489,'UTF-8');
				drawInFixedSize($parts['problem'],$font,9,171 , 541 ,250);
				//repair 470
				//$page->drawText($parts['repair'],171 , 461,'UTF-8');
				drawInFixedSize($parts['repair'],$font,9,171 , 505 ,250);
				//changebuhin 442
				//
				drawInFixedSize($parts['changed_part'],$font,9,171 , 472 ,250);
				//esp
				//$page->drawText($parts['special_info'],171 , 568,'UTF-8');
				//特記事項
				drawInFixedSize($parts['special_info'],$font,9,171 , 437 ,250);
				
				
				
				$sum=0;
//作業料				
				//workcharge
				$digits = 0;
				if ($parts['work_charge']!= '')
				{
					$sum = $sum + $parts['work_charge'];
					$digits = strlen($parts['work_charge']);
					//作業費用の金額　大きくすると右
					$page->drawText(num_format($parts['work_charge']),433-($digits+1)*4 , 348,'UTF-8');
				}
				
				$y=279-22;
				if (mb_eregi('代引き',$parts['waydelivary']))
				{
					$page->drawText("お支払い方法　※　代引き　※",100, $y,'UTF-8');
				}
				else if (mb_eregi('現金引取',$parts['waydelivary']) )
				{
					$page->drawText("お支払い方法　※　現金引取り　※",100, $y,'UTF-8');
				}
				else
				{
					$page->drawText("お支払い方法　※　振込　※",100, $y,'UTF-8');
				}
							
				//parts_charge1

// 343 / 332 / 321 / 309
				$parts_num = get_pNum($parts);
				for($parts_no=1; $parts_no <= $parts_num; $parts_no++){
					if ($parts['parts_charge'.$parts_no] != '')
					//品名　開始縦位置
					{	$y=337 - (11.4*($parts_no-1));
						$sum = $sum + $parts['parts_charge'.$parts_no]*$parts['parts_unit'.$parts_no];
//						$page->drawText($parts['parts_name'.$parts_no],100 , $y,'UTF-8');
						drawInFixedSize($parts['parts_name'.$parts_no],$font,9,100,$y+8,200,13);
						
						$digits = (strlen($parts['parts_charge'.$parts_no])>3 ? strlen($parts['parts_charge'.$parts_no]): strlen($parts['parts_charge'.$parts_no])-1 );
						//単価　大きくすると右
						$page->drawText(num_format($parts['parts_charge'.$parts_no]),295-($digits+1)*4 , $y,'UTF-8');
						//数量　大きくすると右
						$page->drawText($parts['parts_unit'.$parts_no],343, $y,'UTF-8');
						$digits = (strlen($parts['parts_charge'.$parts_no]*$parts['parts_unit'.$parts_no])>3 ? strlen($parts['parts_charge'.$parts_no]*$parts['parts_unit'.$parts_no]): strlen($parts['parts_charge'.$parts_no]*$parts['parts_unit'.$parts_no])-1 );
						//金額　大きくすると右
						$page->drawText(num_format($parts['parts_charge'.$parts_no]*$parts['parts_unit'.$parts_no]),433-($digits+1)*4 , $y,'UTF-8');
					}
					//$page->drawText($parts['parts_name1'],260 , 353,'UTF-8');
				}				
				//parts_charge2
/*
//332				
				if ($parts['parts_charge2'] != '')
				{	$y=338.5;
					$sum = $sum + $parts['parts_charge2']*$parts['parts_unit2'];
					$page->drawText($parts['parts_name2'],100 , $y,'UTF-8');
					
					$digits = (strlen($parts['parts_charge2'])>3 ? strlen($parts['parts_charge2']): strlen($parts['parts_charge2'])-1 );
					$page->drawText(num_format($parts['parts_charge2']),279-($digits+1)*4 , $y,'UTF-8');
					
					$page->drawText($parts['parts_unit2'],333, $y,'UTF-8');
					
					$digits = (strlen($parts['parts_charge2']*$parts['parts_unit2'])>3 ? strlen($parts['parts_charge2']*$parts['parts_unit2']): strlen($parts['parts_charge2']*$parts['parts_unit2'])-1 );
					$page->drawText(num_format($parts['parts_charge2']*$parts['parts_unit2']),423-($digits+1)*4 , $y,'UTF-8');
				}
				//$page->drawText($parts['parts_name2'],260 , 342,'UTF-8');
				
				//parts_change3

//321				
				if ($parts['parts_charge3'] != '')
				{	$y=327.5;
					$sum = $sum + $parts['parts_charge3']*$parts['parts_unit3'];
					$page->drawText($parts['parts_name3'],100 , $y,'UTF-8');
					
					$digits = (strlen($parts['parts_charge3'])>3 ? strlen($parts['parts_charge3']): strlen($parts['parts_charge3'])-1 );
					$page->drawText(num_format($parts['parts_charge3']),279-($digits+1)*4 , $y,'UTF-8');
					
					$page->drawText($parts['parts_unit3'],333, $y,'UTF-8');
					
					$digits = (strlen($parts['parts_charge3']*$parts['parts_unit3'])>3 ? strlen($parts['parts_charge3']*$parts['parts_unit3']): strlen($parts['parts_charge3']*$parts['parts_unit3'])-1 );
					$page->drawText(num_format($parts['parts_charge3']*$parts['parts_unit3']),423-($digits+1)*4 , $y,'UTF-8');
				}
				//$page->drawText($parts['parts_name3'],260 , 330,'UTF-8');
				
				//parts_change4

//309				
				if ($parts['parts_charge4'] != '')
				{	$y=315.5;
					$sum = $sum + $parts['parts_charge4']*$parts['parts_unit4'];
					$page->drawText($parts['parts_name4'],100 , $y,'UTF-8');
					
					$digits = (strlen($parts['parts_charge4'])>3 ? strlen($parts['parts_charge4']): strlen($parts['parts_charge4'])-1 );
					$page->drawText(num_format($parts['parts_charge4']),279-($digits+1)*4 , $y,'UTF-8');
					
					$page->drawText($parts['parts_unit4'],333, $y,'UTF-8');
					
					$digits = (strlen($parts['parts_charge4']*$parts['parts_unit4'])>3 ? strlen($parts['parts_charge4']*$parts['parts_unit4']): strlen($parts['parts_charge4']*$parts['parts_unit4'])-1 );
					$page->drawText(num_format($parts['parts_charge4']*$parts['parts_unit4']),423-($digits+1)*4 , $y,'UTF-8');
				}
				//$page->drawText($parts['parts_name4'],260 , 318,'UTF-8');
*/

				//tax
//消費税　298				
				$tax = 0;
				if ($parts['tax_type'] == '0')
				{

					$page->drawText("0",433-(1)*4 ,312-22,'UTF-8');
//298 - 38
				}
				else 
				{
					$tax = round($sum*$tax_rate);
					$digits =(strlen($tax)>3 ? strlen($tax):strlen($tax)-1);
					//消費税数字　	数値は横の位置　縦の位置の順番　大きくすると上
					$page->drawText(num_format($tax),433-($digits+1)*4,292-22,'UTF-8');
				}
				
				//$page->drawText(num_format($tax),243-(1+1)*4 , 308,'UTF-8');
				//sum
				$sum = $sum + $tax;
//その他				
				if ($parts['other_charge0'] != '')
				{
					$sum = $sum + $parts['other_charge0'];
					$digits = (strlen($parts['other_charge0'])>3 ? strlen($parts['other_charge0']): strlen($parts['other_charge0'])-1 );
					//その他数字　数値は横の位置　縦の位置の順番　大きくすると上
					$page->drawText(num_format($parts['other_charge0']),433-($digits+1)*4 , 281-22,'UTF-8');
					//その他文字
					$page->drawText($parts['other_name0'],445, 279-22,'UTF-8');
				}	
				//$page->drawText($parts['other_name0'],260 , 318,'UTF-8');
					
				//other_charge
				$transfee = 0;
//送料、手数料
				if ($parts['other_charge'] != '' || trim($parts['waydelivary']=="代引き") )
				{
					$transfee = 0;
					$transfee = $transfee + $parts['other_charge'];
					
					if (trim($parts['waydelivary']=="代引き"))
					{
						
						if (($sum+$transfee) <= 9700)
							$transfee+= 315;
						else if ( ($sum+$transfee) > 9700 && ($sum+$transfee) <=29600 )	
							$transfee+= 420;
						else if (  ($sum+$transfee) > 29600 && ($sum+$transfee) <= 100000  )
							$transfee+= 630;
						else if (  ($sum+$transfee) > 100000 && ($sum+$transfee) <= 300000  )
							$transfee+= 1050;
						else if (  ($sum+$transfee) > 300000 && ($sum+$transfee) <= 500000  )
							$transfee+= 2100;
						else if (  ($sum+$transfee) > 500000 && ($sum+$transfee) <= 1000000  )
							$transfee+= 3150;
						else 
							$transfee = $transfee;	
						
					}	
					$sum = round($sum + $transfee);
					
					$digits = (strlen($transfee)>3 ? strlen($transfee): strlen($transfee)-1 );
					//送料・代引き数値	数値は横の位置　縦の位置の順番　大きくすると上
					$page->drawText(num_format($transfee),433-($digits+1)*4 , 269-22,'UTF-8');
					//-47
				}
//合計				
				$digits = (strlen($sum)>3 ? strlen($sum): strlen($sum)-1 );
				$page->drawText(num_format($sum),433-($digits+1)*4 , 256-22,'UTF-8');



//領収書				
				//name
				$page->setFont($font, 11);
				$page->drawText($parts['name']."　様",170 , 170-22,'UTF-8');
				$page->setFont($font, 9);
				//echo $sum;
//合計
				//sum
				//合計金額
				$page->setFont($font, 15);
				$digits = strlen($sum);
				$page->drawText("￥".num_format($sum),340-($digits+1)*4 , 137-22,'UTF-8');

				
//電子印鑑 　印鑑の配置サイズ　（横　縦　横　縦の配置場所。プロット。一つを動かしたらもう片方も同じ数字で変更する）
				$page->drawImage($inkan, 510, 22, 550, 62);

				//if ($parts['other_bills']==1)
					//insertSeikyusho($pid,$pdf);
				//	x++;
				
				$billStr = sprintf("%03d",$parts['other_bills']);
				if (substr($billStr,2,1)=="1")
				{
					$pdf->pages[] = new Zend_Pdf_Page($nohinTML);
					$page = $pdf->pages[++$x];
					insertNohinsho($parts);
					
				}
				

				if (substr($billStr,1,1)=="1")
				{
					$pdf->pages[] = new Zend_Pdf_Page($seikyuTML);
					$page = $pdf->pages[++$x];
					
					insertSeikyusho($parts);
					
					
				}
				if (substr($billStr,0,1)=="1")
				{
					$pdf->pages[] = new Zend_Pdf_Page($mitumoriTML);
		
					$page = $pdf->pages[++$x];
				
					if (!insertMitsumori($parts['pcid']))
						{
							unset($pdf->pages[$x]);
							//$x--;
						}
						
				}
			$x++;
		
	}

	// 該当データが存在しない場合、PDFに出力するページが作れないので、その旨を表示したページを作成する
	if (count($partsArray) == 0) {
		$pdf->pages[] = new Zend_Pdf_Page(Zend_Pdf_Page::SIZE_A4);
		$page = $pdf->pages[$x];
		$page->setFont($font, 12);
		$msg_date = date("Y年m月d日",strtotime('now'));
		$msg = "本日($msg_date)出力対象のデータは見つかりません。";
		$page->drawText($msg, 50, 800, 'UTF-8');
	}
	
	unset($pdf->pages[0]);
	unset($pdf->pages[1]);
	unset($pdf->pages[2]);
	unset($pdf->pages[3]);
	
	$archive = $_POST["ARCHIVED"];
	
	if ( $archive == 1 && $pid == 0 )

		{
			$pdf->save("./pdffiles/meisai/M$today.pdf");
		}
		else if ($archive == 0 && $pid == 0)
		{
			$pdf->save("./TempInvoice-$dayofweek.pdf");
		}
		else 
		{
			$pdf->save("./printInvoice.pdf");

		}
} catch (Exception $e) {
  die('エラー: ' . $e->getMessage());    
}

if ($archive == 0 && $pid == 0 ) 

	{
	$file = "./TempInvoice-$dayofweek.pdf";
	header("Location: $file");
	exit();
	}
	else if ( $archive == 0 && $pid != 0 )
	{
		$file = "./printInvoice.pdf";
		header("Location: $file");
		exit();
	}
	else
	{
		echo "<body onLoad='alert(\"明細を無事に保存しました。\");window.close();'>";
	}
}



//}

function num_format($num)
{
	$digits = strlen($num);
		
	//return substr($num,0,$digits-3).','.substr($num,$digits-3,$digits);
	return number_format($num);
}

function drawInFixedSize($string,$font,$fontSize,$lw_x,$lw_y,$width,$cell_height=25)
{	$def_fsize=9;
	if (trim($string)=="")
		return;
	
	global $page;
	//$cell_height=25;
	
	
    //$string = iconv('UTF-8', 'UTF-16BE//IGNORE', $string);
    $string = mb_convert_encoding($string,'UTF-8');
	
	$characters = array();
    
	//	for ($i = 0; $i < mb_strlen($string); $i++) {
	//       $characters[] = (ord($string[$i++]) << 8 ) | ord($string[$i]);
	//    }
	 
	 $numChars = mb_strlen($string);
	for ($i = 0; $i < $numChars; $i++)
	{
		 $characters[] = mb_substr($string,$i,1,'UTF-8');
	}
	 
	// echo "NUMCHAR:$numChars\n";
	$glyphs = $font->glyphNumbersForCharacters($characters);
    $widths = $font->widthsForGlyphs($glyphs);
    $stringWidth = (array_sum($widths) / $font->getUnitsPerEm()) * $fontSize;
	 
	$perCharacterSize = $stringWidth / mb_strlen($string);
	
	$numOfChars = ($width-4)/$perCharacterSize;
	
	$lineNum = $stringWidth / ($width-4);
	 
		 $page->setFont($font,$fontSize);
	 
	 if ( $cell_height < $fontSize * ($lineNum+1) + 2)
	 {
		drawInFixedSize($string,$font,$fontSize-1,$lw_x,$lw_y,$width,$cell_height);
		
	 }
	 else 
	 {
		$start = 0;   $end = intval($numOfChars);
		
		for ($i=1; $i<$lineNum+1; $i++)
		{
		
		$page->drawText(mb_substr($string,$start,$end),$lw_x , $lw_y-$fontSize * $i,'UTF-8');
	//	echo "LOOP".$i."$start< ".mb_substr($string,$start,$end).  ">".$end;
		//echo "LOOP:$i Start:$start-End:$end\n";
		
		$start+= $end;
		
		
		if (($numChars - $start) > $numOfChars)
		{
			$end = intval($numOfChars);
			
		}
		
		else { $end = $numChars - $start+1; 
	
		}
			
		}
		
	 }
	 
	 $page->setFont($font,$def_fsize);
	
 }

 
 
function insertNohinsho($parts)
{
//納品書
		global $page,$font,$tax_rate,$inkan;

		$page->setFont($font, 15);
		
		//name
		$page->drawText($parts['name'].'　様',72 , 694,'UTF-8');
		
		$page->setFont($font, 9);
		//Maker
		//$page->drawText("メーカー　：".$parts['maker'],70 , 677,'UTF-8');
		
		//Model
		//$page->drawText("　　機種　：".$parts['model'],70 , 666,'UTF-8');
		
		//電子印鑑 　印鑑の配置サイズ　（横　縦　横　縦の配置場所。プロット。一つを動かしたらもう片方も同じ数字で変更する）
		$page->drawImage($inkan, 480, 630, 520, 670);
		
		//meisaiNO
		$page->drawText($parts['invoiceid'],455 , 730,'UTF-8');
		
		//$page->setFont($font, 10);	
		//Date
				$printDate = $parts['updated_date'];
				if ( ! $parts['updated_date'])
				{
					if (trim($parts['waydelivary']=="代引き"))
					{
						$printDate =  date("Y/m/d",strtotime( '+1 day'));
					}
					else 
					{
						$printDate =  date("Y/m/d",strtotime('now'));
					}
				}
				$printDate = date("Y年m月d日",strtotime($printDate));
				//日付
				$page->drawText($printDate,445 , 708,'UTF-8');		
				//件名
				$page->drawText("パソコン修理",175 , 649,'UTF-8');
				//納品先
				$page->drawText($parts['name'],175 , 614,'UTF-8');
							
				$sum=0;
				//支払条件
				if (mb_stristr($parts['waydelivary'],"代引き"))
				{
					$page->drawText("代金引換発送",175 , 580,'UTF-8');
					
				}
				else 
				{
					$page->drawText("銀行振込",175 , 580,'UTF-8');
					
									
				}
					
				
				//work_charge
				$digits = 0;
				if ($parts['work_charge']!= '')
				{
					$sum = $sum + $parts['work_charge'];
					$digits = strlen($parts['work_charge']);
					//作業費用の金額　　数値は横の位置　縦の位置の順番　大きくすると上
					$page->drawText(num_format($parts['work_charge']),505-($digits+1)*4 , 483,'UTF-8');
				}
				
				$parts_num = get_pNum($parts);
				//474 / 463 / 452 / 441
				for($parts_no=1; $parts_no <= $parts_num; $parts_no++){		
					//parts_charge1
					$digits = 0;
					if ($parts['parts_charge'.$parts_no] != '')
					//品名　開始縦位置　大きくすると上
					{	$y=471 -(11*($parts_no-1));
						$parts1sum = $parts['parts_charge'.$parts_no]*$parts['parts_unit'.$parts_no];
						$sum = $sum + $parts1sum;
						$digits = (strlen($parts['parts_charge'.$parts_no])>3 ? strlen($parts['parts_charge'.$parts_no]): strlen($parts['parts_charge'.$parts_no])-1 );
						//単価　大きくすると右
						$page->drawText(num_format($parts['parts_charge'.$parts_no]),296-($digits+1)*4 , $y,'UTF-8');
						//数量　大きくすると右
						$page->drawText(num_format($parts['parts_unit'.$parts_no]),365-(1)*4 , $y,'UTF-8');
						$digits = (strlen($parts1sum)>3 ? strlen($parts1sum): strlen($parts1sum)-1 );
						//金額　大きくすると右
						$page->drawText(num_format($parts1sum),505-($digits+1)*4 , $y,'UTF-8');
//						$page->drawText($parts['parts_name'.$parts_no],60 , $y,'UTF-8');
						drawInFixedSize($parts['parts_name'.$parts_no],$font,9,73,$y+8,267,13);
						
					}
				}

/*				
				//parts_charge2
				$digits = 0;
				if ($parts['parts_charge2'] != '')
				{
					$parts2sum = $parts['parts_charge2']*$parts['parts_unit2'];
					$sum = $sum + $parts2sum;
					$digits = (strlen($parts['parts_charge2'])>3 ? strlen($parts['parts_charge2']): strlen($parts['parts_charge2'])-1 );
					$page->drawText(num_format($parts['parts_charge2']),286-($digits+1)*4 , 463,'UTF-8');
					$page->drawText(num_format($parts['parts_unit2']),360-(1)*4 , 463,'UTF-8');
					$digits = (strlen($parts2sum)>3 ? strlen($parts2sum): strlen($parts2sum)-1 );
					$page->drawText(num_format($parts2sum),500-($digits+1)*4 ,463 ,'UTF-8');
					$page->drawText($parts['parts_name2'],60 ,463 ,'UTF-8');
				}
				
				//parts_change3
				$digits = 0;
				if ($parts['parts_charge3'] != '')
				{
					$parts3sum = $parts['parts_charge3']*$parts['parts_unit3'];
					$sum = $sum + $parts3sum;
					$digits = (strlen($parts['parts_charge3'])>3 ? strlen($parts['parts_charge3']): strlen($parts['parts_charge3'])-1 );
					$page->drawText(num_format($parts['parts_charge3']),286-($digits+1)*4 , 452,'UTF-8');
					$page->drawText(num_format($parts['parts_unit3']),360-(1)*4 , 452,'UTF-8');
					$digits = (strlen($parts3sum)>3 ? strlen($parts3sum): strlen($parts3sum)-1 );
					$page->drawText(num_format($parts3sum),500-($digits+1)*4 ,452 ,'UTF-8');
					$page->drawText($parts['parts_name3'],60 , 452,'UTF-8');
					
				}
				
				//parts_change4
				$digits = 0;
				if ($parts['parts_charge4'] != '')
				{	
					$parts4sum = $parts['parts_charge4']*$parts['parts_unit4'];
					$sum = $sum + $parts4sum;
					$digits = (strlen($parts['parts_charge4'])>3 ? strlen($parts['parts_charge4']): strlen($parts['parts_charge4'])-1 );
					$page->drawText(num_format($parts['parts_charge4']),286-($digits+1)*4 , 441,'UTF-8');
					$page->drawText(num_format($parts['parts_unit4']),360-(1)*4 , 441,'UTF-8');
					$digits = (strlen($parts4sum)>3 ? strlen($parts4sum): strlen($parts4sum)-1 );
					$page->drawText(num_format($parts4sum),500-($digits+1)*4 , 441,'UTF-8');
					$page->drawText($parts['parts_name4'],60 , 441,'UTF-8');
				}
*/
				//tax
				$smallSum = $sum;

				//smallSum　	小計　数値は横の位置　縦の位置の順番　大きくすると上
				$digits = strlen($smallSum);
				$page->drawText(num_format($smallSum),505-($digits+1)*4 , 363,'UTF-8');

				//消費税
				$tax = 0;
				if ($parts['tax_type'] == '0')
				{
					$page->drawText("0",505-(1)*4 , 355,'UTF-8');
				}
				else 
				{
					$tax = round($sum * $tax_rate);
					$digits = (strlen($tax)>3 ? strlen($tax): strlen($tax)-1 );
					$page->drawText(num_format($tax),505-($digits+1)*4 , 352,'UTF-8');
				}
				
				//sum　送料
				$sum = $sum + $tax;
				
				if ($parts['other_charge'] != '')
				{
					$sum = $sum + $parts['other_charge'];
					$digits = (strlen($parts['other_charge'])>3 ? strlen($parts['other_charge']): strlen($parts['other_charge'])-1 );
					//送料
					$page->drawText(num_format($parts['other_charge']),505-($digits+1)*4 , 340,'UTF-8');
					
				}	
					
				//other_charge
				if ($parts['other_charge0'] != '' || trim($parts['waydelivary'])=="代引き")
				{
					$transfee = 0;
					$transfee = $transfee + $parts['other_charge0'];
					
					if (trim($parts['waydelivary']=="代引き"))
					{
						
						if (($sum+$transfee) <= 9700)
							$transfee+= 315;
						else if ( ($sum+$transfee) > 9700 && ($sum+$transfee) <=29600 )	
							$transfee+= 420;
						else if (  ($sum+$transfee) > 29600 && ($sum+$transfee) <= 100000  )
							$transfee+= 630;
						else if (  ($sum+$transfee) > 100000 && ($sum+$transfee) <= 300000  )
							$transfee+= 1050;
						else if (  ($sum+$transfee) > 300000 && ($sum+$transfee) <= 500000  )
							$transfee+= 2100;
						else if (  ($sum+$transfee) > 500000 && ($sum+$transfee) <= 1000000  )
							$transfee+= 3150;
						else 
							$transfee = $transfee;	
						
					}	
					$sum = round($sum + $transfee);
					
					$digits = (strlen($transfee)>3 ? strlen($transfee): strlen($transfee)-1 );
					
					//代引き手数料
					$page->drawText(num_format($transfee),505-($digits+1)*4 , 329,'UTF-8');
				}
				$digits = (strlen($sum)>3 ? strlen($sum): strlen($sum)-1 );

				//合計
				$page->drawText(num_format($sum),505-($digits+1)*4 , 318,'UTF-8');
				//echo $sum;
				
				//biko
//				$page->drawText("お振り込みの場合、振込手数料はお客様負担でお願い致します。",60 , 290,'UTF-8');
//275				
				//特記事項
				drawInFixedSize($parts['special_info'],$font,9,73, 280, 400,75);
				
				//sum
				$page->setFont($font, 13);
				$digits = strlen($sum);
				//合計金額　数値は横の位置　縦の位置の順番　大きくすると上
				$page->drawText("￥".num_format($sum),320-($digits+1)*4 , 529,'UTF-8');
				
	
}

function insertSeikyusho($parts)
{
//請求書
		global $page,$font,$tax_rate,$inkan;
		
		$page->setFont($font, 15);

		//meisaiNO
		$page->drawText($parts['name'].' 様',72 , 694,'UTF-8');

		$page->setFont($font, 9);
		//Maker
		//$page->drawText("メーカー　：".$parts['maker'],70 , 677,'UTF-8');
		
		//Model
		//$page->drawText("　　機種　：".$parts['model'],70 , 666,'UTF-8');
		
		//電子印鑑 　印鑑の配置サイズ　（横　縦　横　縦の配置場所。プロット。一つを動かしたらもう片方も同じ数字で変更する）
		$page->drawImage($inkan, 480, 630, 520, 670);
		
		//meisaiNO
		$page->drawText($parts['invoiceid'],455 , 730,'UTF-8');
		
		//$page->setFont($font, 10);	
		//Date
				$printDate = $parts['updated_date'];
				if ( ! $parts['updated_date'])
				{
					if (trim($parts['waydelivary']=="代引き"))
					{
						$printDate =  date("Y/m/d",strtotime( '+1 day'));
					}
					else 
					{
						$printDate =  date("Y/m/d",strtotime('now'));
					}
				}
				$printDate = date("Y年m月d日",strtotime($printDate));
				//日付
				$page->drawText($printDate,445 , 710,'UTF-8');		
								
				$sum=0;
				
				
				
				
				//work_charge
				$digits = 0;
				if ($parts['work_charge']!= '')
				{
					$sum = $sum + $parts['work_charge'];
					$digits = strlen($parts['work_charge']);
					//作業費用の金額　数値は横の位置　縦の位置の順番　大きくすると上
					$page->drawText(num_format($parts['work_charge']),505-($digits+1)*4 , 545,'UTF-8');
				}
				
//529 / 518 / 507 / 496
				$parts_num = get_pNum($parts);
				for($parts_no=1; $parts_no <= $parts_num; $parts_no++){
					//parts_charge1
					$digits = 0;
					if ($parts['parts_charge'.$parts_no] != '')
					//品名　開始縦位置（全体に影響）　大きくすると上
					{	$y=533 - (11.2 * ($parts_no-1));
						$parts1sum = $parts['parts_charge'.$parts_no]*$parts['parts_unit'.$parts_no];
						$sum = $sum + $parts1sum;
						$digits = (strlen($parts['parts_charge'.$parts_no])>3 ? strlen($parts['parts_charge'.$parts_no]): strlen($parts['parts_charge'.$parts_no])-1 );
						//単価　大きくすると右
						$page->drawText(num_format($parts['parts_charge'.$parts_no]),296-($digits+1)*4 , $y,'UTF-8');
						//数量　大きくすると右
						$page->drawText(num_format($parts['parts_unit'.$parts_no]),365-(1)*4 , $y,'UTF-8');
						$digits = (strlen($parts1sum)>3 ? strlen($parts1sum): strlen($parts1sum)-1 );
						//金額　大きくすると右
						$page->drawText(num_format($parts1sum),505-($digits+1)*4 , $y,'UTF-8');
//						$page->drawText($parts['parts_name'.$parts_no],60 , 530,'UTF-8');
						drawInFixedSize($parts['parts_name'.$parts_no],$font,9,73,$y+8,267,13);
						
					}
				}
/*				
				//parts_charge2
				$digits = 0;
				if ($parts['parts_charge2'] != '')
				{
					$parts2sum = $parts['parts_charge2']*$parts['parts_unit2'];
					$sum = $sum + $parts2sum;
					$digits = (strlen($parts['parts_charge2'])>3 ? strlen($parts['parts_charge2']): strlen($parts['parts_charge2'])-1 );
					$page->drawText(num_format($parts['parts_charge2']),286-($digits+1)*4 , 518,'UTF-8');
					$page->drawText(num_format($parts['parts_unit2']),360-(1)*4 , 518,'UTF-8');
					$digits = (strlen($parts2sum)>3 ? strlen($parts2sum): strlen($parts2sum)-1 );
					$page->drawText(num_format($parts2sum),500-($digits+1)*4 ,518 ,'UTF-8');
					$page->drawText($parts['parts_name2'],60 ,518 ,'UTF-8');
				}
				
				//parts_change3
				$digits = 0;
				if ($parts['parts_charge3'] != '')
				{
					$parts3sum = $parts['parts_charge3']*$parts['parts_unit3'];
					$sum = $sum + $parts3sum;
					$digits = (strlen($parts['parts_charge3'])>3 ? strlen($parts['parts_charge3']): strlen($parts['parts_charge3'])-1 );
					$page->drawText(num_format($parts['parts_charge3']),286-($digits+1)*4 , 507,'UTF-8');
					$page->drawText(num_format($parts['parts_unit3']),360-(1)*4 , 507,'UTF-8');
					$digits = (strlen($parts3sum)>3 ? strlen($parts3sum): strlen($parts3sum)-1 );
					$page->drawText(num_format($parts3sum),500-($digits+1)*4 ,507 ,'UTF-8');
					$page->drawText($parts['parts_name3'],60 , 508,'UTF-8');
					
				}
				
				//parts_change4
				$digits = 0;
				if ($parts['parts_charge4'] != '')
				{	
					$parts4sum = $parts['parts_charge4']*$parts['parts_unit4'];
					$sum = $sum + $parts4sum;
					$digits = (strlen($parts['parts_charge4'])>3 ? strlen($parts['parts_charge4']): strlen($parts['parts_charge4'])-1 );
					$page->drawText(num_format($parts['parts_charge4']),286-($digits+1)*4 , 496,'UTF-8');
					$page->drawText(num_format($parts['parts_unit4']),360-(1)*4 , 496,'UTF-8');
					$digits = (strlen($parts4sum)>3 ? strlen($parts4sum): strlen($parts4sum)-1 );
					$page->drawText(num_format($parts4sum),500-($digits+1)*4 , 496,'UTF-8');
					$page->drawText($parts['parts_name4'],60 , 497,'UTF-8');
				}
*/
				//tax
				$smallSum = $sum;
				
				//smallSum　	小計　開始縦位置
				$digits = strlen($smallSum);
				$page->drawText(num_format($smallSum),505-($digits+1)*4 , 424,'UTF-8');
				
				//消費税
				$tax = 0;
				if ($parts['tax_type'] == '0')
				{
					$page->drawText("0",505-(1)*4 , 413,'UTF-8');
					
				}
				else 
				{
					$tax = round($sum * $tax_rate);
					$digits = (strlen($tax)>3 ? strlen($tax): strlen($tax)-1 );
					$page->drawText(num_format($tax),505-($digits+1)*4 , 413,'UTF-8');
				}
				
				//sum　送料
				$sum = $sum + $tax;
				
				if ($parts['other_charge'] != '')
				{
					$sum = $sum + $parts['other_charge'];
					$digits = (strlen($parts['other_charge'])>3 ? strlen($parts['other_charge']): strlen($parts['other_charge'])-1 );
					//送料
					$page->drawText(num_format($parts['other_charge']),505-($digits+1)*4 , 402,'UTF-8');
					
				}	
					
					
				//other_charge
				if ($parts['other_charge0'] != '' || trim($parts['waydelivary']=="代引き"))
				{
					$transfee = 0;
					$transfee = $transfee + $parts['other_charge0'];
					
					if (trim($parts['waydelivary']=="代引き"))
					{
						
						if (($sum+$transfee) <= 9700)
							$transfee+= 315;
						else if ( ($sum+$transfee) > 9700 && ($sum+$transfee) <=29600 )	
							$transfee+= 420;
						else if (  ($sum+$transfee) > 29600 && ($sum+$transfee) <= 100000  )
							$transfee+= 630;
						else if (  ($sum+$transfee) > 100000 && ($sum+$transfee) <= 300000  )
							$transfee+= 1050;
						else if (  ($sum+$transfee) > 300000 && ($sum+$transfee) <= 500000  )
							$transfee+= 2100;
						else if (  ($sum+$transfee) > 500000 && ($sum+$transfee) <= 1000000  )
							$transfee+= 3150;
						else 
							$transfee = $transfee;	
						
					}	
					$sum = round($sum + $transfee);
					
					$digits = (strlen($transfee)>3 ? strlen($transfee): strlen($transfee)-1 );
					
					//代引き手数料
					$page->drawText(num_format($transfee),505-($digits+1)*4 , 391,'UTF-8');
				}
				$digits = (strlen($sum)>3 ? strlen($sum): strlen($sum)-1 );

				//合計
				$page->drawText(num_format($sum),505-($digits+1)*4 , 380,'UTF-8');
				//echo $sum;
				
				//備考biko
				//$page->drawText("お振り込みの場合、振込手数料はお客様負担でお願い致します。",60 , 235,'UTF-8');

				//特記事項
				drawInFixedSize($parts['special_info'],$font,9,73 , 220 ,400,75);

				//sum
				$page->setFont($font, 13);
				$digits = strlen($sum);
				//合計金額
				$page->drawText("￥".num_format($sum),320-($digits+1)*4 , 590,'UTF-8');
				

}


function insertMitsumori($pc_id)
{
	global $page,$font,$tax_rate,$inkan;
	$usr = "test";
	$pass = "test";
	$dsn = "pgsql:dbname=postgres;";
	$conn = new PDO($dsn,$usr,$pass);
		
		$pt_sql = "SELECT  *, computers.waydelivary FROM invoices LEFT OUTER JOIN computers on invoices.pid = computers.pcid WHERE invoices.pid =".$pc_id."";
		
		$partsst = $conn->prepare($pt_sql);
		$partsst->execute();
		
		$partsArray = $partsst->fetchAll();
			
		if (count($partsArray)== 0)
			return false;
	
	foreach ($partsArray as $parts)
	
	{
//見積書
		$page->setFont($font, 15);

			//meisaiNO
			$page->drawText($parts['name'].' 様',70 , 692,'UTF-8');
		
			$page->setFont($font, 9);
			//meisaiNO
			$page->drawText($parts['invoiceid'],455 , 730,'UTF-8');

			//電子印鑑 　印鑑の配置サイズ　（横　縦　横　縦の配置場所。プロット。一つを動かしたらもう片方も同じ数字で変更する）
			$page->drawImage($inkan, 480, 630, 520, 670);
		
		//$page->setFont($font, 10);	
		//Date
				$printDate = $parts['updated_date'];
				if ( ! $parts['updated_date'])
				{
					if (trim($parts['waydelivary']=="代引き"))
					{
						$printDate =  date("Y/m/d",strtotime( '+1 day'));
					}
					else 
					{
						$printDate =  date("Y/m/d",strtotime('now'));
					}
				}
				$printDate = date("Y年m月d日",strtotime($printDate));
				//日付
				$page->drawText($printDate,445 , 706,'UTF-8');		
				//故障内容
				drawInFixedSize($parts['target'],$font,9,60 , 540 ,420,50);
				$page->setFont($font, 9);				
						
				$sum=0;
				
				//workcharge 故障内容
				$digits = 0;
				if ($parts['work_charge']!= '')
				{
					$sum = $sum + $parts['work_charge'];
					$digits = strlen($parts['work_charge']);
					//作業費用の金額　数値は横の位置　縦の位置の順番　大きくすると上
					$page->drawText(num_format($parts['work_charge']),500-($digits+1)*4 , 407,'UTF-8');
				}
				
//399 / 388 / 377 / 366
				$parts_num= get_pNum($parts);
				for($parts_no=1; $parts_no <= $parts_num; $parts_no++){
					//parts_charge1
					$digits = 0;
					if ($parts['parts_charge'.$parts_no] != '')
					//品名　開始縦位置（全体に影響）　大きくすると上
					{	$y = 395 - (11.2 * ($parts_no-1));
						$parts1sum = $parts['parts_charge'.$parts_no]*$parts['parts_unit'.$parts_no];
						$sum = $sum + $parts1sum;
						$digits = (strlen($parts['parts_charge'.$parts_no])>3 ? strlen($parts['parts_charge'.$parts_no]): strlen($parts['parts_charge'.$parts_no])-1 );
						//単価　大きくすると右
						$page->drawText(num_format($parts['parts_charge'.$parts_no]),286-($digits+1)*4 , $y,'UTF-8');
						//数量　大きくすると右
						$page->drawText(num_format($parts['parts_unit'.$parts_no]),360-(1)*4 , $y,'UTF-8');
						$digits = (strlen($parts1sum)>3 ? strlen($parts1sum): strlen($parts1sum)-1 );
						//金額　大きくすると右
						$page->drawText(num_format($parts1sum),500-($digits+1)*4 , $y,'UTF-8');
//						$page->drawText($parts['parts_name'.$parts_no],60 , 	$y,'UTF-8');
						drawInFixedSize($parts['parts_name'.$parts_no],$font,9,73,$y+8,260,13);
					}
				}
/*				
				//parts_charge2
				$digits = 0;
				if ($parts['parts_charge2'] != '')
				{
					$parts2sum = $parts['parts_charge2']*$parts['parts_unit2'];
					$sum = $sum + $parts2sum;
					$digits = (strlen($parts['parts_charge2'])>3 ? strlen($parts['parts_charge2']): strlen($parts['parts_charge2'])-1 );
					$page->drawText(num_format($parts['parts_charge2']),286-($digits+1)*4 , 388,'UTF-8');
					$page->drawText(num_format($parts['parts_unit2']),360-(1)*4 , 388,'UTF-8');
					$digits = (strlen($parts2sum)>3 ? strlen($parts2sum): strlen($parts2sum)-1 );
					$page->drawText(num_format($parts2sum),500-($digits+1)*4 ,388 ,'UTF-8');
					$page->drawText($parts['parts_name2'],60 ,388 ,'UTF-8');
				}
				
				//parts_change3
				$digits = 0;
				if ($parts['parts_charge3'] != '')
				{
					$parts3sum = $parts['parts_charge3']*$parts['parts_unit3'];
					$sum = $sum + $parts3sum;
					$digits = (strlen($parts['parts_charge3'])>3 ? strlen($parts['parts_charge3']): strlen($parts['parts_charge3'])-1 );
					$page->drawText(num_format($parts['parts_charge3']),286-($digits+1)*4 , 377,'UTF-8');
					$page->drawText(num_format($parts['parts_unit3']),360-(1)*4 , 377,'UTF-8');
					$digits = (strlen($parts3sum)>3 ? strlen($parts3sum): strlen($parts3sum)-1 );
					$page->drawText(num_format($parts3sum),500-($digits+1)*4 ,377 ,'UTF-8');
					$page->drawText($parts['parts_name3'],60 , 377,'UTF-8');
					
				}
				
				//parts_change4
				$digits = 0;
				if ($parts['parts_charge4'] != '')
				{	
					$parts4sum = $parts['parts_charge4']*$parts['parts_unit4'];
					$sum = $sum + $parts4sum;
					$digits = (strlen($parts['parts_charge4'])>3 ? strlen($parts['parts_charge4']): strlen($parts['parts_charge4'])-1 );
					$page->drawText(num_format($parts['parts_charge4']),286-($digits+1)*4 , 366,'UTF-8');
					$page->drawText(num_format($parts['parts_unit4']),360-(1)*4 , 366,'UTF-8');
					$digits = (strlen($parts4sum)>3 ? strlen($parts4sum): strlen($parts4sum)-1 );
					$page->drawText(num_format($parts4sum),500-($digits+1)*4 , 366,'UTF-8');
					$page->drawText($parts['parts_name4'],60 , 366,'UTF-8');
				}
*/
				//tax
				$smallSum = $sum;
				
				//小計
				$digits = strlen($smallSum);
				$page->drawText(num_format($smallSum),500-($digits+1)*4 , 286,'UTF-8');
				
				$tax = 0;
				if ($parts['tax_type'] == '0')
				{
					$page->drawText("0",500-(1)*4 , 277,'UTF-8');
					
				}
				else 
				{
					$tax = round($sum * $tax_rate);
					$digits = (strlen($tax)>3 ? strlen($tax): strlen($tax)-1 );
					$page->drawText(num_format($tax),500-($digits+1)*4 , 275,'UTF-8');
				}
				//sum　送料
				$sum = $sum + $tax;
				
				if ($parts['other_charge'] != '')
				{
					$sum = $sum + $parts['other_charge'];
					$digits = (strlen($parts['other_charge'])>3 ? strlen($parts['other_charge']): strlen($parts['other_charge'])-1 );
					//送料
					$page->drawText(num_format($parts['other_charge']),500-($digits+1)*4 , 264,'UTF-8');
					
				}	
					
					
				//other_charge
				if ($parts['other_charge0'] != ''  || trim($parts['waydelivary'])=="代引き")
				{
					$transfee = 0;
					$transfee = $transfee + $parts['other_charge0'];
					
					if (trim($parts['waydelivary']=="代引き"))
					{
						
						if (($sum+$transfee) <= 9700)
							$transfee+= 315;
						else if ( ($sum+$transfee) > 9700 && ($sum+$transfee) <=29600 )	
							$transfee+= 420;
						else if (  ($sum+$transfee) > 29600 && ($sum+$transfee) <= 100000  )
							$transfee+= 630;
						else if (  ($sum+$transfee) > 100000 && ($sum+$transfee) <= 300000  )
							$transfee+= 1050;
						else if (  ($sum+$transfee) > 300000 && ($sum+$transfee) <= 500000  )
							$transfee+= 2100;
						else if (  ($sum+$transfee) > 500000 && ($sum+$transfee) <= 1000000  )
							$transfee+= 3150;
						else 
							$transfee = $transfee;	
						
					}	
						
					$sum = round($sum + $transfee);
					
					$digits = (strlen($transfee)>3 ? strlen($transfee): strlen($transfee)-1 );
					
					//代引き手数料
					$page->drawText(num_format($transfee),500-($digits+1)*4 , 253,'UTF-8');
				}
				$digits = (strlen($sum)>3 ? strlen($sum): strlen($sum)-1 );
				//合計
				$page->drawText(num_format($sum),500-($digits+1)*4 , 242,'UTF-8');
				//echo $sum;
				//sum
				$page->setFont($font, 12);
				$digits = strlen($sum);
				//合計金額
				$page->drawText("￥".num_format($sum),325-($digits+1)*4 , 586,'UTF-8');
				
				//biko備考
				if ($parts['repair'] != '')
				{
					drawInFixedSize($parts['repair'],$font,9,60 , 90 ,420,50);
				}	
				$page->setFont($font, 9);
				
				
		}
			return true;

}

	function get_pNum($parts){
		$key_list = array_keys($parts);
		$parts_num=0;
		foreach($key_list as $one){
			if(preg_match("/parts_name/",$one)){$parts_num++;}
		}
		return $parts_num;

	}

?>