C++转换成Go语言 求帮忙

qq_35021200 2016-10-19 08:47:23
void ConfirmStockOut(LJSON *param,LJSON *result) //审核出库单
{
WideString clinicid = param->GetElement("ChainClinicId")->AsString();
WideString SubClinicID = param->GetElement("SubClinicID")->AsString();
if (clinicid.IsEmpty())
throw std::exception("连锁店ChainClinicId不能为空!");
if (SubClinicID.IsEmpty())
throw std::exception("诊所SubClinicID不能为空!");
LADOQuery query_Journal(LFDBConnections::Instance()->Get(clinicid));
LADOQuery KQuery(LFDBConnections::Instance()->Get(clinicid));

int StockOutStatus = param->GetElement("StockOutStatus")->AsInt();

WideString StockOutIdentity = param->GetElement("StockOutIdentity")->AsString();

WideString sql = "select m.StockOutNo, m.OutType, m.StockOutMan,m.StockOutStatus,d.OutDetailIdentity, d.OutItemIdentity, d.OutNum, d.OutStockBatch, d.InNo "
"from t_stockOutdetail d inner join t_stockoutmain m on d.OutMainIdentity=m.StockOutIdentity "
"where d.OutIsDeleted=0 and d.OutMainIdentity=:OutMainIdentity and d.ClinicUniqueID=:ClinicUniqueID and d.SubClinicID=:SubClinicID";
KQuery.SQL.SetText(sql);
KQuery.ParamByName("OutMainIdentity")->AsString(StockOutIdentity);
KQuery.ParamByName("ClinicUniqueID")->AsString(clinicid);
KQuery.ParamByName("SubClinicID")->AsString(SubClinicID);
KQuery.Open();
if (!KQuery.IsEof())
{
if (KQuery.FieldByName("StockOutStatus")->AsInteger()==StockOutStatus)
{ //如果审订状态不一致,则提示,已被审核
result->SetElement("code")->SetInt(2);
result->SetElement("info")->SetString("出库单已被审核!");
return;
}
param->SetElement("StockOutNo")->SetString(KQuery.FieldByName("StockOutNo")->AsString());
param->SetElement("OutType")->SetString(KQuery.FieldByName("OutType")->AsString());
param->SetElement("StockOutMan")->SetString(KQuery.FieldByName("StockOutMan")->AsString());
while (!KQuery.IsEof())
{
WideString OutDetailIdentity = KQuery.FieldByName("OutDetailIdentity")->AsString();
if (StockOutStatus==1) //取消审核
{
query_Journal.Close(); //修改流水账表的数量为0及删除标志
query_Journal.SQL.SetText("update t_stockjournal set OutNum=0,DataStatus=0 where InOutDetailId=:InOutDetailId and DataStatus=1 and ClinicUniqueID=:ClinicUniqueID and SubClinicID=:SubClinicID");
query_Journal.ParamByName("InOutDetailId")->AsString(OutDetailIdentity);
query_Journal.ParamByName("ClinicUniqueID")->AsString(clinicid);
query_Journal.ParamByName("SubClinicID")->AsString(SubClinicID);
query_Journal.ExecSQL();
query_Journal.Close();
query_Journal.SQL.SetText("select StockJournalId from t_stockjournal where InOutDetailId=:InOutDetailId and ClinicUniqueID=:ClinicUniqueID and SubClinicID=:SubClinicID");
query_Journal.ParamByName("InOutDetailId")->AsString(OutDetailIdentity);
query_Journal.ParamByName("ClinicUniqueID")->AsString(clinicid);
query_Journal.ParamByName("SubClinicID")->AsString(SubClinicID);
query_Journal.Open();
if (!query_Journal.IsEof())
{
while (!query_Journal.IsEof())
{
param->SetElement("StockJournalId")->SetString(query_Journal.FieldByName("StockJournalId")->AsString());
UpdateStockByJournal(param, result); //根据流水账ID生成库存
query_Journal.Next();
}
}
}
else
{
param->SetElement("OutDetailIdentity")->SetString(OutDetailIdentity);
param->SetElement("OutItemIdentity")->SetString(KQuery.FieldByName("OutItemIdentity")->AsString());
param->SetElement("OutNum")->SetString(KQuery.FieldByName("OutNum")->AsString());
param->SetElement("OutStockBatch")->SetString(KQuery.FieldByName("OutStockBatch")->AsString());
param->SetElement("InNo")->SetString(KQuery.FieldByName("InNo")->AsString());
param->SetElement("InOutType")->SetInt(2);
CreateJournalByOut(param, result); //出库单 创建 流水账
}
KQuery.Next();
}
KQuery.Close();
sql=" StockOutStatus=:StockOutStatus ";
sql="UPDATE t_stockoutmain SET "+sql;
sql=sql+" WHERE StockOutIdentity=:StockOutIdentity and ClinicUniqueID=:ClinicUniqueID and SubClinicID=:SubClinicID";
KQuery.SQL.SetText(sql);
KQuery.ParamByName("StockOutStatus")->AsString(StockOutStatus);
KQuery.ParamByName("Updatetime")->AsDateTime(LDateTime::CurrentDateTime());
KQuery.ParamByName("StockOutIdentity")->AsString(StockOutIdentity);
KQuery.ParamByName("ClinicUniqueID")->AsString(clinicid);
KQuery.ParamByName("SubClinicID")->AsString(SubClinicID);
KQuery.ExecSQL();

SetSucceedRecords(result);
}
else //无明细记录
{
result->SetElement("code")->SetInt(4);
result->SetElement("info")->SetString("出库单无明细或记录已被删!"); //无明细或记录已被删
}
}
...全文
969 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

2,190

社区成员

发帖
与我相关
我的任务
社区描述
go语言学习与交流版
社区管理员
  • go语言社区
  • Freeman Z
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