<!-- #include file="../../../include.asp" -->

<%
'<!--
'################################################
'	名称	:材料仕入伝票挿入・更新・削除
'	作成日	:2008/3/14
'	作成者	:小野
'	目的	:材料仕入伝票を挿入・更新・削除を行う。
'	概要	:
'################################################
'-->
'
'
%>

<%
main()

Sub main()
	If Not(SessionCheck()) Then
		Exit Sub
	End If

	Dim DenpyoNo, Torihikibi, DenpyoTekiyo,TorihikisakiCD, OldDenpyoNo
	Dim GokeiKingaku,SyohizeiKingaku,ZeikomiKingaku
	Dim PageType
	Dim TujyoHenpinKubun
	Dim TmpZairyoCD(10)
	Dim TmpTanka(10)
	Dim TmpSuryo(10)
	Dim TmpKingaku(10)
	Dim TmpTaxRate(10)
	Dim BinType

	Dim QueryStr

	Dim ShowDel
	ShowDel = Request("ShowDel")
	QueryStr = QueryStr & "&ShowDel=" & ShowDel

'###############################################	 1.データの引継ぎ

	'ヘッダ部
	DenpyoNo = Request("DenpyoNo")									'伝票番号
	OldDenpyoNo = Request("OldDenpyoNo")									'伝票番号
	Torihikibi = Request("Torihikibi")								'取引日
	TorihikisakiCD = Request("TorihikisakiCD")						'取引CD
	DenpyoTekiyo = Request("DenpyoTekiyo")							'伝票摘要
	TujyoHenpinKubun= Request("TujyoHenpinKubun")					'伝票種類	0:通常 1:返品
	PageType = Request("PageType")									'ページタイプ "仕入" or "売上"
	GokeiKingaku = ConvMoneyToInt(Request("GokeiKingaku"))			'合計金額
	SyohizeiKingaku = Int(ConvMoneyToInt(Request("SyohizeiKingaku")))		'消費税
	ZeikomiKingaku = ConvMoneyToInt(Request("ZeikomiKingaku"))		'税込金額
	BinType = Request("BinType")
	QueryStr = QueryStr & "&BinType=" & BinType
	QueryStr = QueryStr & "&DenpyoNo=" & DenpyoNo
	QueryStr = QueryStr & "&OldDenpyoNo=" & OldDenpyoNo
	QueryStr = QueryStr & "&Torihikibi=" & Torihikibi
	QueryStr = QueryStr & "&TorihikisakiCD=" & TorihikisakiCD
	QueryStr = QueryStr & "&DenpyoTekiyo=" & DenpyoTekiyo
	QueryStr = QueryStr & "&TujyoHenpinKubun=" & TujyoHenpinKubun
	QueryStr = QueryStr & "&GokeiKingaku=" & GokeiKingaku
	QueryStr = QueryStr & "&SyohizeiKingaku=" & SyohizeiKingaku
	QueryStr = QueryStr & "&ZeikomiKingaku=" & ZeikomiKingaku
	QueryStr = QueryStr & "&PageType=" & PageType

	If "" & SyohizeiKingaku = "" Then
		SyohizeiKingaku = 0
	End If

	Dim ReturnValue
	ReturnValue = Request("SendValue")
	QueryStr = QueryStr & "&ReturnValue=" & ReturnValue


	'明細部:TK仕入伝票明細F
