public static int InsertCostProductionInfo(ProcutionCostModel model, ArrayList Detailsmodels) { if (model == null || Detailsmodels == null) return 0; try { return CostProductionDBHelper.InsertCostProductionInfo(model, Detailsmodels); } catch(Exception ex) { throw ex; } }
public static int InsertCostProductionInfo(ProcutionCostModel model, ArrayList Detailsmodels) { SqlConnection conn = new SqlConnection(SqlHelper._connectionStringStr); conn.Open(); SqlTransaction mytran = conn.BeginTransaction(); try { StringBuilder cmdsql = new StringBuilder(); cmdsql.AppendLine("Insert into officedba.CostProduction"); cmdsql.AppendLine("(CompanyCD,PeriodNum,ProductID,AccountMethod,"); cmdsql.AppendLine("CompRatePro,IsInvestment,FinishedProductCount,"); cmdsql.AppendLine("InProuctCount,MaterialsUnit,WageUnit,OverheadUnit,"); cmdsql.AppendLine("BurningPowerUnit,CurrentMonthMaterials,CurrentMonthHours,"); cmdsql.AppendLine("EndMonthHours,EndMonthMaterials,CurrencyType,CurrencyRate,Remark)"); cmdsql.AppendLine("values(@CompanyCD,@PeriodNum,@ProductID,@AccountMethod,"); cmdsql.AppendLine("@CompRatePro,@IsInvestment,@FinishedProductCount,"); cmdsql.AppendLine("@InProuctCount,@MaterialsUnit,@WageUnit,@OverheadUnit,"); cmdsql.AppendLine("@BurningPowerUnit,@CurrentMonthMaterials,@CurrentMonthHours,"); cmdsql.AppendLine("@EndMonthHours,@EndMonthMaterials,@CurrencyType,@CurrencyRate,@Remark)"); cmdsql.AppendLine("set @IntID= @@IDENTITY"); SqlParameter[] parms = { new SqlParameter("@CompanyCD",SqlDbType.VarChar,8), new SqlParameter("@PeriodNum",SqlDbType.VarChar,8), new SqlParameter("@ProductID",SqlDbType.Int), new SqlParameter("@AccountMethod",SqlDbType.Char), new SqlParameter("@CompRatePro",SqlDbType.Decimal), new SqlParameter("@IsInvestment",SqlDbType.Char), new SqlParameter("@FinishedProductCount",SqlDbType.Decimal), new SqlParameter("@InProuctCount",SqlDbType.Decimal), new SqlParameter("@MaterialsUnit",SqlDbType.Decimal), new SqlParameter("@WageUnit",SqlDbType.Decimal), new SqlParameter("@OverheadUnit",SqlDbType.Decimal), new SqlParameter("@BurningPowerUnit",SqlDbType.Decimal), new SqlParameter("@CurrentMonthMaterials",SqlDbType.Decimal), new SqlParameter("@CurrentMonthHours",SqlDbType.Decimal), new SqlParameter("@EndMonthHours",SqlDbType.Decimal), new SqlParameter("@EndMonthMaterials",SqlDbType.Decimal), new SqlParameter("@CurrencyType",SqlDbType.Int), new SqlParameter("@CurrencyRate",SqlDbType.Decimal), new SqlParameter("@Remark",SqlDbType.VarChar,200), new SqlParameter("@IntID",SqlDbType.Int) }; parms[0].Value = model.CompanyCD; parms[1].Value = model.PeriodNum; parms[2].Value = model.ProductID; parms[3].Value = model.AccountMethod; parms[4].Value = model.CompRatePro; parms[5].Value = model.IsInvestment; parms[6].Value = model.FinishedProductCount; parms[7].Value = model.InProuctCount; parms[8].Value = model.MaterialsUnit; parms[9].Value = model.WageUnit; parms[10].Value = model.OverheadUnit; parms[11].Value = model.BurningPowerUnit; parms[12].Value = model.CurrentMonthMaterials; parms[13].Value = model.CurrentMonthHours; parms[14].Value = model.EndMonthHours; parms[15].Value = model.EndMonthMaterials; parms[16].Value = model.CurrencyType; parms[17].Value = model.CurrencyRate; parms[18].Value = model.Remark; parms[19] = SqlHelper.GetOutputParameter("@IntID", SqlDbType.Int); int rev = SqlHelper.ExecuteNonQuery(mytran, CommandType.Text, cmdsql.ToString(), parms); int ID = Convert.ToInt32(parms[19].Value); if (ID > 0) { StringBuilder sql = new StringBuilder(); sql.AppendLine("Insert into officedba.CostDetails"); sql.AppendLine("(CTID,ItemName,Materials,Wage,"); sql.AppendLine("Overhead,BurningPower,TotalCost)"); sql.AppendLine("values(@CTID,@ItemName,@Materials,@Wage,"); sql.AppendLine("@Overhead,@BurningPower,@TotalCost)"); SqlParameter[] paras = { new SqlParameter("@CTID",SqlDbType.Int), new SqlParameter("@ItemName",SqlDbType.VarChar,50), new SqlParameter("@Materials",SqlDbType.Decimal), new SqlParameter("@Wage",SqlDbType.Decimal), new SqlParameter("@Overhead",SqlDbType.Decimal), new SqlParameter("@BurningPower",SqlDbType.Decimal), new SqlParameter("@TotalCost",SqlDbType.Decimal) }; foreach (CostDetailsModel mdl in Detailsmodels) { paras[0].Value = ID; paras[1].Value = mdl.ItemName; paras[2].Value = mdl.Materials; paras[3].Value = mdl.Wage; paras[4].Value = mdl.Overhead; paras[5].Value = mdl.BurningPower; paras[6].Value = mdl.TotalCost; SqlHelper.ExecuteNonQuery(mytran, CommandType.Text, sql.ToString(), paras); } } mytran.Commit(); return ID; } catch (Exception ex) { mytran.Rollback(); throw ex; } finally { conn.Close(); conn.Dispose(); } }