tijian_jichuang/Code/ShouFei/frmTJZXQK.cs

416 lines
15 KiB
C#
Raw Normal View History

2025-02-20 11:54:48 +08:00
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using SOH.Kernel;
using EAS;
using EAS.Services;
using SOH.BLL;
using SOH.Entities.DTO;
using SOH.Data;
using SOH.Entities;
namespace SOH.ShouFei
{
public partial class frmTJZXQK : Form
{
private int htbm;
private short fddm;
public frmTJZXQK()
{
InitializeComponent();
}
public frmTJZXQK(int thtbm,short thtzt) :this()
{
string dm = LoginUser.yydm;
short fddmtemp = 0;
short.TryParse(dm, out fddmtemp);
fddm = fddmtemp;
this.gvHTFZ.AutoGenerateColumns = false;
this.gvYJF.AutoGenerateColumns = false;
htbm = thtbm;
if (thtzt == 1)
{
this.btnHTJZ.Enabled = true;
this.btnHTFJ.Enabled = false;
this.btnAdd.Enabled = true;
this.btnDelete.Enabled = true;
}
else if (thtzt == 2) //已经结束的
{
this.btnHTJZ.Enabled = false;
this.btnHTFJ.Enabled = true;
this.btnAdd.Enabled = false;
this.btnDelete.Enabled = false;
}
else
{
//其他状态现在暂时没有暂时跟1一样
this.btnHTJZ.Enabled = true;
this.btnHTFJ.Enabled = false;
this.btnAdd.Enabled = true;
this.btnDelete.Enabled = true;
}
//根据htbm初始化
//1.根据htbm获取客户名称和年度
var vsht = ServiceContainer.GetService<It_ht>();
string title = vsht.GetTitleByHtbm(htbm);
this.lbTitle.Text = title;
//统计信息
TongJi();
//加载交费人列表
var vsjfr = ServiceContainer.GetService<It_ygzd>();
List<t_ygzd> lt= vsjfr.GetListByFddm(fddm);
this.cbJFR.DataSource = null;
this.cbJFR.DataSource = lt;
this.cbJFR.DisplayMember = "xm";
this.cbJFR.ValueMember = "xm";
this.cbJFR.SelectedIndex = 0;
this.cbJFFS.SelectedIndex = 0;
}
//统计查询
private void TongJi()
{
if (htbm == null || htbm == 0)
{
this.gvHTFZ.DataSource = null;
}
else
{
//根据合同编码查询合同分组及相关体检人员统计信息
var vs = ServiceContainer.GetService<It_tjhk>();
List<dto_tjhtzx> ldt = vs.GetTjqk(htbm);
//根据ldt计算各种合计
int fzhj = 0; //分组合计
int jxhj = 0; //加项合计
int yshj = 0; //应收合计
int hkhj = 0; //回款合计
int zqk = 0; //总欠款
int yjhj = 0; //原价合计
if (ldt != null)
{
int wdjyjs = 0;
int djyjs = 0;
int sjjes = 0;
int sjrss = 0;
int wjrss = 0;
int wjjes = 0;
int gfjxs = 0;
int xjs = 0;
//循环过程中查询出公费加项
List<dto_tjhtzx> ldtnew = new List<dto_tjhtzx>();
var vsjjx = ServiceContainer.GetService<It_jjxb>();
for (int i = 0; i < ldt.Count; i++)
{
dto_tjhtzx dt = ldt[i];
//根据htfzbm查询公费加项合计
int gfjx = vsjjx.GetGfjxhjByHtfzbm(dt.htfzbm);
dt.gfjx = gfjx;
dt.xj = dt.sjje + dt.wjje + gfjx;
if (ldt[i].gzfbj == 1)
{
dt.sjje = 0;
dt.wjje = 0;
dt.xj = dt.gfjx;
}
ldtnew.Add(dt);
//if (ldt[i].gzfbj == 1) //团检自费的时候 实检金额和未检金额设置为0
//{
// sjjes += 0;
// sjrss += dt.sjrs;
// wjrss += dt.wjrs;
// wjjes += 0;
// gfjxs += dt.gfjx;
// xjs += dt.gfjx;
//}
//else
//{
// sjjes += dt.sjje;
// sjrss += dt.sjrs;
// wjrss += dt.wjrs;
// wjjes += dt.wjje;
// gfjxs += dt.gfjx;
// xjs += dt.xj;
//}
wdjyjs += dt.wdjyj;
djyjs += dt.djyj;
sjjes += dt.sjje;
sjrss += dt.sjrs;
wjrss += dt.wjrs;
wjjes += dt.wjje;
gfjxs += dt.gfjx;
xjs += dt.xj;
}
this.gvHTFZ.DataSource = null;
if (ldtnew != null && ldtnew.Count > 0)
{
//给ldtnew加一行合计
//实检人数 实检金额 未检人数 未检金额 公费加项 小计需要合计
dto_tjhtzx dthj = new dto_tjhtzx();
dthj.htfzbm = 0;
dthj.htfzmc = "合计";
dthj.sjje = sjjes;
dthj.djyj = djyjs;
dthj.wdjyj = wdjyjs;
dthj.sjrs = sjrss;
dthj.wjrs = wjrss;
dthj.wjje = wjjes;
dthj.gfjx = gfjxs;
dthj.xj = xjs;
ldtnew.Add(dthj);
this.gvHTFZ.DataSource = ldtnew;
//合计信息赋值
fzhj = sjjes + wjjes;
jxhj = gfjxs;
yshj = sjjes + gfjxs;
yjhj = djyjs + wdjyjs;
this.tbfzhj.Text = fzhj.ToString();
this.tbjxhj.Text = jxhj.ToString();
this.tbyshj.Text = yshj.ToString();
this.tbyjhj.Text = yjhj.ToString();
}
//回款合计
var vsttsf = ServiceContainer.GetService<It_ttsfjl>();
List<Entities.t_ttsfjl> ltt = vsttsf.GetList(htbm);
this.gvYJF.DataSource = null;
if (ltt == null || ltt.Count == 0)
{
}
else
{
hkhj = ltt.Sum(t => t.je) / 100;
this.gvYJF.DataSource = ltt;
}
this.tbhkhj.Text = hkhj.ToString();
zqk = yshj - hkhj;
this.tbzqk.Text = zqk.ToString();
}
}
}
private void btnAdd_Click(object sender, EventArgs e)
{
string jfr = this.cbJFR.SelectedValue == null ? "" : this.cbJFR.SelectedValue.ToString();
if (string.IsNullOrEmpty(jfr))
{
MessageBox.Show("请选择交费人");
return;
}
int jffs = this.cbJFFS.SelectedIndex;
if (jffs < 0)
{
MessageBox.Show("请选择交费方式");
return;
}
DateTime jfrq = this.dtpRQ.Value;
string sm = this.tbSM.Text.Trim();
string jfjestr = this.tbJFJE.Text.Trim();
int jfje = 0;
if (!Int32.TryParse(jfjestr, out jfje))
{
MessageBox.Show("请输入正确格式的交费金额");
return;
}
if (jfje == 0)
{
MessageBox.Show("请输入正确格式的交费金额");
return;
}
var vsbasic = ServiceContainer.GetService<IBasic>();
t_ttsfjl ttt = new t_ttsfjl();
ttt.htbm = htbm;
ttt.xh = vsbasic.GetMax("dto.t_ttsfjl", 1);
ttt.rq = jfrq;
ttt.jffs = (short)jffs;
ttt.je = jfje * 100;
ttt.jfr = jfr;
ttt.jsr = LoginUser.xm;
ttt.sm = sm;
var vstt=ServiceContainer.GetService<It_ttsfjl>();
OperationResult or = vstt.AddTtsfjl(ttt);
if (or.State == 1)
{
MessageBox.Show(or.Message);
//更新回款总额
string hkjestr = this.tbhkhj.Text.Trim();
int hkje = 0;
Int32.TryParse(hkjestr, out hkje);
hkje = hkje + ttt.je / 100;
this.tbhkhj.Text = hkje.ToString();
//更新总欠款
string zqkstr = this.tbzqk.Text.Trim();
int zqk = 0;
Int32.TryParse(zqkstr, out zqk);
zqk = zqk - ttt.je / 100;
this.tbzqk.Text = zqk.ToString();
List<t_ttsfjl> lttt = new List<t_ttsfjl>();
if(this.gvYJF.DataSource==null)
{
lttt.Add(ttt);
this.gvYJF.DataSource = null;
this.gvYJF.DataSource = lttt;
}
else
{
lttt= this.gvYJF.DataSource as List<t_ttsfjl>;
if (lttt == null || lttt.Count == 0)
{
lttt = new List<t_ttsfjl>();
}
lttt.Add(ttt);
this.gvYJF.DataSource = null;
this.gvYJF.DataSource = lttt;
}
}
else
{
MessageBox.Show(or.Message);
return;
}
}
private void btnUpdate_Click(object sender, EventArgs e)
{
}
private void btnDelete_Click(object sender, EventArgs e)
{
if (this.gvYJF.SelectedRows.Count == 0 || this.gvYJF.SelectedRows[0].Index <0)
{
MessageBox.Show("请选择已交费信息后删除");
return;
}
int rindex=this.gvYJF.SelectedRows[0].Index;
t_ttsfjl ttt = this.gvYJF.Rows[rindex].DataBoundItem as t_ttsfjl;
if (ttt == null)
{
MessageBox.Show("请选择已交费信息后删除");
return;
}
else
{
//根据xh删除 t_ttsfjl信息
var vs = ServiceContainer.GetService<It_ttsfjl>();
OperationResult or = vs.DeleteTtsfjl(ttt);
if (or.State == 1)
{
//更新回款总额
string hkjestr = this.tbhkhj.Text.Trim();
int hkje = 0;
Int32.TryParse(hkjestr, out hkje);
hkje = hkje - ttt.je / 100;
this.tbhkhj.Text = hkje.ToString();
//更新总欠款
string zqkstr = this.tbzqk.Text.Trim();
int zqk = 0;
Int32.TryParse(zqkstr, out zqk);
zqk = zqk + ttt.je / 100;
this.tbzqk.Text = zqk.ToString();
List<t_ttsfjl> lttt = this.gvYJF.DataSource as List<t_ttsfjl>;
lttt.Remove(ttt);
this.gvYJF.DataSource = null;
if (lttt.Count > 0)
{
this.gvYJF.DataSource = lttt;
}
MessageBox.Show(or.Message);
}
else
{
MessageBox.Show(or.Message);
return;
}
}
}
//加项明细
private void btnJXMX_Click(object sender, EventArgs e)
{
frmTJJXMX tjjxmx = new frmTJJXMX(htbm);
tjjxmx.ShowDialog();
}
//未检人员
private void btnWJRY_Click(object sender, EventArgs e)
{
//根据htbm获取各个分组下的未检人员
frmTJWJRY tjwjry = new frmTJWJRY(htbm);
tjwjry.ShowDialog();
}
//体检明细
private void btnTJMX_Click(object sender, EventArgs e)
{
//根据分组编码获取分组下的体检人员明细
}
private void frmTJZXQK_Load(object sender, EventArgs e)
{
}
//合同结账
private void btnHTJZ_Click(object sender, EventArgs e)
{
//根据合同编码进行合同结账(有欠款的不允许结账)
string zqkstr = this.tbzqk.Text; //判断当前窗体中显示的总欠款是否为0
int zqk = 1;
Int32.TryParse(zqkstr, out zqk);
if (zqk > 0)
{
MessageBox.Show("交款额不足总欠款大于0不能结账");
return;
}
else
{
var vs = ServiceContainer.GetService<It_tjhk>();
OperationResult or = vs.HtJieZhang(htbm);
if (or.State == 1)
{
//结账之后 几个按钮状态需要改变
this.btnHTJZ.Enabled = false;
this.btnHTFJ.Enabled = true;
this.btnAdd.Enabled = false;
this.btnDelete.Enabled = false;
}
MessageBox.Show(or.Message);
}
}
private void btnHTFJ_Click(object sender, EventArgs e)
{
var vs = ServiceContainer.GetService<It_tjhk>();
OperationResult or = vs.HtFanJie(htbm);
if (or.State == 1)
{
//反结之后 几个按钮状态需要改变
this.btnHTJZ.Enabled = true;
this.btnHTFJ.Enabled = false;
this.btnAdd.Enabled = true;
this.btnDelete.Enabled = true;
}
MessageBox.Show(or.Message);
}
}
}