'	For ii = 1 To 5
'		TmpZairyoCD(ii) = Request("SyohinCD" & ii)			'商品CD
'		TmpSuryo(ii) = ConvMoneyToInt(Request("Suryo" & ii))	'受注数量
'		TmpTanka(ii) = ConvMoneyToInt(Request("Tanka" & ii))	'受注単価
'		TmpKingaku(ii) = ConvMoneyToInt(Request("Kingaku" & ii))'金額
'	Next

	Dim KanjyoCDShiire, KanjyoCDUriage, KanjyoCDUrikakekin, KanjyoCDKaikakekin
	Dim KanjyoCDKaribaraiSyohizei, KanjyoCDKariukeSyohizei, KanjyoCDSyokuchi

	Query = "exec SPM勘定科目取得特別勘定 '" & GB_SystemCD & "','" & EnshuCD & "', ''"
	Set Content = OpenQuery(Query)
	Do While Not(Content.BOF OR Content.EOF)
		If Content.Fields("特別勘定区分") = "DK" Then	'仕入(費用)ではなく材料(資産)で仕訳け、その後製造費(費用)に振り替える。
			KanjyoCDShiire = Content.Fields("勘定CD")
		ElseIf Content.Fields("特別勘定区分") = "DM" Then
			KanjyoCDUriage = Content.Fields("勘定CD")
		ElseIf Content.Fields("特別勘定区分") = "DN" Then
			KanjyoCDUrikakekin = Content.Fields("勘定CD")
		ElseIf Content.Fields("特別勘定区分") = "DO" Then
			KanjyoCDKaikakekin = Content.Fields("勘定CD")
		ElseIf Content.Fields("特別勘定区分") = "DP" Then
			KanjyoCDKaribaraiSyohizei = Content.Fields("勘定CD")
		ElseIf Content.Fields("特別勘定区分") = "DQ" Then
			KanjyoCDKariukeSyohizei = Content.Fields("勘定CD")
		ElseIf Content.Fields("特別勘定区分") = "DZ" Then
			KanjyoCDSyokuchi = Content.Fields("勘定CD")
		End If
		
		Content.MoveNext
	Loop




	Dim Content

	Dim JidoBangoDenpyo
	JidoBangoDenpyo = GetEnshuParam(EnshuCD, "自動番号伝票")

'###############################################	 2.ストアドプロシージャーの引数の作成

	If BinType = "Del" Then

		Query = "exec SPK伝票_削除 '" & GB_SystemCD & "',"
		Query = Query & "'" & EnshuCD & "'"		'演習CD
		Query = Query & ",'" & KaisyaCD & "'"	'会社CD
		Query = Query & ",'D7'"					'伝票区分
		Query = Query & ",'" & DenpyoNo & "'"
		Set Content = OpenQuery(Query)

		Query = "exec SPM記帳チェック挿入伝票 '" & GB_SystemCD & "',"
		Query = Query & " '" & EnshuCD & "'"
		Query = Query & ",'" & KaisyaCD & "'"
		Set Content = OpenQuery(Query)

		Response.Redirect("fk_zairyoshiire_ichiran.asp?DenpyoNo=" & DenpyoNo & "&PageType=" & PageType & "&ShowDel=" & ShowDel)

	Else

		Dim AddMode 
		AddMode = 0
		If DenpyoNo = "" Or OldDenpyoNo = "" Then
			AddMode = 1
		End If

		If JidoBangoDenpyo = "1" then
			DenpyoNo = ""
		End If

		If AddMode = 1 Then
			'重複チェックは全伝票通しで行う
			Query = "exec SPK伝票_伝票取得全区分 '" & GB_SystemCD & "','"
			Query = Query & EnshuCD & "', '" & KaisyaCD & "', '" & DenpyoNo & "'"
			Set Content = OpenQuery(Query)
			If Not(Content.BOF Or Content.EOF) Then
