private void benNew_Click(object sender, EventArgs e) { if (!checkInput()) { MessageBox.Show("请检查输入项", this.funName, MessageBoxButtons.OK); } //新建 if (this.Flag == "NEW") { AGENT_INFO ai = new AGENT_INFO { AI_NAME = txtName.Text.Trim(), AI_ADDRESS = txtAddress.Text.Trim(), AI_INDUSTRY = txtIndustry.Text.Trim(), AI_POSTCODE = txtPostCode.Text.Trim(), AI_TAXCODEID = txtTaxCodeID.Text.Trim(), AI_TAXID = txtTAXID.Text.Trim(), AI_TAXNAME = txtTaxName.Text.Trim(), AI_TEL = txtTel.Text.Trim(), AI_ISDEL = false, }; if (cbxTempName.SelectedIndex != -1) { ai.AI_TIID = ((TEMPLATE_INFO)cbxTempName.SelectedItem).TI_ID; } db.AGENT_INFOs.InsertOnSubmit(ai); db.SubmitChanges(); this.DialogResult = System.Windows.Forms.DialogResult.OK; MessageBox.Show("添加成功"); } else //修改 { AGENT_INFO ai = db.AGENT_INFOs.Where(a => a.AI_ID == this.AgentID).SingleOrDefault(); if (ai != null) { ai.AI_NAME = txtName.Text.Trim(); ai.AI_ADDRESS = txtAddress.Text.Trim(); ai.AI_INDUSTRY = txtIndustry.Text.Trim(); ai.AI_POSTCODE = txtPostCode.Text.Trim(); ai.AI_TAXCODEID = txtTaxCodeID.Text.Trim(); ai.AI_TAXID = txtTAXID.Text.Trim(); ai.AI_TAXNAME = txtTaxName.Text.Trim(); ai.AI_TEL = txtTel.Text.Trim(); ai.AI_ISDEL = false; if (cbxTempName.SelectedIndex != -1) { ai.AI_TIID = ((TEMPLATE_INFO)cbxTempName.SelectedItem).TI_ID; } db.SubmitChanges(); this.DialogResult = System.Windows.Forms.DialogResult.OK; MessageBox.Show("修改成功"); } } }
/* Modified by cyq 20160331 */ /************ Begin *********/ ///// <summary> ///// 将报表3数据写入word文件 ///// </summary> ///// <param name="ri"></param> ///// <param name="ai"></param> ///// <param name="tp"></param> //public void WriteData( REPORT_INFO ri, AGENT_INFO ai,TAX_PLAYER tp) //{ // object replacetext; // //replacetext = ai.AI_NAME; // FindAndReplace("<Y>", ri.RI_TABLETIME.ToString("yyyy")); // FindAndReplace("<M>", ri.RI_TABLETIME.ToString("MM")); // FindAndReplace("<D>", ri.RI_TABLETIME.ToString("dd")); // FindAndReplace("<YEAR>", ri.RI_AYNAME); // FindAndReplace("<EM>", ai.AI_NAME); // FindAndReplace("<TAXID>", ai.AI_TAXID); // FindAndReplace("<INDUS>", ai.AI_INDUSTRY); // FindAndReplace("<ADDR>", ai.AI_ADDRESS); // FindAndReplace("<POSTCODE>", ai.AI_POSTCODE); // FindAndReplace("<TEL>", ai.AI_TEL); // FindAndReplace("<WIT>", "0"); // FindAndReplace("<OUT>", ri.RI_SUMS.ToString("N2")); // FindAndReplace("<TOT>", ri.RI_SUMS.ToString("N2")); // FindAndReplace("<SAS>", ri.RI_SUMTAXSALARY.ToString("N2")); // FindAndReplace("<TAX>", ri.RI_SUMTAXRMB.ToString("N2")); // FindAndReplace("<PRE>", ((ri.RI_NEEDPACKREAL < 0) ? decimal.Zero : (decimal)ri.RI_NEEDPACKREAL).ToString("N2"));//已扣缴税额 // if (ri.RI_SUMTAXRMB < ri.RI_SUMTAXALREADYRMB + ri.RI_USEALL) // { // FindAndReplace("<CRE>", (ri.RI_SUMTAXRMB).ToString("N2")); //TODO // } // else // { // FindAndReplace("<CRE>", ((decimal)(ri.RI_SUMTAXALREADYRMB + ri.RI_USEALL)).ToString("N2")); //TODO // } // FindAndReplace("<NAME>", tp.TP_NAME); // string sHolder = "!\"#$%&*+=|{}[]`~_/"; // object findtext; // for (int i = 0; i < sHolder.Length; i++) // { // replacetext = tp.TP_IDNUMBER.Substring(i, 1); // findtext = sHolder.Substring(i, 1); // FindAndReplace(findtext, replacetext); // } // aDoc.Save(); //} /// <summary> /// 将报表3数据写入word文件 /// </summary> /// <param name="ri"></param> /// <param name="ai"></param> /// <param name="tp"></param> public void WriteData(REPORT_INFO ri, AGENT_INFO ai, TAX_PLAYER tp, decimal internalTotal, decimal externalTotal) { object replacetext; //replacetext = ai.AI_NAME; FindAndReplace("<Y>", ri.RI_TABLETIME.ToString("yyyy")); FindAndReplace("<M>", ri.RI_TABLETIME.ToString("MM")); FindAndReplace("<D>", ri.RI_TABLETIME.ToString("dd")); FindAndReplace("<YEAR>", ri.RI_AYNAME); FindAndReplace("<EM>", ai.AI_NAME); FindAndReplace("<TAXID>", ai.AI_TAXID); FindAndReplace("<INDUS>", ai.AI_INDUSTRY); FindAndReplace("<ADDR>", ai.AI_ADDRESS); FindAndReplace("<POSTCODE>", ai.AI_POSTCODE); FindAndReplace("<TEL>", ai.AI_TEL); /* Modified by cyq 20160331 */ /************ Begin *********/ //FindAndReplace("<WIT>", "0"); //FindAndReplace("<OUT>", ri.RI_SUMS.ToString("N2")); FindAndReplace("<WIT>", internalTotal.ToString("N2")); //FindAndReplace("<OUT>", externalTotal.ToString("N2")); FindAndReplace("<OUT>", (ri.RI_SUMS - internalTotal).ToString("N2")); /************ End *********/ FindAndReplace("<TOT>", ri.RI_SUMS.ToString("N2")); FindAndReplace("<SAS>", ri.RI_SUMTAXSALARY.ToString("N2")); FindAndReplace("<TAX>", ri.RI_SUMTAXRMB.ToString("N2")); FindAndReplace("<PRE>", ((ri.RI_NEEDPACKREAL < 0) ? decimal.Zero : (decimal)ri.RI_NEEDPACKREAL).ToString("N2"));//已扣缴税额 if (ri.RI_SUMTAXRMB < ri.RI_SUMTAXALREADYRMB + ri.RI_USEALL) { FindAndReplace("<CRE>", (ri.RI_SUMTAXRMB).ToString("N2")); //TODO } else { FindAndReplace("<CRE>", ((decimal)(ri.RI_SUMTAXALREADYRMB + ri.RI_USEALL)).ToString("N2")); //TODO } FindAndReplace("<NAME>", tp.TP_NAME); string sHolder = "!\"#$%&*+=|{}[]`~_/"; object findtext; for (int i = 0; i < sHolder.Length; i++) { replacetext = tp.TP_IDNUMBER.Substring(i, 1); findtext = sHolder.Substring(i, 1); FindAndReplace(findtext, replacetext); } aDoc.Save(); }
/// <summary> /// 查询公司ID /// </summary> /// <param name="agentName"></param> /// <returns></returns> public static int GetAgentID(string agentName) { int result = -1; using (TAXDBDataContext db = new TAXDBDataContext()) { AGENT_INFO ay = db.AGENT_INFOs.SingleOrDefault(v => v.AI_NAME == agentName); if (ay != null) { result = ay.AI_ID; } return(result); } }
/// <summary> /// 报表导出 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnEm_Click(object sender, EventArgs e) { //*** Modified by CYQ on 2018-07-26 ***// // 根据财通嘉鑫要求,增加有关无身份证号的报税申请人处理 //*** Begin ***// TAX_PLAYER currTP = db.TAX_PLAYERs.SingleOrDefault(ai => ai.TP_ID == RW1.Base.RI_TPID); #region 用户输入无身份证号的报税申请人的身份证号 string id = string.Empty; // 申报人身份证号 if (string.IsNullOrEmpty(currTP.TP_IDNUMBER)) { string s = "请输入申报人身份证号"; if (InputDialog.ShowInputDialog(ref s) == DialogResult.OK) { id = s.Trim(); } } else { id = currTP.TP_IDNUMBER; } if (id != string.Empty) { currTP.TP_IDNUMBER = id; db.SubmitChanges(); } else { MessageBox.Show("未获取到有效的身份证号信息,请重新输入", "消息", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } #endregion //*** End ***// fbdPath.Description = "将导出文件保存到..."; DialogResult result = fbdPath.ShowDialog(); if (result != System.Windows.Forms.DialogResult.OK) { return; } Assembly assembly = Assembly.GetExecutingAssembly(); Assembly asm = Assembly.GetExecutingAssembly(); string file = string.Format("{0}.Resources.ReportTemplate.xlsx", asm.GetName().Name); Stream fileStream = asm.GetManifestResourceStream(file); string filename = fbdPath.SelectedPath + string.Format("\\{0}-{1}_{2}.xlsx", RW1.ACNAME, RW1.TPNAME, DateTime.Now.ToString("yyyyMMddHHmm")); SaveStreamToFile(filename, fileStream); ExcelHelper excel = new ExcelHelper(); //报表一 excel.OpenFile(filename, 1); excel.SetValue(1, 2, string.Format("{0}-{1}{2}工资单", RW1.ACNAME, RW1.TPNAME, RW1.Base.RI_YEARTITLE1)); excel.SetValue(4, 6, RW1.Base.RI_CURRENTNAME); var data = RW1.Details.OrderBy(a => a.R1_MONTH).ToList(); //load data; int i = 0; foreach (var d in data) { string[] tmp = new string[] { d.R1_MONTH, d.R1_FORTAX.ToString(), d.R1_REALDOLLOR.ToString(), d.R1_REALRMB.ToString(), d.R1_TAXALREADY.ToString(), d.R1_TAXALREADYRMB.ToString(), d.R1_SALARYRMB.ToString() }; excel.SetValue(5 + i, 2, tmp); i++; } excel.SetValue(17, 3, RW1.Base.RI_BONUS.ToString()); excel.SetValue(18, 2, RW1.Base.RI_NOTE1); excel.SetValue(19, 2, RW1.Base.RI_NOTE2); /* Modified by cyq 20160331 */ /************ Begin *********/ excel.SetFontNameSize(21, 2, "宋体", 11); excel.SetFontNameSize(21, 4, "宋体", 11); excel.SetFontNameSize(23, 2, "宋体", 11); excel.SetFontNameSize(23, 4, "宋体", 11); excel.SetValue(21, 2, "编制日期: " + RW1.Base.RI_TABLETIME.ToLongDateString().ToString()); excel.SetValue(21, 4, "复核日期: " + RW1.Base.RI_TABLETIME.AddDays(2).ToLongDateString().ToString()); excel.SetValue(23, 2, "编制人: " + txtScheduler.Text.Trim()); excel.SetValue(23, 4, "复核人: " + txtReviewer.Text.Trim()); /************ End *********/ //报表二 excel.ChangeSheet(2); excel.SetValue(3, 1, string.Format("{0}--工资个税 {1}", RW2.TPNAME, RW2.Base.RI_YEARTITLE2)); var data2 = RW2.Details.OrderBy(a => a.R2_MONTH).ToList(); i = 0; foreach (var d in data2) { string[] tmp = new string[] { d.R2_MONTH, d.R2_SALARY.ToString(), d.R2_MINUS.ToString(), d.R2_TAXSALARY.ToString(), string.Format("{0}%", d.R2_TAXRATE), d.R2_QUICK.ToString(), d.R2_NEED.ToString() }; excel.SetValue(7 + i, 1, tmp); i++; } excel.SetValue(19, 2, RW2.Base.RI_BONUS.ToString()); excel.SetValue(19, 4, RW2.Base.RI_BONUS.ToString()); TAX_RATE tr = SysUtil.GetTaxRate((int)RW2.Base.RI_BONUSTAXRATEID); excel.SetValue(19, 5, string.Format("{0}%", tr.TR_RATE)); excel.SetValue(19, 6, tr.TR_QUICH.ToString()); excel.SetValue(19, 7, RW2.Base.RI_BONUSTAX.ToString()); excel.SetValue(20, 2, RW2.Base.RI_SUMS.ToString()); excel.SetValue(20, 4, RW2.Base.RI_SUMTAXSALARY.ToString()); excel.SetValue(20, 7, RW2.Base.RI_SUMTAXRMB.ToString()); excel.SetValue(20, 8, RW2.Base.RI_SUMTAXALREADYRMB.ToString()); // Modified by CYQ on 2018-09-10 // 根据财通嘉鑫要求,将“本年已缴/以前留抵”拆分为“境内已纳税额”和“以前留抵税额” // Begin //excel.SetValue(20, 9, RW2.Base.RI_USEALL.ToString()); excel.SetValue(20, 9, (RW2.Base.RI_USE2).ToString()); // 境内已纳税额 excel.SetValue(20, 10, (RW2.Base.RI_USEALL - RW2.Base.RI_USE2).ToString()); // 以前留抵税额 //*** Modified by CYQ on 2018-07-13 ***// // //*** Begin ***// //excel.SetValue(20, 10, RW2.Base.RI_NEEDPACKREAL.ToString()); //if (RW2.Base.RI_NEEDPACKREAL.HasValue && // RW2.Base.RI_NEEDPACKREAL.Value > 0) //{ // excel.SetValue(20, 10, RW2.Base.RI_NEEDPACKREAL.ToString()); //} // end if //if (RW2.Base.RI_NEEDPACKREAL.HasValue) //{ // if (RW2.Base.RI_NEEDPACKREAL.Value > 0) // { // excel.SetValue(20, 10, RW2.Base.RI_NEEDPACKREAL.ToString()); // } // end if // else // { // excel.SetValue(20, 10, "0.00"); // } // end else //} if (RW2.Base.RI_NEEDPACKREAL.HasValue) { if (RW2.Base.RI_NEEDPACKREAL.Value > 0) { excel.SetValue(20, 11, RW2.Base.RI_NEEDPACKREAL.ToString()); } // end if else { excel.SetValue(20, 11, "0.00"); } // end else } // End //*** End ***// excel.SetValue(22, 1, RW2.Base.RI_NOTE1); excel.SetValue(23, 1, string.Format(" {0}", RW2.Base.RI_NOTE2)); /* Modified by cyq 20160331 */ /************ Begin *********/ excel.SetFontNameSize(25, 2, "宋体", 11); excel.SetFontNameSize(25, 4, "宋体", 11); excel.SetFontNameSize(27, 2, "宋体", 11); excel.SetFontNameSize(27, 4, "宋体", 11); excel.SetValue(25, 2, "编制日期: " + RW1.Base.RI_TABLETIME.ToLongDateString().ToString()); excel.SetValue(25, 4, "复核日期: " + RW1.Base.RI_TABLETIME.AddDays(2).ToLongDateString().ToString()); excel.SetValue(27, 2, "编制人: " + txtScheduler.Text.Trim()); excel.SetValue(27, 4, "复核人: " + txtReviewer.Text.Trim()); /************ End *********/ excel.Close(); //生成报表三 if (RW2.Base.RI_MOUNTHCOUNT == 12) { filename = fbdPath.SelectedPath + string.Format("\\{0}-{1}_{2}.doc", RW1.ACNAME, RW1.TPNAME, DateTime.Now.ToString("yyyyMMddHHmm")); File.WriteAllBytes(filename, TaxDemo.Properties.Resources.Template3); AGENT_INFO ai = SysUtil.GetAgentInfo(RW1.Base.RI_ACID); TAX_PLAYER tp = SysUtil.GetTaxPlayer(RW1.Base.RI_TPID); WordUtil word = new WordUtil(); { word.Open(filename); /* Modified by cyq 20160331 */ /************ Begin *********/ word.WriteData(RW1.Base, ai, tp, InternalTotal, ExternalTotal); /************ End *********/ word.Close(); } } MessageBox.Show("导出成功", this.funName); if (cbxOpen.Checked) { Process.Start(fbdPath.SelectedPath); } }