/// <summary> /// 添加加工销售订单明细 /// </summary> /// <param name="mod"></param> /// <param name="error"></param> /// <returns></returns> public static bool AddMachineOderDetail(MachineOderDetail mod, ref string error) { try { Convert.ToDateTime(mod.LeadTime); } catch (Exception) { error = string.Format("交期{0}不是标准日期格式 yyyy-MM-dd ", mod.LeadTime); return(false); } if (string.IsNullOrEmpty(mod.OrdersNumber) || string.IsNullOrEmpty(mod.RowNumber) || string.IsNullOrEmpty(mod.SN) || string.IsNullOrEmpty(mod.LeadTime) || string.IsNullOrEmpty(mod.CustomerProductNumber) || string.IsNullOrEmpty(mod.Qty) || string.IsNullOrEmpty(mod.CustomerId)) { error = string.Format("信息填写不完整!"); return(false); } string sql = string.Format(@" select ProductNumber from ProductCustomerProperty where CustomerProductNumber ='{0}' and CustomerId='{1}' and Version='{2}' ", mod.CustomerProductNumber, mod.CustomerId, mod.Version); DataTable dt = SqlHelper.GetTable(sql); if (dt.Rows.Count == 0) { error = string.Format("系统不存在该客户产成品编号:{0},版本:{1}", mod.CustomerProductNumber, mod.Version); return(false); } string productNumber = dt.Rows[0]["ProductNumber"].ToString(); string version = mod.Version; sql = string.Format(@" select COUNT (*) from MachineOderDetail where OdersNumber ='{0}' and ProductNumber ='{1}' and Version ='{2}' and RowNumber ='{3}'", mod.OrdersNumber, productNumber, version, mod.RowNumber); if (!SqlHelper.GetScalar(sql).Equals("0")) { error = string.Format("订单记录已存在"); return(false); } List <string> sqls = new List <string>(); sql = string.Format(@" select UnitPrice from V_FindPriceForNew where ProductNumber ='{0}' and Version ='{1}' and CustomerId='{2}' ", productNumber, version, mod.CustomerId); string salesQuotation = SqlHelper.GetScalar(sql); salesQuotation = string.IsNullOrEmpty(salesQuotation) ? "0" : salesQuotation; sql = string.Format(@" insert into MachineOderDetail (OdersNumber ,ProductNumber ,Version ,LeadTime ,RowNumber ,SN ,CustomerProductNumber ,Qty ,NonDeliveryQty ,DeliveryQty ,UnitPrice ,SumPrice ,CreateTime,remark ) select '{0}',ProductNumber,Version ,'{1}','{2}',{3},'{4}',{5},{5},0,{10},{10}*{5},'{6}','{9}' from Product where ProductNumber ='{7}' and Version ='{8}'", mod.OrdersNumber, mod.LeadTime, mod.RowNumber, mod.SN, mod.CustomerProductNumber, mod.Qty , DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), productNumber, version, mod.Remark, salesQuotation); return(SqlHelper.ExecuteSql(sql, ref error)); }
/// <summary> /// 批量导入销售订单 /// </summary> /// <param name="so"></param> /// <param name="FU_Excel"></param> /// <param name="server"></param> /// <param name="error"></param> /// <returns></returns> public static bool BacthAddSaleOrder(SaleOder so, FileUpload FU_Excel, HttpServerUtility server, ref string error) { bool result = false; DataSet ds = ToolManager.ImpExcel(FU_Excel, server); if (ds == null) { error = "选择的文件为空或不是标准的Excel文件!"; return(false); } DataTable dt = ds.Tables[0]; if (so.ProductType.Equals("贸易")) { if (!dt.Columns.Contains("客户物料编号")) { error = "导入模板与生产类型不一致!"; return(false); } } else { if (!dt.Columns.Contains("客户产成品编号")) { error = "导入模板与生产类型不一致!"; return(false); } } //插入主表信息 string sql = string.Format(@"insert into SaleOder (OdersNumber ,OrdersDate ,OdersType ,ProductType ,MakeCollectionsMode,CustomerId ,ContactId ,CreateTime ,Remark ,CustomerOrderNumber,KhddH ) values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}')", so.OrdersNumber, so.OrdersDate, so.OdersType , so.ProductType, so.MakeCollectionsMode, so.CustomerId, so.ContactId, so.CreateTime, so.Remark, so.CustomerOrderNumber, so.KhddH); SqlHelper.ExecuteSql(sql, ref error); //按照生产类型分别批量添加 if (so.ProductType.Equals("贸易")) { List <TradingOrderDetail> tods = new List <TradingOrderDetail>(); foreach (DataRow dr in dt.Rows) { TradingOrderDetail tod = new TradingOrderDetail(); tod.OrdersNumber = so.OrdersNumber; tod.SN = dr["序号"].ToString(); tod.RowNumber = dr["行号"].ToString(); tod.Delivery = GetLeadTime(dr["交期"].ToString()); tod.CustomerMaterialNumber = dr["客户物料编号"].ToString(); tod.Quantity = dr["订单数量"].ToString(); tod.Remark = dr["备注"].ToString(); tod.CustomerId = so.CustomerId; tods.Add(tod); } result = BacthAddTradingOrderDetail(tods, ref error); } else // 序号 行号 交期 客户产成品编号 订单数量 { List <MachineOderDetail> mods = new List <MachineOderDetail>(); foreach (DataRow dr in dt.Rows) { MachineOderDetail mod = new MachineOderDetail(); mod.OrdersNumber = so.OrdersNumber; mod.SN = dr["序号"].ToString(); mod.RowNumber = dr["行号"].ToString(); mod.LeadTime = GetLeadTime(dr["交期"].ToString()); mod.CustomerProductNumber = dr["客户产成品编号"].ToString(); mod.Qty = dr["订单数量"].ToString(); mod.CustomerId = so.CustomerId; mod.Version = dr["版本"].ToString().ToUpper(); if (mod.Version.Equals("")) { mod.Version = SellManager.GetMostNewVersion(dr["客户产成品编号"].ToString()); } else if (mod.Version.Equals("OO")) { mod.Version = "00"; } mods.Add(mod); } result = BacthAddMachineOderDetail(mods, ref error); } return(result); }