'				Response.Write("この伝票番号は存在しています。<br>")
'				Response.Write("<a href=""JavaScript:history.go(-1)"">戻る</a>")
				Response.Write(SubmitHystoryBack(Replace(Request.ServerVariables("SCRIPT_NAME"), "_bin", "") & "?ErrorFlg=伝票番号が重複しています " & QueryStr))
				Exit Sub
			End If
		End If



		Dim w_no, Query, w_tc, w_biko, w_aite, ii, jj, KK, q_siwake, r_siwake


		Dim SendValue, TmpValue1, TmpValue2
		SendValue = Request("SendValue")

		If Request("KaisyaCD") <> "" Then
			KaisyaCD = Request("KaisyaCD")
		End If


		Dim WaitTime
		WaitTime = Request("WaitTime")

		If WaitTime <> "" And WaitTime <> "0" And WaitTime <> "1" Then
			Query = "exec SPMウェイトフラグ更新 '" & GB_SystemCD & "', '0'"
			Set Content = OpenQuery(Query)
			WaitTime = ""
		End If

		Dim WaitFlg
		WaitFlg = ""
		Query = "SELECT * FROM TC0ウェイトフラグ"
		Set Content = OpenQuery(Query)
		If Not(Content.BOF Or Content.EOF) Then
			WaitFlg = "" & Content.Fields("ウェイトフラグ")
		End If

		If WaitFlg <> "1" Then

			Query = "exec SPMウェイトフラグ更新 '" & GB_SystemCD & "', '1'"
			Set Content = OpenQuery(Query)

			Query = "exec SPK伝票_削除 '" & GB_SystemCD & "',"
			Query = Query & "'" & EnshuCD & "'"		'演習CD
			Query = Query & ",'" & KaisyaCD & "'"	'会社CD
			Query = Query & ",'D7'"					'伝票区分
			Query = Query & ",'" & OldDenpyoNo & "'"
			Set Content = OpenQuery(Query)

			Dim db
			Set db = InitQuery()

			GokeiKingaku = 0
			'SyohizeiKingaku = 0 'フォームから取得するので計算はしない
			ZeikomiKingaku = 0

			TmpValue1 = split(SendValue, ";")
			Dim bCheck
			bCheck = 0
			For ii = 0 To UBound(TmpValue1) - 1

				If jj = 10 Then
					jj = 1
				Else 
					jj = jj + 1
				End If

				TmpValue2 = split(TmpValue1(ii), ",")

				TmpZairyoCD(jj) = ConvRevZairyoMeisyo(TmpValue2(0))
				TmpSuryo(jj) = ConvMoneyToInt(TmpValue2(1))
				TmpTanka(jj) = ConvMoneyToInt(TmpValue2(2))
				TmpTaxRate(jj) = ConvMoneyToInt(TmpValue2(4))

				If jj = 10 Or ii = UBound(TmpValue1) - 1 Then
					Query = "exec SPK伝票_材料仕入伝票挿入 '" & GB_SystemCD & "', '" & EnshuCD & "', '" & KaisyaCD & "'"
					Query = Query & ", '" & DenpyoNo & "', '" & Torihikibi & "'"
					If Session(HomeAlias & "EnshuKubun") = "P" AND GB_JisyaFlag = "0" Then
						Query = Query & ", ''"
					Else
						Query = Query & ", '" & GakuseiNo & "'"
					End If
					Query = Query & ", " & jj
					For kk = 1 To jj
						Query = Query & ", '" & TmpZairyoCD(kk) & "'"
						If TmpSuryo(kk) <> "" Then
							Query = Query & ", " & TmpSuryo(kk)
						Else
							Query = Query & ", null"
						End If
						If TmpTanka(kk) <> "" Then
							Query = Query & ", " & TmpTanka(kk)
						Else
							Query = Query & ", null"
						End If
						If TmpTaxRate(kk) <> "" Then
							Query = Query & ", " & TmpTaxRate(kk)
						Else
							Query = Query & ", null"
						End If
						If TmpSuryo(kk) <> "" And TmpTanka(kk) <> "" Then
							GokeiKingaku = GokeiKingaku + (ConvMoneyToInt(TmpSuryo(kk)) * ConvMoneyToInt(TmpTanka(kk)))	'合計金額
						End If
					Next
					For kk = jj + 1 To 10	'余りは埋めないと例外エラーになる。プロシージャ側で無視されるので何でも良い。
						Query = Query & ", '" & TmpZairyoCD(kk) & "'"
						If TmpSuryo(kk) <> "" Then
							Query = Query & ", " & TmpSuryo(kk)
						Else
							Query = Query & ", null"
						End If
						If TmpTanka(kk) <> "" Then
							Query = Query & ", " & TmpTanka(kk)
						Else
							Query = Query & ", null"
						End If
						If TmpTaxRate(kk) <> "" Then
							Query = Query & ", " & TmpTaxRate(kk)
						Else
							Query = Query & ", null"
						End If
						If TmpSuryo(kk) <> "" And TmpTanka(kk) <> "" Then
							GokeiKingaku = GokeiKingaku + (CLng(TmpSuryo(kk)) * CLng(TmpTanka(kk)))	'合計金額
						End If
					Next
DebugQuery(Query)
					bCheck = 1
