Example #1
0
        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("修改成功");
                }
            }
        }
Example #2
0
        /* 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();
        }
Example #3
0
        /// <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);
            }
        }
Example #4
0
        /// <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);
            }
        }