function transValue()
{
document.getElementById("hidInvTitle").value=document.getElementById("txtTitle").value;//开票抬头隐藏域,赋值
//document.getElementById("hidInvDate").value=document.getElementById("PickDate_Qg").value;//开票日期隐藏域,赋值,在CS代码的“确定”事件的结尾
document.getElementById("hidBankName").value=document.form1.ddlBankName[document.form1.ddlBankName.selectedIndex].text;//开户行隐藏域,赋值
document.getElementById("hidAccountNo").value=document.form1.ddlBankName[document.form1.ddlBankName.selectedIndex].value;//开户账号隐藏域,右边用document.form1.txtAccountNo.text更好些
document.getElementById("hidFeeItem").value=document.form1.txtFeeItem.value;//收费内容
// alert(document.getElementById("hidFeeItem").value);
document.getElementById("hidAmount").value=document.form1.txtAmount.value;//收费内容金额
document.getElementById("hidRemark").value=document.form1.txtRemark.value;//备注
//alert(document.getElementById("hidRemark").value);
document.getElementById("hidCurrency").value=document.form1.txtCurrency.value;//货币种类
document.getElementById("hidUpper").value=document.form1.txtAmountUpper.value;//大写金额
document.getElementById("hidLower").value=document.form1.txtAmountTotal.value;//小写金额
document.getElementById("hidDrawer").value=document.form1.txtDrawer.value;//开票人
}
</script>
{
document.getElementById("hidInvTitle").value=document.getElementById("txtTitle").value;//开票抬头隐藏域,赋值
//document.getElementById("hidInvDate").value=document.getElementById("PickDate_Qg").value;//开票日期隐藏域,赋值,在CS代码的“确定”事件的结尾
document.getElementById("hidBankName").value=document.form1.ddlBankName[document.form1.ddlBankName.selectedIndex].text;//开户行隐藏域,赋值
document.getElementById("hidAccountNo").value=document.form1.ddlBankName[document.form1.ddlBankName.selectedIndex].value;//开户账号隐藏域,右边用document.form1.txtAccountNo.text更好些
document.getElementById("hidFeeItem").value=document.form1.txtFeeItem.value;//收费内容
// alert(document.getElementById("hidFeeItem").value);
document.getElementById("hidAmount").value=document.form1.txtAmount.value;//收费内容金额
document.getElementById("hidRemark").value=document.form1.txtRemark.value;//备注
//alert(document.getElementById("hidRemark").value);
document.getElementById("hidCurrency").value=document.form1.txtCurrency.value;//货币种类
document.getElementById("hidUpper").value=document.form1.txtAmountUpper.value;//大写金额
document.getElementById("hidLower").value=document.form1.txtAmountTotal.value;//小写金额
document.getElementById("hidDrawer").value=document.form1.txtDrawer.value;//开票人
}
</script>
<asp:Button ID="btnConfirm" runat="server" CssClass="btn" Text="确定" OnClientClick="transValue()" OnClick="btnConfirm_Click" />
protected void btnConfirm_Click(object sender, EventArgs e)
{
string szdw_id = "";
System.Guid guidSZDW = new Guid();//如果ViewState中一直没有涉帐单位的ID,inv_main表中就可能插入新的不相关的ID,依据这个不相关ID在PD_COMPANY中找不到相关的COMPANY
if (ViewState["SZDW_ID"] != null)
{
szdw_id = ViewState["SZDW_ID"].ToString();
guidSZDW = new Guid(szdw_id);
}//隐含如果ViewState["SZDW_ID"] == null 则放System.Guid guidSZDE = new Guid();生成的GUID进INV_MAIN该GUID组成部分全为0-〉32个0
从ViewState中取值#region 从ViewState中取值
string strOP_CODE = "";//可能要记录以后来作废这张发票的人的CODE,???????????????????????????????????????????
if (ViewState["OP_CODE"] != null)
{
strOP_CODE = ViewState["OP_CODE"].ToString().Trim();
}
string strCR_CODE = "";//Session中保存的UserCode
if (Session["UserCode"] != null)
{
strCR_CODE = Session["UserCode"].ToString().Trim();
}
DateTime dateETD = DateTime.Now;
if (ViewState["ETD"] != null)//JOB_SE中的字段ETD,通过ViewState从Page_Load中传过来,在本inv_main表中做"DATE_JOB"业务日期 ,如果JOB_SE中ETD为空,这里该取什么值
{
dateETD = Convert.ToDateTime(ViewState["ETD"]);
}
#endregion 从ViewState中取值 END
string strSqlInsert = @"
insert into inv_main
(ID ,INV_NO,INV_TITLE,COMPANY_ID,INV_DATE,INV_REN,CURRENCY,AMOUNT,DETAIL_FEE,DETAIL_AMOUNT,DETAIL_REMARK,BANK_NAME,ACCOUNT_NO,JOBNO,LPORT,DPORT,DEST,WTBH,DATE_JOB,AMOUNT_CHN,AMOUNT_HX,AMOUNT_WHX,CR_CODE,CR_TIME,OP_CODE,OP_TIME)
values
(@ID,@INV_NO,@INV_TITLE,@COMPANY_ID,@INV_DATE,@INV_REN,@CURRENCY,@AMOUNT,@DETAIL_FEE,@DETAIL_AMOUNT,@DETAIL_REMARK,@BANK_NAME,@ACCOUNT_NO,@JOBNO,@LPORT,@DPORT,@DEST,@WTBH,@DATE_JOB,@AMOUNT_CHN,@AMOUNT_HX,@AMOUNT_WHX,@CR_CODE,@CR_TIME,@OP_CODE,@OP_TIME)";
try
{
insert inot inv_main new record#region insert inot inv_main new record
conn.Open();
SqlCommand comm = new SqlCommand(strSqlInsert, conn);
SqlParameter spara = null;
spara = comm.Parameters.Add(new SqlParameter("@ID", SqlDbType.UniqueIdentifier, 32));
comm.Parameters["@ID"].Value = System.Guid.NewGuid();//invoice_ID
spara = comm.Parameters.Add(new SqlParameter("@INV_NO", SqlDbType.NVarChar, 50));
comm.Parameters["@INV_NO"].Value = txtInvoiceNumber.Text.Trim();//发票号码,手工输入
spara = comm.Parameters.Add(new SqlParameter("@INV_TITLE", SqlDbType.NVarChar, 255));
comm.Parameters["@INV_TITLE"].Value = txtTitle.Text.Trim();//开票抬头,文本框
spara = comm.Parameters.Add(new SqlParameter("@COMPANY_ID", SqlDbType.UniqueIdentifier, 32));
comm.Parameters["@COMPANY_ID"].Value = guidSZDW;//有可能先输入了费用,又把该公司的信息从Company表中删除,导致此处为空,涉帐单位
spara = comm.Parameters.Add(new SqlParameter("@INV_DATE", SqlDbType.DateTime, 10));
if (PickDate_Qg.SelectedDates.Count > 0)//要先判断该日历控件有没有值
{
comm.Parameters["@INV_DATE"].Value = PickDate_Qg.SelectedDate;//开票日期
}
else
{
comm.Parameters["@INV_DATE"].Value = DBNull.Value;//取出来时也要先判断是否为空
}
spara = comm.Parameters.Add(new SqlParameter("@INV_REN", SqlDbType.VarChar, 50));
comm.Parameters["@INV_REN"].Value = txtDrawer.Text.Trim();//开票人
spara = comm.Parameters.Add(new SqlParameter("@CURRENCY", SqlDbType.VarChar, 50));
comm.Parameters["@CURRENCY"].Value = txtCurrency.Text.Trim();//币种
spara = comm.Parameters.Add(new SqlParameter("@AMOUNT", SqlDbType.Decimal, 52));//---->数据库中的类型为decimal(18,2)
comm.Parameters["@AMOUNT"].Value = txtAmountTotal.Text.Trim();//总金额,阿拉伯数字
spara = comm.Parameters.Add(new SqlParameter("@DETAIL_FEE", SqlDbType.VarChar, 500));
comm.Parameters["@DETAIL_FEE"].Value = txtFeeItem.Text.Trim();//收费内容\r\n这种换行怎么办,直接存进DB?
spara = comm.Parameters.Add(new SqlParameter("@DETAIL_AMOUNT", SqlDbType.VarChar, 500));
comm.Parameters["@DETAIL_AMOUNT"].Value = txtAmount.Text.Trim();//金额明细 \r\n这种换行怎么办,直接存进DB?
spara = comm.Parameters.Add(new SqlParameter("@DETAIL_REMARK", SqlDbType.VarChar, 500));
comm.Parameters["@DETAIL_REMARK"].Value = txtRemark.Text.Trim();//备注
spara = comm.Parameters.Add(new SqlParameter("@BANK_NAME", SqlDbType.VarChar, 100));//开户行
comm.Parameters["@BANK_NAME"].Value = ddlBankName.Items[ddlBankName.SelectedIndex].Text;//多个账户对应多个银行名
spara = comm.Parameters.Add(new SqlParameter("@ACCOUNT_NO", SqlDbType.VarChar, 50));//开户帐号
comm.Parameters["@ACCOUNT_NO"].Value = ddlBankName.Items[ddlBankName.SelectedIndex].Value;//多个账户对应多个银行名
spara = comm.Parameters.Add(new SqlParameter("@JOBNO", SqlDbType.VarChar, 500));
comm.Parameters["@JOBNO"].Value = txtJobNo.Text.Trim();//工作编号
spara = comm.Parameters.Add(new SqlParameter("@LPORT", SqlDbType.VarChar, 50));
comm.Parameters["@LPORT"].Value = txtLoadPort.Text.Trim();//装货港
spara = comm.Parameters.Add(new SqlParameter("@DPORT", SqlDbType.VarChar, 50));
comm.Parameters["@DPORT"].Value = txtDischargePort.Text.Trim();//卸货港
spara = comm.Parameters.Add(new SqlParameter("@DEST", SqlDbType.VarChar, 50));
comm.Parameters["@DEST"].Value = txtDestPort.Text.Trim();//目的地
spara = comm.Parameters.Add(new SqlParameter("@WTBH", SqlDbType.VarChar, 500));
comm.Parameters["@WTBH"].Value = txtCommissionNo.Text.Trim();//委托编号
spara = comm.Parameters.Add(new SqlParameter("@DATE_JOB", SqlDbType.DateTime, 10));
comm.Parameters["@DATE_JOB"].Value = dateETD;//业务日期 例如:海运出口为ETD
spara = comm.Parameters.Add(new SqlParameter("@AMOUNT_CHN", SqlDbType.VarChar, 100));
comm.Parameters["@AMOUNT_CHN"].Value = txtAmountUpper.Text.Trim();//总金额,中文大写
spara = comm.Parameters.Add(new SqlParameter("@AMOUNT_HX", SqlDbType.Decimal, 20));
comm.Parameters["@AMOUNT_HX"].Value = 0.00m;//核销金额,发票刚开出来,核销金额为0,还没开始核销
spara = comm.Parameters.Add(new SqlParameter("@AMOUNT_WHX", SqlDbType.Decimal, 20));
comm.Parameters["@AMOUNT_WHX"].Value = txtAmountTotal.Text.Trim();//未核销金额,发票刚开出来,全部金额,还没开始核销
spara = comm.Parameters.Add(new SqlParameter("@CR_CODE", SqlDbType.VarChar, 50));
comm.Parameters["@CR_CODE"].Value = strCR_CODE;//Session中保存的UserCode
spara = comm.Parameters.Add(new SqlParameter("@CR_TIME", SqlDbType.DateTime, 10));
comm.Parameters["@CR_TIME"].Value = DateTime.Now;//是本发票保存进数据库的时间 不是 JOB_SE表中的字段CR_TIME????dateCR_TIME,
spara = comm.Parameters.Add(new SqlParameter("@OP_CODE", SqlDbType.VarChar, 50));
comm.Parameters["@OP_CODE"].Value = strOP_CODE;//JOB_SE表中的字段OP_CODE
spara = comm.Parameters.Add(new SqlParameter("@OP_TIME", SqlDbType.DateTime, 10));
comm.Parameters["@OP_TIME"].Value = DateTime.Now;//不是JOB_SE表中的字段OP_TIME????dateOP_TIME
#endregion
comm.ExecuteNonQuery();
comm.Dispose();
/*从Page_Load中传strID过来,再次split成数组,ViweState好像不能存数组,更新fee_in或fee_out中的“已开票标志” flag_kp和 “发票号码” Invoice_No */#region /*从Page_Load中传strID过来,再次split成数组,ViweState好像不能存数组,更新fee_in或fee_out中的“已开票标志” flag_kp和 “发票号码” Invoice_No */
{
string szdw_id = "";
System.Guid guidSZDW = new Guid();//如果ViewState中一直没有涉帐单位的ID,inv_main表中就可能插入新的不相关的ID,依据这个不相关ID在PD_COMPANY中找不到相关的COMPANY
if (ViewState["SZDW_ID"] != null)
{
szdw_id = ViewState["SZDW_ID"].ToString();
guidSZDW = new Guid(szdw_id);
}//隐含如果ViewState["SZDW_ID"] == null 则放System.Guid guidSZDE = new Guid();生成的GUID进INV_MAIN该GUID组成部分全为0-〉32个0
从ViewState中取值#region 从ViewState中取值
string strOP_CODE = "";//可能要记录以后来作废这张发票的人的CODE,???????????????????????????????????????????
if (ViewState["OP_CODE"] != null)
{
strOP_CODE = ViewState["OP_CODE"].ToString().Trim();
}
string strCR_CODE = "";//Session中保存的UserCode
if (Session["UserCode"] != null)
{
strCR_CODE = Session["UserCode"].ToString().Trim();
}
DateTime dateETD = DateTime.Now;
if (ViewState["ETD"] != null)//JOB_SE中的字段ETD,通过ViewState从Page_Load中传过来,在本inv_main表中做"DATE_JOB"业务日期 ,如果JOB_SE中ETD为空,这里该取什么值
{
dateETD = Convert.ToDateTime(ViewState["ETD"]);
}
#endregion 从ViewState中取值 END
string strSqlInsert = @"
insert into inv_main
(ID ,INV_NO,INV_TITLE,COMPANY_ID,INV_DATE,INV_REN,CURRENCY,AMOUNT,DETAIL_FEE,DETAIL_AMOUNT,DETAIL_REMARK,BANK_NAME,ACCOUNT_NO,JOBNO,LPORT,DPORT,DEST,WTBH,DATE_JOB,AMOUNT_CHN,AMOUNT_HX,AMOUNT_WHX,CR_CODE,CR_TIME,OP_CODE,OP_TIME)
values
(@ID,@INV_NO,@INV_TITLE,@COMPANY_ID,@INV_DATE,@INV_REN,@CURRENCY,@AMOUNT,@DETAIL_FEE,@DETAIL_AMOUNT,@DETAIL_REMARK,@BANK_NAME,@ACCOUNT_NO,@JOBNO,@LPORT,@DPORT,@DEST,@WTBH,@DATE_JOB,@AMOUNT_CHN,@AMOUNT_HX,@AMOUNT_WHX,@CR_CODE,@CR_TIME,@OP_CODE,@OP_TIME)";
try
{
insert inot inv_main new record#region insert inot inv_main new record
conn.Open();
SqlCommand comm = new SqlCommand(strSqlInsert, conn);
SqlParameter spara = null;
spara = comm.Parameters.Add(new SqlParameter("@ID", SqlDbType.UniqueIdentifier, 32));
comm.Parameters["@ID"].Value = System.Guid.NewGuid();//invoice_ID
spara = comm.Parameters.Add(new SqlParameter("@INV_NO", SqlDbType.NVarChar, 50));
comm.Parameters["@INV_NO"].Value = txtInvoiceNumber.Text.Trim();//发票号码,手工输入
spara = comm.Parameters.Add(new SqlParameter("@INV_TITLE", SqlDbType.NVarChar, 255));
comm.Parameters["@INV_TITLE"].Value = txtTitle.Text.Trim();//开票抬头,文本框
spara = comm.Parameters.Add(new SqlParameter("@COMPANY_ID", SqlDbType.UniqueIdentifier, 32));
comm.Parameters["@COMPANY_ID"].Value = guidSZDW;//有可能先输入了费用,又把该公司的信息从Company表中删除,导致此处为空,涉帐单位
spara = comm.Parameters.Add(new SqlParameter("@INV_DATE", SqlDbType.DateTime, 10));
if (PickDate_Qg.SelectedDates.Count > 0)//要先判断该日历控件有没有值
{
comm.Parameters["@INV_DATE"].Value = PickDate_Qg.SelectedDate;//开票日期
}
else
{
comm.Parameters["@INV_DATE"].Value = DBNull.Value;//取出来时也要先判断是否为空
}
spara = comm.Parameters.Add(new SqlParameter("@INV_REN", SqlDbType.VarChar, 50));
comm.Parameters["@INV_REN"].Value = txtDrawer.Text.Trim();//开票人
spara = comm.Parameters.Add(new SqlParameter("@CURRENCY", SqlDbType.VarChar, 50));
comm.Parameters["@CURRENCY"].Value = txtCurrency.Text.Trim();//币种
spara = comm.Parameters.Add(new SqlParameter("@AMOUNT", SqlDbType.Decimal, 52));//---->数据库中的类型为decimal(18,2)
comm.Parameters["@AMOUNT"].Value = txtAmountTotal.Text.Trim();//总金额,阿拉伯数字
spara = comm.Parameters.Add(new SqlParameter("@DETAIL_FEE", SqlDbType.VarChar, 500));
comm.Parameters["@DETAIL_FEE"].Value = txtFeeItem.Text.Trim();//收费内容\r\n这种换行怎么办,直接存进DB?
spara = comm.Parameters.Add(new SqlParameter("@DETAIL_AMOUNT", SqlDbType.VarChar, 500));
comm.Parameters["@DETAIL_AMOUNT"].Value = txtAmount.Text.Trim();//金额明细 \r\n这种换行怎么办,直接存进DB?
spara = comm.Parameters.Add(new SqlParameter("@DETAIL_REMARK", SqlDbType.VarChar, 500));
comm.Parameters["@DETAIL_REMARK"].Value = txtRemark.Text.Trim();//备注
spara = comm.Parameters.Add(new SqlParameter("@BANK_NAME", SqlDbType.VarChar, 100));//开户行
comm.Parameters["@BANK_NAME"].Value = ddlBankName.Items[ddlBankName.SelectedIndex].Text;//多个账户对应多个银行名
spara = comm.Parameters.Add(new SqlParameter("@ACCOUNT_NO", SqlDbType.VarChar, 50));//开户帐号
comm.Parameters["@ACCOUNT_NO"].Value = ddlBankName.Items[ddlBankName.SelectedIndex].Value;//多个账户对应多个银行名
spara = comm.Parameters.Add(new SqlParameter("@JOBNO", SqlDbType.VarChar, 500));
comm.Parameters["@JOBNO"].Value = txtJobNo.Text.Trim();//工作编号
spara = comm.Parameters.Add(new SqlParameter("@LPORT", SqlDbType.VarChar, 50));
comm.Parameters["@LPORT"].Value = txtLoadPort.Text.Trim();//装货港
spara = comm.Parameters.Add(new SqlParameter("@DPORT", SqlDbType.VarChar, 50));
comm.Parameters["@DPORT"].Value = txtDischargePort.Text.Trim();//卸货港
spara = comm.Parameters.Add(new SqlParameter("@DEST", SqlDbType.VarChar, 50));
comm.Parameters["@DEST"].Value = txtDestPort.Text.Trim();//目的地
spara = comm.Parameters.Add(new SqlParameter("@WTBH", SqlDbType.VarChar, 500));
comm.Parameters["@WTBH"].Value = txtCommissionNo.Text.Trim();//委托编号
spara = comm.Parameters.Add(new SqlParameter("@DATE_JOB", SqlDbType.DateTime, 10));
comm.Parameters["@DATE_JOB"].Value = dateETD;//业务日期 例如:海运出口为ETD
spara = comm.Parameters.Add(new SqlParameter("@AMOUNT_CHN", SqlDbType.VarChar, 100));
comm.Parameters["@AMOUNT_CHN"].Value = txtAmountUpper.Text.Trim();//总金额,中文大写
spara = comm.Parameters.Add(new SqlParameter("@AMOUNT_HX", SqlDbType.Decimal, 20));
comm.Parameters["@AMOUNT_HX"].Value = 0.00m;//核销金额,发票刚开出来,核销金额为0,还没开始核销
spara = comm.Parameters.Add(new SqlParameter("@AMOUNT_WHX", SqlDbType.Decimal, 20));
comm.Parameters["@AMOUNT_WHX"].Value = txtAmountTotal.Text.Trim();//未核销金额,发票刚开出来,全部金额,还没开始核销
spara = comm.Parameters.Add(new SqlParameter("@CR_CODE", SqlDbType.VarChar, 50));
comm.Parameters["@CR_CODE"].Value = strCR_CODE;//Session中保存的UserCode
spara = comm.Parameters.Add(new SqlParameter("@CR_TIME", SqlDbType.DateTime, 10));
comm.Parameters["@CR_TIME"].Value = DateTime.Now;//是本发票保存进数据库的时间 不是 JOB_SE表中的字段CR_TIME????dateCR_TIME,
spara = comm.Parameters.Add(new SqlParameter("@OP_CODE", SqlDbType.VarChar, 50));
comm.Parameters["@OP_CODE"].Value = strOP_CODE;//JOB_SE表中的字段OP_CODE
spara = comm.Parameters.Add(new SqlParameter("@OP_TIME", SqlDbType.DateTime, 10));
comm.Parameters["@OP_TIME"].Value = DateTime.Now;//不是JOB_SE表中的字段OP_TIME????dateOP_TIME
#endregion
comm.ExecuteNonQuery();
comm.Dispose();
/*从Page_Load中传strID过来,再次split成数组,ViweState好像不能存数组,更新fee_in或fee_out中的“已开票标志” flag_kp和 “发票号码” Invoice_No */#region /*从Page_Load中传strID过来,再次split成数组,ViweState好像不能存数组,更新fee_in或fee_out中的“已开票标志” flag_kp和 “发票号码” Invoice_No */