'Response.Write(Query)
'Exit Sub
					Set Content = OpenQuery(Query)
					DenpyoNo = Content.Fields(0)	'初回挿入時に採番したら伝票番号を取得しておく
				End If

			Next

'Response.Write(DenpyoNo)
'Exit Sub

			'SyohizeiKingaku = Int(GokeiKingaku * GB_Shohizei / 100)	'消費税 'フォームから取得するので計算はしない
			ZeikomiKingaku = GokeiKingaku + SyohizeiKingaku			'税込金額
'Response.Write(ZeikomiKingaku)
'Exit Sub

			Query = "exec SPK伝票_材料仕入伝票更新 '" & GB_SystemCD & "'"
			Query = Query & ", '" & EnshuCD & "'"		'演習CD
			Query = Query & ", '" & KaisyaCD & "'"		'会社CD
			Query = Query & ", '" & DenpyoNo & "'"		'伝票番号
			Query = Query & ", '" & OldDenpyoNo & "'"	'旧伝票番号
			Query = Query & ", 1"						'伝票処理区分
			If DenpyoTekiyo	= "" Then
				Query = Query & ",null"
			Else
				Query = Query & ",'" & DenpyoTekiyo	& "'"	'伝票摘要
			End If
			Query = Query & ", '" & TorihikisakiCD & "'"	'取引先CD
			Query = Query & ", '" & Torihikibi & "'"		'取引日
			If Session(HomeAlias & "EnshuKubun") = "P" AND GB_JisyaFlag = "0" Then
				Query = Query & ", ''"
			Else
				Query = Query & ", '" & GakuseiNo & "'"	'学生番号
			End If
			If TujyoHenpinKubun = "N" Then		'通常返品区分
				Query = Query & ", 'N'"	'通常
			Else
				Query = Query & ", 'R'"	'返品
			End If

			'** 仕入借方勘定作成
			Query = Query & ",'" & KanjyoCDShiire & "'"		'仕入借方・勘定CD
			Query = Query & ",'" & KanjyoCDKaikakekin & "'"	'仕入借方・相手勘定
			If TujyoHenpinKubun = "N" Then			'※通常伝票※
				Query = Query & ", " & GokeiKingaku		'仕入借方・借方金額
				Query = Query & ", 0"					'仕入借方・貸方金額
				Query = Query & ", 'D'"					'仕入借方・貸借区分
			Else									'※返品伝票※
				Query = Query & ", 0"					'仕入借方・借方金額
				Query = Query & ", " & GokeiKingaku		'仕入借方・貸方金額
				Query = Query & ", 'C'"					'仕入借方・貸借区分
			End If

			'** 借方消費税勘定作成
			If SyohizeiKingaku <> 0 Then
				Query = Query & ", '" & KanjyoCDKaribaraiSyohizei & "'"	'借方消費税・相手勘定
				Query = Query & ", '" & KanjyoCDKaikakekin & "'"		'借方消費税・勘定CD
				If TujyoHenpinKubun = "N" Then			'※通常伝票※
					Query = Query & ", " & SyohizeiKingaku	'借方消費税・借方金額
					Query = Query & ", 0"					'借方消費税・貸方金額
					Query = Query & ", 'D'"					'借方消費税・貸借区分
				Else									'※返品伝票※
					Query = Query & ", 0"					'借方消費税・借方金額
					Query = Query & ", " & SyohizeiKingaku	'借方消費税・貸方金額
					Query = Query & ", 'C'"					'借方消費税・貸借区分
				End If
			Else
				Query = Query & ", null"					'借方消費税・勘定CD
				Query = Query & ", null"					'借方消費税・相手勘定
				Query = Query & ", null"					'借方消費税・借方金額
				Query = Query & ", null"					'借方消費税・貸方金額
				Query = Query & ", null"					'借方消費税・貸借区分
			End If

			'** 貸方買掛金勘定作成
			Query = Query & ", '" & KanjyoCDKaikakekin & "'"	'貸方買掛金・勘定CD
			Query = Query & ", '" & KanjyoCDSyokuchi & "'"		'貸方買掛金・相手勘定
			If TujyoHenpinKubun = "N" Then			'※通常伝票※
				Query = Query & ", 0"					'貸方買掛金・借方金額
				Query = Query & ", " & ZeikomiKingaku	'貸方買掛金・貸方金額
				Query = Query & ", 'C'"					'貸方買掛金・貸借区分
			Else									'※返品伝票※
				Query = Query & ", " & ZeikomiKingaku	'貸方買掛金・借方金額
				Query = Query & ", 0"					'貸方買掛金・貸方金額
				Query = Query & ", 'D'"					'貸方買掛金・貸借区分
			End If

