1、通过预算周期和公司ID获取预算编制单(预算编制单含有上报状态属性)。
2、通过预算编制单的ID或VID获取当期工作流实体(可以知道工作流的状态)。
3、
获得明细拆分数据(固定资产明细)
public IList<ResolutionMDL> GetDetailsResolutions(string detailsID, string detailsType)
SELECT r.ID,
r.CompanyID,
isnull (r.PreResolutionNum, 0) AS PreResolutionNum,
isnull (r.AddResolutionNum, 0) AS AddResolutionNum,
isnull (r.ResolutionNum, 0) AS ResolutionNum,
isnull (r.AddResolutionApprovalNum, 0) AS AddResolutionApprovalNum,
isnull (r.ResolutionApprovalNum, 0) AS ResolutionApprovalNum,
r.ResolutionApproved,
r.ResolutionImplement,
r.ResolutionQuantity,
CASE
WHEN r.ResolutionApprovalQuantity IS NULL THEN r.ResolutionQuantity
ELSE r.ResolutionApprovalQuantity
END
AS ResolutionApprovalQuantity,
r.ResolutionApprovedQuantity,
r.ResolutionImplementQuantity,
r.ResolutionUnitePrice,
CASE
WHEN r.ResolutionApprovalUnitePrice IS NULL
THEN
r.ResolutionUnitePrice
ELSE
r.ResolutionApprovalUnitePrice
END
AS ResolutionApprovalUnitePrice,
r.ResolutionApprovedUnitePrice,
r.ResolutionImplementUnitePrice,
c.CompShortName AS CompanyName
FROM dbo.BM_ResolutionRelatingDetails rrd
INNER JOIN
dbo.BM_Resolution r
ON rrd.ResolutionID = r.id
LEFT JOIN
Org_Company c
ON r.CompanyID = c.Id
WHERE rrd.DetailsID = 'df2dafa4-b3bb-46c5-824f-6fee8354a912'
AND rrd.DetailsType = '固定资产明细'
ORDER BY CompSerial ASC
通过明细ID获取固定资产明细实体:
PermanentAssetsDetailsMDL model = new BudgetManagementBFL().GetPermanentAssetsDetails(detailsID);
通过明细实体的科目ID,获取单位预算科目信息。
CompanyBudgetAccountsMDL cmodel = new BudgetManagementBFL().GetCompanyBudgetAccountsByKey(model.AccountID);
获取固定资产明细科目ID
public IList<PermanentAssetsDetailsMDL> GetPermanentAssetsDetailsByAccountIDAndAccountRelatingAdjust(string accountID)
SELECT pad.ID,
pad.AccountID,
ISNULL (cba.Seq, '') + cba.AccountName AS AccountName,
ISNULL (r.BasePrice, 0) AS BasePrice,
cba.IsPaidByOthers,
ut.DictName AS Unite,
pad.Specification,
pad.PreUnitePrice,
pad.UnitePrice,
isnull (pad.ApprovalUnitePrice, pad.UnitePrice) AS ApprovalUnitePrice,
pad.UnitePriceApproved,
pad.PreNumber,
pad.Quantity,
isnull (pad.ApprovalNumber, pad.Quantity) AS ApprovalNumber,
pad.PreMoney,
pad.Money,
pad.PreApprovalMoney,
pad.ApprovalMoney,
pad.UserDepartment,
pad.ApplyReason,
pad.ApprovalApplyReason,
bt.DictName AS CalculatedType,
(SELECT CASE WHEN COUNT (1) > 0 THEN 'Y' ELSE 'N' END
FROM BM_CompanyBudgetAccounts
WHERE ParentAccountID = pad.AccountID AND Status = 1)
AS IsHasChild,
(SELECT CASE WHEN COUNT (1) > 0 THEN 'Y' ELSE 'N' END
FROM AM_ApprovalOpinion
WHERE BudgetingAccountID = pad.ID)
AS IsHasOpinion
FROM dbo.BM_DetailsRelatingAccount dra
INNER JOIN
dbo.BM_PermanentAssetsDetails pad
ON dra.DetailsID = pad.ID
INNER JOIN
dbo.BM_CompanyBudgetAccounts cba
ON pad.AccountID = cba.ID
INNER JOIN
BM_AccountRelatingDetails r
ON r.DetailsID = cba.TemplateAccountID
LEFT JOIN
dbo.EHS_SYS_DictInfo bt
ON cba.CalculatedProperty = bt.DictInfo_Id
LEFT JOIN
dbo.EHS_SYS_DictInfo ut
ON cba.Unit_Id = ut.DictInfo_Id
WHERE pad.Id IN (SELECT DetailsID
FROM dbo.BM_DetailsRelatingAccount
WHERE AccountID = 'a9a79021-18b2-4fef-b24e-11e6505aa0b9')
AND r.AccountID =
(SELECT TemplateAccountID
FROM BM_CompanyBudgetAccounts
WHERE ID IN
(SELECT AdjustmentSubjectID
FROM BM_BudgetAdjustmentAccount
WHERE ID = 'a9a79021-18b2-4fef-b24e-11e6505aa0b9'))
ORDER BY cba.AccountCode ASC, cba.AccountName