//写入单身信息 private void SetDetailInfo(ERP_Create_Purtg_HeadObject headObj, ERP_Create_Purtg_DetailObject detailObj) { detailObj.TH015 = detailObj.TH007; detailObj.TH016 = detailObj.TH007; detailObj.TH034 = detailObj.TH007; detailObj.TH064 = detailObj.TH008; detailObj.TH065 = detailObj.TH008; detailObj.TH019 = Math.Round(float.Parse(detailObj.TH007) * float.Parse(detailObj.TH018), 6, MidpointRounding.AwayFromZero).ToString(); detailObj.TH003 = detailObj.RowIndex.ToString().PadLeft(4, '0'); string sqlstr = @"INSERT INTO PURTH(COMPANY,CREATOR,USR_GROUP,CREATE_DATE,FLAG, TH001,TH002,TH003,TH004,TH005,TH006,TH007,TH008,TH009,TH010, TH011,TH012,TH013,TH014,TH015,TH016,TH018,TH019,TH026,TH027, TH029,TH030,TH031,TH032,TH033,TH034,TH035,TH042,TH043,TH044, TH060,TH064,TH065,TH071,TH072,THC02) VALUES('{0}','{1}','{2}','{3}',1,'{4}','{5}','{6}', '{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}','{16}','{17}', '{18}','{19}','{20}','{21}','N','{22}','N','N','N','N','{23}', '{24}','{25}','{26}','N','N','0','{27}','{28}','1','##########','{29}')"; mssql.SQLexcute(strConnection, string.Format(sqlstr, headObj.Company, headObj.Uid, headObj.Ugroup, headObj.Time, headObj.TG001, headObj.TG002, detailObj.TH003, detailObj.TH004, detailObj.TH005, detailObj.TH006, detailObj.TH007, detailObj.TH008, detailObj.TH009, detailObj.TH010, detailObj.TH011, detailObj.TH012, detailObj.TH013, detailObj.TH014, detailObj.TH015, detailObj.TH016, detailObj.TH018, detailObj.TH019, detailObj.TH027, detailObj.TH033, detailObj.TH034, detailObj.TH035, detailObj.TH042, detailObj.TH064, detailObj.TH065, detailObj.THC02)); }
//数量 private void GetNumber(ERP_Create_Purtg_HeadObject headObj, ERP_Create_Purtg_DetailObject detailObj) { if (detailObj.SlDt != null && detailObj.SlDt.Rows.Count != 0) { detailObj.RowIndex++; detailObj.TH011 = detailObj.SlDt.Rows[0][1].ToString(); detailObj.TH012 = detailObj.SlDt.Rows[0][2].ToString(); detailObj.TH013 = detailObj.SlDt.Rows[0][3].ToString(); detailObj.TH018 = Math.Round(float.Parse(detailObj.SlDt.Rows[0][4].ToString()), 6, MidpointRounding.AwayFromZero).ToString(); detailObj.TH033 = detailObj.SlDt.Rows[0][5].ToString(); detailObj.TH035 = detailObj.SlDt.Rows[0][6].ToString(); detailObj.TH042 = detailObj.SlDt.Rows[0][7].ToString(); detailObj.THC02 = detailObj.SlDt.Rows[0][8].ToString(); if (float.Parse(detailObj.SlDt.Rows[0][0].ToString()) >= detailObj.Total) { detailObj.TH007 = Math.Round(detailObj.Total, 6, MidpointRounding.AwayFromZero).ToString(); SetDetailInfo(headObj, detailObj); } else { float sl = float.Parse(detailObj.SlDt.Rows[0][0].ToString()); detailObj.TH007 = Math.Round(sl, 6, MidpointRounding.AwayFromZero).ToString(); detailObj.Total -= sl; SetDetailInfo(headObj, detailObj); detailObj.SlDt.Rows.RemoveAt(0); GetNumber(headObj, detailObj); } } }
private void SetDetailDefaultDef(ERP_Create_Purtg_HeadObject headObj) { ERP_Create_Purtg_DetailObject detailObj = new ERP_Create_Purtg_DetailObject(); GetLsDt(headObj, detailObj); if (detailObj.LsDt != null) { for (int lsRowIndex = 0; lsRowIndex < detailObj.LsDt.Rows.Count; lsRowIndex++) { try { detailObj.TH004 = detailObj.LsDt.Rows[lsRowIndex][0].ToString(); detailObj.TH005 = detailObj.LsDt.Rows[lsRowIndex][1].ToString(); detailObj.TH006 = detailObj.LsDt.Rows[lsRowIndex][2].ToString(); detailObj.TH008 = detailObj.LsDt.Rows[lsRowIndex][3].ToString(); detailObj.TH009 = detailObj.LsDt.Rows[lsRowIndex][4].ToString(); detailObj.Total = float.Parse(detailObj.LsDt.Rows[lsRowIndex][5].ToString()); detailObj.TH010 = headObj.TG005; detailObj.TH014 = headObj.TG003; GetSlDt(headObj, detailObj); GetNumber(headObj, detailObj); } catch (Exception e) { MessageBox.Show(e.ToString()); } } } }
//根据流水号,获获取临时表的明细 private void GetLsDt(ERP_Create_Purtg_HeadObject headObj, ERP_Create_Purtg_DetailObject detailObj) { string sqlstr = @"SELECT RTRIM(MB001), RTRIM(MB002), RTRIM(MB003), RTRIM(MB004), RTRIM(JHXA003), RTRIM(JHXA009) FROM INVMB INNER JOIN JH_LYXA ON JHXA007 = MB001 WHERE 1=1 AND JHXA005 = '{0}' ORDER BY ID"; detailObj.LsDt = mssql.SQLselect(strConnection, string.Format(sqlstr, headObj.FlowId)); }
//可进货采购单明细逻辑 private void GetSlDt(ERP_Create_Purtg_HeadObject headObj, ERP_Create_Purtg_DetailObject detailObj) { string sqlstr = @"SELECT DISTINCT TOP 200 TD008 - TD015 - ( SELECT isnull( SUM ( TH007 ), 0 ) FROM COMFORT.dbo.PURTH(NOLOCK) AS PURTH INNER JOIN COMFORT.dbo.PURTG(NOLOCK) AS PURTG ON TG001 = TH001 AND TG002 = TH002 WHERE TH011 = TD001 AND TH012 = TD002 AND TH013 = TD003 AND TG013 = 'N' ) AS WJL, TD001 AS TH011, RTRIM(TD002) AS TH012, TD003 AS TH013, (CASE WHEN TD010 IS NULL THEN 0 ELSE TD010 END) AS TH018, TD014 AS TH033, RTRIM(TD020) AS TH035, RTRIM(TD022) AS TH042, RTRIM(TDC03) AS THC02, TC003, TD012 FROM COMFORT.dbo.PURTD(NOLOCK) AS PURTD LEFT JOIN COMFORT.dbo.PURTC(NOLOCK) AS PURTC ON TC001 = TD001 AND TC002 = TD002 WHERE TC004 = '{0}' AND TD004 = '{1}' AND (TD008 - TD015 - ( SELECT isnull( SUM ( TH007 ), 0 ) FROM COMFORT.dbo.PURTH PURTH WHERE TH011 = TD001 AND TH012 = TD002 AND TH013 = TD003 AND TH030 = 'N' )) > 0 AND TD016 = 'N' AND TC014 = 'Y' AND TC001 <> '3305' AND TC001 <> '3306' ORDER BY TC003 DESC, TD012, TD001 DESC, RTRIM(TD002), TD003"; detailObj.SlDt = mssql.SQLselect(strConnection, string.Format(sqlstr, headObj.TG005, detailObj.TH004)); }