'###############################################	 ?.ストアドプロシージャ-実行
'Response.Write(Query)
'Exit Sub

			Set Content = OpenQuery(Query)

			While Not Content Is Nothing
				If Content.Fields.Count > 0 Then
'					DenpyoNo = Content.Fields(0)
				End If
				Set Content = Content.NextRecordset
			Wend


			Query = "exec SPM記帳チェック挿入伝票 '" & GB_SystemCD & "',"
			Query = Query & " '" & EnshuCD & "'"
			Query = Query & ",'" & KaisyaCD & "'"
			Set Content = OpenQuery(Query)

			Query = "exec SPMウェイトフラグ更新 '" & GB_SystemCD & "', '0'"
			Set Content = OpenQuery(Query)

'###############################################	 4.更新データをビューで表示
			Response.Redirect("fk_zairyoshiire_view.asp?PageType=" & PageType & "&DenpyoNo=" & DenpyoNo & "&ShowDel=" & ShowDel)


		Else


			If WaitTime = "1" Then
				WaitTime = "2"
			Else
				WaitTime = "1"
			End If

%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Expires" content="-1">
<link href="../../../binx/sj3web.css?<% = TimeUniq() %>" rel="stylesheet" type="text/css">
<title><% = AppTitle %></title>
<script language="JScript" src="../../../include.js?<% = TimeUniq() %>"></script>
<script language="JScript" src="../../../includesj.js?<% = TimeUniq() %>"></script>
<script language="JScript.Encode" src="../../../include_enc.js?<% = TimeUniq() %>"></script>
<script language="JScript.Encode" src="../../../includesj_enc.js?<% = TimeUniq() %>"></script>
<script type=""text/javascript"" src="../../../javascript.js?<% = TimeUniq() %>"></script>
</head>
<SCRIPT LANGUAGE="JavaScript">
<!--
	HomeAlias = "<% = HomeAlias %>";
	HomeAliasSL = "<% = HomeAliasSL %>";
	ExitFlg = 0;

-->
</SCRIPT>
<body bgcolor="#5C70B6" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" onLoad="SubmitCheck()">
<form name="form1" method="POST" action="fk_zairyoshiire_bin.asp">
<input type="hidden" name="WaitTime" value="<% = WaitTime %>">
<input type="hidden" name="SendValue" value="<% = SendValue %>">
<input type="hidden" name="DenpyoNo" value="<% = DenpyoNo %>">
<input type="hidden" name="OldDenpyoNo" value="<% = OldDenpyoNo %>">
<input type="hidden" name="Torihikibi" value="<% = Torihikibi %>">
<input type="hidden" name="TorihikisakiCD" value="<% = TorihikisakiCD %>">
<input type="hidden" name="DenpyoTekiyo" value="<% = DenpyoTekiyo %>">
<input type="hidden" name="TujyoHenpinKubun" value="<% = TujyoHenpinKubun %>">
<input type="hidden" name="PageType" value="<% = PageType %>">
<input type="hidden" name="GokeiKingaku" value="<% = GokeiKingaku %>">
<input type="hidden" name="SyohizeiKingaku" value="<% = SyohizeiKingaku %>">
<input type="hidden" name="ZeikomiKingaku" value="<% = ZeikomiKingaku %>">
<input type="hidden" name="BinType" value="<% = BinType %>">
<input type="hidden" name="ShowDel" value="<% = ShowDel %>">
<BR>
  <FONT COLOR="#FFFFFF">ただいま処理中です。しばらくお待ちください。</FONT>
</body>
<script language="JavaScript">

	function SubmitCheck() {
		setTimeout("SubmitReal(form1)",250);
	}

</SCRIPT>
</html>
<%


		End If


	End If


End Sub
%>