CPutData::CPutData()
{
sql="";
m_Date= _T("");//建帐日期
m_lIndex=0;//引索
m_Kinds= _T("");//单据类型
}
CPutData::~CPutData()
{
}
bool CPutData:

utSubject(CString m_SubjectID,double m_dMoney,bool m_bAdd)
{
double m_dFSMoney=0;//发生额额
double m_dLJMoney=0;//累计金额
sql.Format("select * from 科目 where ID='%s'",m_SubjectID);
if(m_DataRun.CheckSQLResult1(sql))
{
m_DataRun.get1("本月发生额",m_dFSMoney);
m_DataRun.get1("累计金额",m_dLJMoney);
if(m_bAdd)//增加
{
m_dFSMoney+=m_dMoney;
m_dLJMoney+=m_dMoney;
}
else//减少
{
m_dFSMoney-=m_dMoney;
m_dLJMoney-=m_dMoney;
}
m_DataRun.put1("本月发生额",m_dFSMoney);
m_DataRun.put1("累计金额",m_dLJMoney);
if(!m_DataRun.up1())
{
m_DataRun.RollbackTrans();//回滚事务
return 0;
}
}
return 1;
}
bool CPutData:

utSubjectBook(CString m_SubjectID,double m_dMoney,bool m_bAdd)//录入科目帐本
{
if(!PutSubject(m_SubjectID,m_dMoney,m_bAdd))
return 0;
double m_dFSMoney=0;//发生额额
double m_dLJMoney=0;//累计金额
sql.Format("select * from 科目 where ID='%s'",m_SubjectID);
if(m_DataRun.CheckSQLResult1(sql))
{
m_DataRun.get1("累计金额",m_dLJMoney);
m_DataRun.add1("科目帐本");
m_DataRun.put1("引索",m_lIndex);
m_DataRun.put1("科目编码",m_SubjectID);
m_DataRun.put1("日期",m_Date);
if(m_bAdd)//增加
m_DataRun.put1("增加金额",m_dMoney);
else//减少
m_DataRun.put1("减少金额",m_dMoney);
m_DataRun.put1("余额",m_dLJMoney);
if(!m_DataRun.up1())
{
m_DataRun.RollbackTrans();//回滚事务
return 0;
}
}
return 1;
}
bool CPutData:

utDWBook(long m_lSPID, double m_dNumber,double m_dPrice ,double m_dMoney, bool m_bAdd)
{
double m_YE=0.0;//余额
long n=0;//单位性质
CString m_SubjectID="10101";
if(!PutYSYFMoney(m_dMoney,m_bAdd))//应收应付
return 0;
sql.Format("select * from 单位 where ID=%d",m_lDWID);
if(m_DataRun.CheckSQLResult1(sql))
m_DataRun.get1("单位性质",n);
sql.Format("select * from 应收应付 where 单位ID=%d",m_lDWID);
if(m_DataRun.CheckSQLResult1(sql))
{
if(n==1)//假如为供应商
m_DataRun.get1("应付款",m_YE);
else
m_DataRun.get1("应收款",m_YE);
}
else
m_YE=m_dMoney;//没有记录
m_DataRun.add1("单位帐本");
m_DataRun.put1("引索",m_lIndex);
m_DataRun.put1("日期",m_Date);
m_DataRun.put1("单位ID",m_lDWID);
m_DataRun.put1("商品ID",m_lSPID);
m_DataRun.put1("数量",m_dNumber);
m_DataRun.put1("单价",m_dPrice);
m_DataRun.put1("科目ID",m_SubjectID);
if(m_bAdd)
m_DataRun.put1("增加",m_dMoney);
else
m_DataRun.put1("减少",m_dMoney);
m_DataRun.put1("余额",m_dMoney);
if(!m_DataRun.up1())
{
m_DataRun.RollbackTrans();//回滚事务
return 0;
}
return 1;
}
bool CPutData::PutDWBook(CString m_SubjectID,double m_dMoney,bool m_bAdd)
{
double m_YE=0.0;
long n=0;//单位性质
if(!PutYSYFMoney(m_dMoney,m_bAdd))//应收应付
return 0;
sql.Format("select * from 单位 where ID=%d",m_lDWID);
if(m_DataRun.CheckSQLResult1(sql))
m_DataRun.get1("单位性质",n);
sql.Format("select * from 应收应付 where 单位ID=%d",m_lDWID);
if(m_DataRun.CheckSQLResult1(sql))
{
if(n==1)//假如为供应商
m_DataRun.get1("应付款",m_YE);
else
m_DataRun.get1("应收款",m_YE);
}
else
m_YE=m_dMoney;//没有记录
m_DataRun.add1("单位帐本");
m_DataRun.put1("引索",m_lIndex);
m_DataRun.put1("日期",m_Date);
m_DataRun.put1("单位ID",m_lDWID);
m_DataRun.put1("科目ID",m_SubjectID);
if(m_bAdd)
m_DataRun.put1("增加",m_dMoney);
else
m_DataRun.put1("减少",m_dMoney);
m_DataRun.put1("余额",m_YE);
if(!m_DataRun.up1())
{
m_DataRun.RollbackTrans();//回滚事务
return 0;
}
return 1;
}
bool CPutData::PutYSYFMoney(double m_dMoney, bool m_bAdd)
{
long n=0;//单位性质
double m_Money=0.0;
sql.Format("select * from 单位 where ID=%d",m_lDWID);
if(m_DataRun.CheckSQLResult1(sql))
m_DataRun.get1("单位性质",n);
sql.Format("select * from 应收应付 where 单位ID=%d",m_lDWID);
if(m_DataRun.CheckSQLResult1(sql))
{
if(n==1)//假如为供应商
{
m_DataRun.get1("应付款",m_Money);
if(m_bAdd)
m_Money+=m_dMoney;
else
m_Money-=m_dMoney;
m_DataRun.put1("应付款",m_Money);
}
else//客户
{
m_DataRun.get1("应收款",m_Money);
if(m_bAdd)
m_Money+=m_dMoney;
else
m_Money-=m_dMoney;
m_DataRun.put1("应收款",m_Money);
}
if(!m_DataRun.up1())
{
m_DataRun.RollbackTrans();//回滚事务
return 0;
}
}
else
{
if(n==1)//假如为供应商
{
m_DataRun.add1("应收应付");
m_DataRun.put1("单位ID",m_lDWID);
m_DataRun.put1("应付款",m_dMoney);
}
else//客户
{
m_DataRun.add1("应收应付");
m_DataRun.put1("单位ID",m_lDWID);
m_DataRun.put1("应收款",m_dMoney);
}
if(!m_DataRun.up1())
{
m_DataRun.RollbackTrans();//回滚事务
return 0;
}
}
return 1;
}
bool CPutData::PutKCBook(long m_lCKID, long m_lSPID, double m_dNumber, double m_lPrice,double m_dmoney, bool m_bAdd)
{
if(!PutKC(m_lCKID,m_lSPID,m_dNumber,m_dmoney,m_bAdd))
return 0;
double m_dOldCount=0;//库存余量
double m_dOldMoney=0;//库存金额
//库存
sql.Format("select * from 库存 where 商品ID=%d and 仓库ID=%d",m_lSPID,m_lCKID);
if(m_DataRun.CheckSQLResult1(sql))//判断库存是否有这种商品
{
m_DataRun.get1("数量",m_dOldCount);
m_DataRun.get1("金额",m_dOldMoney);
}
m_DataRun.add1("库存帐本");
m_DataRun.put1("引索",m_lIndex);
m_DataRun.put1("单据类型",m_Kinds);
m_DataRun.put1("商品ID",m_lSPID);
m_DataRun.put1("仓库ID",m_lCKID);
m_DataRun.put1("日期",m_Date);
if(m_bAdd)
m_DataRun.put1("入库量",m_dNumber);
else
m_DataRun.put1("出库量",m_dNumber);
m_DataRun.put1("价格",m_lPrice);
m_DataRun.put1("库存余量",m_dOldCount);
m_DataRun.put1("库存金额",m_dOldMoney);
if(!m_DataRun.up1())
{
m_DataRun.RollbackTrans();//回滚事务
return 0;
}
return 1;
}
bool CPutData::PutKC(long m_lCKID, long m_lSPID, double m_dNumber, double m_dmoney,bool m_bAdd)
{
double m_dOldCount=0;//库存余量
double m_dOldMoney=0;//库存金额
double m_dCBPrice=0;//成本均价
//库存
sql.Format("select * from 库存 where 商品ID=%d and 仓库ID=%d",m_lSPID,m_lCKID);
if(m_DataRun.CheckSQLResult1(sql))//判断库存是否有这种商品
{//如果有就更新记录
//更新--数量,价格,金额(库存总价)
m_DataRun.get1("数量",m_dOldCount);
m_DataRun.get1("金额",m_dOldMoney);
if(m_bAdd)
{
m_dOldMoney+=m_dmoney;
m_dOldCount+=m_dNumber;
m_dCBPrice=m_dOldMoney/m_dOldCount;
m_DataRun.put1("数量",m_dOldCount);
m_DataRun.put1("成本均价",m_dCBPrice);
m_DataRun.put1("金额",m_dOldMoney);
}
else
{
m_dCBPrice=m_dOldMoney/m_dOldCount;
m_dOldMoney-=m_dCBPrice*m_dNumber;
m_dOldCount-=m_dNumber;
m_DataRun.put1("数量",m_dOldCount);
m_DataRun.put1("金额",m_dOldMoney);
}
if(!m_DataRun.up1())
{
m_DataRun.RollbackTrans();//回滚事务
return 0;
}
}
else//如果没有就插入记录
{
m_dOldMoney=m_dmoney;
m_dOldCount=m_dNumber;
m_dCBPrice=m_dOldMoney/m_dOldCount;
m_DataRun.add1("库存");
m_DataRun.put1("商品ID",m_lSPID);
m_DataRun.put1("仓库ID",m_lCKID);
m_DataRun.put1("数量",m_dOldCount);
m_DataRun.put1("成本均价",m_dCBPrice);
m_DataRun.put1("金额",m_dOldMoney);
if(!m_DataRun.up1())
{
m_DataRun.RollbackTrans();//回滚事务
return 0;
}
}
return 1;
}