/// <summary> /// BOM子件详细信息 /// </summary> /// <param name="model"></param> /// <returns></returns> public static DataTable GetBomSubInfo(BomModel model) { UserInfoUtil userInfo = (UserInfoUtil)SessionUtil.Session["UserInfo"]; #region 查询语句 //查询SQL拼写 StringBuilder searchSql = new StringBuilder(); searchSql.AppendLine("select b.ID as DetailID,b.BomNo,b.ProductID,b.Remark,"); searchSql.AppendLine(" b.ProductType,c.CodeName as TypeName,b.UnitID,"); searchSql.AppendLine(" t.CodeName as UnitName,Convert(numeric(14,"+ userInfo.SelPoint + "),b.Quota) as Quota,Convert(numeric(14," + userInfo.SelPoint + "),b.RateLoss) as RateLoss,b.IsMain,"); searchSql.AppendLine(" b.UsedStatus,b.SourceType,p.ProductName,isnull(p.Specification,'') as Specification,isnull(cbt.TypeName,'') as ColorName,isnull(cbm.TypeName,'') as MaterialName "); searchSql.AppendLine("from officedba.BomDetail b"); searchSql.AppendLine("left join officedba.ProductInfo p on p.ID=b.ProductID"); searchSql.AppendLine("left join officedba.CodeProductType c on c.ID=b.ProductType"); searchSql.AppendLine("left join officedba.CodeUnitType t on t.ID=b.UnitID"); searchSql.AppendLine("left join officedba.CodePublicType cbt on p.ColorID=cbt.ID"); searchSql.AppendLine("left join officedba.CodePublicType cbm on p.Material=cbm.ID"); searchSql.AppendLine("where b.CompanyCD=@CompanyCD "); searchSql.AppendLine(" and BomNo=(select top 1 BomNo from officedba.Bom where CompanyCD=@CompanyCD and ID=@ID)"); #endregion //定义查询的命令 SqlCommand comm = new SqlCommand(); //添加公司代码参数 comm.Parameters.Add(SqlHelper.GetParameterFromString("@CompanyCD", model.CompanyCD)); comm.Parameters.Add(SqlHelper.GetParameterFromString("@ID", model.ID.ToString())); //指定命令的SQL文 comm.CommandText = searchSql.ToString(); //执行查询 return(SqlHelper.ExecuteSearch(comm)); }
/// <summary> /// BOM插入 /// </summary> /// <param name="model"></param> /// <returns></returns> public static bool InsertBom(BomModel model, out string ID) { UserInfoUtil userInfo = (UserInfoUtil)SessionUtil.Session["UserInfo"]; ID = "0"; try { bool succ = false; string loginUserID = ((UserInfoUtil)SessionUtil.Session["UserInfo"]).UserID; LogInfoModel logModel = InitLogInfo(model.BomNo, 0); logModel.Element = ConstUtil.LOG_PROCESS_INSERT; succ = BomDBHelper.InsertBom(model, loginUserID, out ID); if (!succ) { logModel.Remark = ConstUtil.LOG_PROCESS_FAILED; } else { logModel.Remark = ConstUtil.LOG_PROCESS_SUCCESS; } LogDBHelper.InsertLog(logModel); return(succ); } catch (Exception ex) { WriteSystemLog(userInfo, 0, ex); return(false); } }
/// <summary> /// BOM详细信息 /// </summary> /// <param name="model"></param> /// <returns></returns> public static DataTable GetBomInfo(BomModel model) { #region 查询语句 //查询SQL拼写 StringBuilder searchSql = new StringBuilder(); searchSql.AppendLine("select a.CompanyCD,a.ID,a.BomNo,a.Subject,a.ParentNo,a.[Type],"); searchSql.AppendLine(" a.Verson,a.Creator,a.RouteID,t.RouteName,e.EmployeeName,isnull( CONVERT(CHAR(10), a.CreateDate, 23),'') as CreateDate,"); searchSql.AppendLine(" a.Remark,p.ProductName,a.ProductID,a.UnitID,a.UsedUnitID,a.UsedStatus,"); searchSql.AppendLine(" c.CodeName as UnitName,d.CodeName as UsedUnitName,a.ExRate,b.BomNo as ParentBom"); searchSql.AppendLine("from officedba.Bom a"); searchSql.AppendLine("left outer join officedba.TechnicsRouting t on t.ID=a.RouteID"); searchSql.AppendLine("left join officedba.EmployeeInfo e on e.ID=a.Creator"); searchSql.AppendLine("left join officedba.ProductInfo p on p.ID=a.ProductID"); searchSql.AppendLine("left join officedba.CodeUnitType c on c.ID=a.UnitID"); searchSql.AppendLine("left join officedba.CodeUnitType d on d.ID=a.UsedUnitID"); searchSql.AppendLine("left outer join officedba.Bom b on b.ID=a.ParentNo"); searchSql.AppendLine("where a.ID=@ID"); #endregion //定义查询的命令 SqlCommand comm = new SqlCommand(); comm.Parameters.Add(SqlHelper.GetParameterFromString("@ID", model.ID.ToString())); //指定命令的SQL文 comm.CommandText = searchSql.ToString(); //执行查询 return(SqlHelper.ExecuteSearch(comm)); }
protected void BtnEliminarItem_Click(object sender, EventArgs e) { BomModel bom = new BomModel(Convert.ToInt32(HdnMdlDelIdItem.Value), true); bool IsDelete; if (HdnMdlDelLevel.Value == "1") { IsDelete = bom.DeleteNode(HdnIdModel.Value, bom.ItemBom.NODE, false); } else { IsDelete = bom.DeleteItem(HdnIdModel.Value, HdnMdlDelIdItem.Value, false); } if (IsDelete) { ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "myalert", "alert('La Eliminación fue exitosa.'); window.location='" + Page.ResolveUrl("~/View/Comercial/AdmVentas/Productos/EdicionModelos.aspx?ID=" + HdnIdModel.Value + "&TOKEN=" + TOKEN) + "';", true); } else { ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "myalert", "alert('Se produjo un error al tratar de eliminar, por favor intentelo nuevamente.'); window.location='" + Page.ResolveUrl("~/View/Comercial/AdmVentas/Productos/EdicionModelos.aspx?ID=" + HdnIdModel.Value + "&TOKEN=" + TOKEN) + "';", true); } }
/// <summary> /// 通过检索条件查询Bom信息 /// </summary> /// <param name="model"></param> /// <returns></returns> public static DataTable GetBomListBycondition(BomModel model, int pageIndex, int pageCount, string OrderBy, ref int totalCount) { #region 查询语句 //查询SQL拼写 StringBuilder searchSql = new StringBuilder(); searchSql.AppendLine("select * from ("); searchSql.AppendLine(" select a.CompanyCD,a.ID,a.BomNo,e.ProductName,a.parentNo,isnull(c.BomNo,'') as ParentBom,a.Type,a.RouteID,a.UsedStatus,isnull(b.RouteName,'') as RouteName,"); searchSql.AppendLine(" case when a.Type=0 then '工程Bom' when a.Type=1 then '生产Bom' when a.Type=2 then '销售Bom' when a.Type=3 then '成本Bom' end as strType,"); searchSql.AppendLine(" case when a.UsedStatus=0 then '停用' when a.UsedStatus=1 then '启用' end as strUsedStatus,a.ModifiedDate "); searchSql.AppendLine(" from officedba.Bom a"); searchSql.AppendLine(" left join officedba.TechnicsRouting b on b.ID=a.RouteID"); searchSql.AppendLine(" left join officedba.Bom c on c.ID=a.ParentNo"); searchSql.AppendLine(" left join officedba.ProductInfo e on a.ProductID=e.ID"); searchSql.AppendLine(")as info where CompanyCD=@CompanyCD"); #endregion //定义查询的命令 SqlCommand comm = new SqlCommand(); //添加公司代码参数 comm.Parameters.Add(SqlHelper.GetParameterFromString("@CompanyCD", model.CompanyCD)); //Bom编码 if (!string.IsNullOrEmpty(model.BomNo)) { searchSql.AppendLine(" and BomNo like @BomNo "); comm.Parameters.Add(SqlHelper.GetParameterFromString("@BomNo", "%" + model.BomNo + "%")); } //Bom类型 if (!string.IsNullOrEmpty(model.Type)) { if (int.Parse(model.Type) > -1) { searchSql.AppendLine(" and Type=@Type "); comm.Parameters.Add(SqlHelper.GetParameterFromString("@Type", model.Type)); } } //工艺路线 if (model.RouteID > 0) { searchSql.AppendLine(" and RouteID=@RouteID "); comm.Parameters.Add(SqlHelper.GetParameterFromString("@RouteID", model.RouteID.ToString())); } if (!string.IsNullOrEmpty(model.UsedStatus)) { if (int.Parse(model.UsedStatus) > -1) { //启用状态 searchSql.AppendLine(" and UsedStatus=@UsedStatus "); comm.Parameters.Add(SqlHelper.GetParameterFromString("@UsedStatus", model.UsedStatus)); } } //指定命令的SQL文 comm.CommandText = searchSql.ToString(); //执行查询 return(SqlHelper.PagerWithCommand(comm, pageIndex, pageCount, OrderBy, ref totalCount)); }
/// <summary> /// BOM控件查询Bom信息 /// </summary> /// <param name="model"></param> /// <returns></returns> public static DataTable GetBomControlList(BomModel model, int pageIndex, int pageCount, string OrderBy, ref int totalCount) { #region 查询语句 //查询SQL拼写 StringBuilder searchSql = new StringBuilder(); searchSql.AppendLine("select * from ("); searchSql.AppendLine(" select a.CompanyCD,a.ID,a.BomNo,a.parentNo,isnull(c.BomNo,'') as ParentBom,a.Type,a.RouteID,a.UsedStatus,isnull(b.RouteName,'') as RouteName,d.ProductName,a.ModifiedDate "); searchSql.AppendLine(" from officedba.Bom a"); searchSql.AppendLine(" left outer join officedba.TechnicsRouting b on b.ID=a.RouteID"); searchSql.AppendLine(" left outer join officedba.Bom c on c.ID=a.ParentNo"); searchSql.AppendLine(" left join officedba.ProductInfo d on a.ProductID=d.ID"); if (model.ID > 0) { searchSql.AppendLine(" where a.ID not in (select ID from officedba.Bom where CompanyCD=@CompanyCD and ParentNo=@ID) and a.ID<>@ID"); } if (!string.IsNullOrEmpty(model.ProductID)) { if (int.Parse(model.ProductID) > 0) { searchSql.AppendLine(" where a.ProductID= @ProductID"); } } searchSql.AppendLine(")as info where CompanyCD=@CompanyCD"); #endregion //定义查询的命令 SqlCommand comm = new SqlCommand(); //添加公司代码参数 comm.Parameters.Add(SqlHelper.GetParameterFromString("@CompanyCD", model.CompanyCD)); if (model.ID > 0) { comm.Parameters.Add(SqlHelper.GetParameterFromString("@ID", model.ID.ToString())); } if (!string.IsNullOrEmpty(model.ProductID)) { if (int.Parse(model.ProductID) > 0) { comm.Parameters.Add(SqlHelper.GetParameterFromString("@ProductID", model.ProductID)); } } if (!string.IsNullOrEmpty(model.UsedStatus)) { if (int.Parse(model.UsedStatus) > -1) { //启用状态 searchSql.AppendLine(" and UsedStatus=@UsedStatus "); comm.Parameters.Add(SqlHelper.GetParameterFromString("@UsedStatus", model.UsedStatus)); } } //指定命令的SQL文 comm.CommandText = searchSql.ToString(); //执行查询 return(SqlHelper.PagerWithCommand(comm, pageIndex, pageCount, OrderBy, ref totalCount)); }
/// <summary> /// BOM控件查询Bom信息 /// </summary> /// <param name="model"></param> /// <returns></returns> public static DataTable GetBomControlList(BomModel model, int pageIndex, int pageCount, string OrderBy, ref int totalCount) { try { return(BomDBHelper.GetBomControlList(model, pageIndex, pageCount, OrderBy, ref totalCount)); } catch (System.Exception ex) { throw ex; } }
/// <summary> /// 判断该结点下,是否还有子结点 /// </summary> /// <param name="ParentCode">上级编码</param> /// <returns>大于0还有子节点,否则无子节点</returns> public static int ChildrenCount(BomModel model) { string sql = "select count(ID) from officedba.Bom where CompanyCD=@CompanyCD and ParentNo=@ParentNo"; SqlParameter[] parms = new SqlParameter[2]; parms[0] = SqlHelper.GetParameter("@CompanyCD", model.CompanyCD); parms[1] = SqlHelper.GetParameter("@ParentNo", model.ParentNo); object obj = SqlHelper.ExecuteScalar(sql, parms); return(Convert.ToInt32(obj)); }
/// <summary> /// 设置是否合法 /// </summary> /// <param name="model"></param> /// <returns></returns> public static int CountInvalid(BomModel model) { try { return(BomDBHelper.CountInvalid(model)); } catch (Exception ex) { throw ex; } }
/// <summary> /// 加载BOM树 /// </summary> /// <param name="model"></param> /// <returns></returns> public static DataTable GetBomTree(BomModel model) { try { return(BomDBHelper.GetBomTree(model)); } catch (System.Exception ex) { throw ex; } }
/// <summary> /// 判断该结点下,是否还有子结点 /// </summary> /// <param name="ParentCode">上级编码</param> /// <returns>大于0还有子节点,否则无子节点</returns> public static int ChildrenCount(BomModel model) { try { return(BomDBHelper.ChildrenCount(model)); } catch (Exception ex) { throw ex; } }
/// <summary> /// 父件唯一性验证 /// </summary> /// <param name="ParentCode">上级编码</param> /// <returns>大于0:已经有父件引用该物品了,否则无父件引用该物品</returns> public static int ProductCount(BomModel model) { try { return(BomDBHelper.ProductCount(model)); } catch (Exception ex) { throw ex; } }
protected void Adddetail(Modelos._Modelo modelo) { BomModel bom = new BomModel(modelo.ID, true); HtmlGenericControl TablaBom = GettablaBom(bom.Lista); DivtablaBom.Controls.Clear(); DivtablaBom.Controls.Add(TablaBom); if (!string.IsNullOrWhiteSpace(modelo.DESCRIPCION)) { LblDetalle.Text = modelo.DESCRIPCION; } else { LblDetalle.Text = ""; } }
/* * 001 父件A(438), 子件a1(439),a2(440) * 002 父件a1(439),子件A(438),a2(440) * 建第二个BOM保存时需要做验证,避免物料计算时死循环. * select count(*)as invalids from officedba.Bom a left join officedba.BomDetail b on a.BomNo=b.BomNo where a.CompanyCD='T0004' and b.ProductID=439 and a.ProductID in(438,440) */ public static int CountInvalid(BomModel model) { string sql = "select count(*)as invalids from officedba.Bom a left join officedba.BomDetail b on a.BomNo=b.BomNo where a.CompanyCD=@CompanyCD and b.ProductID=@ProductID and a.ProductID in(" + model.DetProductID + ")"; SqlParameter[] parms = new SqlParameter[2]; parms[0] = SqlHelper.GetParameter("@ProductID", model.ProductID); parms[1] = SqlHelper.GetParameter("@CompanyCD", model.CompanyCD); object obj = SqlHelper.ExecuteScalar(sql, parms); if (obj == null) { return(0); } else { return(Convert.ToInt32(obj)); } }
protected void DDLSelcTipoCompo_SelectedIndexChanged(object sender, EventArgs e) { if (DDLSelcTipoCompo.SelectedIndex != 0) { PnlCompoSelected.Visible = false; GrdCompo.Visible = true; TxtSearchCompo.Visible = true; BtnSearchCompo.Visible = true; BomModel model = new BomModel(); GrdCompo.DataSource = model.GetCompoByWGR(DDLSelcTipoCompo.SelectedValue, true); GrdCompo.DataBind(); } else { GrdCompo.Visible = false; TxtSearchCompo.Visible = false; BtnSearchCompo.Visible = false; } }
public void showBomAccDetail(BomModel data) { mruBu.Text = data.bu; txtBsys.Text = data.sku; mruUColor.Text = data.uColor; mruSize.Text = data.size; mruPack.Text = data.packB; mruStic.Text = data.sticker; mruInk.Text = data.ink; mruTitanium.Text = data.titanium; txtBoxQty.Text = data.boxqty; txtseason.Text = data.season; txtBraArt.Text = data.braart; txtBraColor.Text = data.bracolor; txtBraSize.Text = data.brasize; //get data from another class MatGroup.f1 = form1; string matGroupName = MatGroup.Get_MatGroupName(data.matGroupID); luEdit_GroupMat.EditValue = luEdit_GroupMat.Properties.GetKeyValueByDisplayText(matGroupName); }
/// <summary> /// BOM树 /// </summary> /// <param name="model"></param> /// <returns></returns> public static DataTable GetBomTree(BomModel model) { #region 查询语句 //查询SQL拼写 StringBuilder searchSql = new StringBuilder(); searchSql.AppendLine("select a.BomNo,a.ID ,b.ProductName from officedba.Bom a left join officedba.ProductInfo b on a.ProductID=b.ID where a.CompanyCD=@CompanyCD and a.ParentNo=@ParentNo "); #endregion //定义查询的命令 SqlCommand comm = new SqlCommand(); //添加公司代码参数 comm.Parameters.Add(SqlHelper.GetParameterFromString("@CompanyCD", model.CompanyCD)); comm.Parameters.Add(SqlHelper.GetParameterFromString("@ParentNo", model.ParentNo.ToString())); //指定命令的SQL文 comm.CommandText = searchSql.ToString(); //执行查询 return(SqlHelper.ExecuteSearch(comm)); }
protected void DDLFirstPieceOrComp_SelectedIndexChanged1(object sender, EventArgs e) { if (DDLFirstPieceOrComp.SelectedIndex != 0) { if (DDLFirstPieceOrComp.SelectedIndex == 1) { PanelDivPiezas.Visible = true; PanelDivCompo.Visible = false; DDLFirstDivCompo.Visible = false; PanelDivProc.Visible = false; } else if (DDLFirstPieceOrComp.SelectedIndex == 2) { PanelDivPiezas.Visible = false; PanelDivCompo.Visible = true; DDLFirstDivCompo.Visible = true; PanelDivProc.Visible = false; BomModel bom = new BomModel(HdnIdModel.Value, true, "1"); FillDDL(DDLFirstDivCompo, "NOMBRE", "ID", "--Seleccionar--", bom.Lista); PanelSeleccionCompo.Visible = false; } else if (DDLFirstPieceOrComp.SelectedIndex == 3) { PanelDivPiezas.Visible = false; PanelDivCompo.Visible = false; DDLFirstDivCompo2.Visible = true; BomModel bom = new BomModel(HdnIdModel.Value, true, "1"); FillDDL(DDLFirstDivCompo2, "NOMBRE", "ID", "--Seleccionar--", bom.Lista); PanelDivProc.Visible = true; } } else { PanelDivPiezas.Visible = false; PanelDivCompo.Visible = false; PanelDivProc.Visible = false; } }
/// <summary> /// 父件唯一性验证 /// </summary> /// <param name="ParentCode">上级编码</param> /// <returns>大于0:已经有父件引用该物品了,否则无父件引用该物品</returns> public static int ProductCount(BomModel model) { string sql = string.Empty; if (model.ID > 0) { sql = "select Count(ID) from officedba.Bom where CompanyCD=@CompanyCD and ProductID=@ProductID and ID<>@ID"; SqlParameter[] parms = new SqlParameter[3]; parms[0] = SqlHelper.GetParameter("@CompanyCD", model.CompanyCD); parms[1] = SqlHelper.GetParameter("@ProductID", model.ProductID); parms[2] = SqlHelper.GetParameter("@ID", model.ID); object obj = SqlHelper.ExecuteScalar(sql, parms); return(Convert.ToInt32(obj)); } else { sql = "select Count(ID) from officedba.Bom where CompanyCD=@CompanyCD and ProductID=@ProductID"; SqlParameter[] parms = new SqlParameter[2]; parms[0] = SqlHelper.GetParameter("@CompanyCD", model.CompanyCD); parms[1] = SqlHelper.GetParameter("@ProductID", model.ProductID); object obj = SqlHelper.ExecuteScalar(sql, parms); return(Convert.ToInt32(obj)); } }
protected void BtnAddPieces_Click(object sender, EventArgs e) { BomModel model = new BomModel(); bool IsInserted = false; BomModel.Bom bom; if (DDLFirstPieceOrComp.SelectedIndex == 1) { double ancho; double largo; string error; if (double.TryParse(TxtMdlAPAnchoPiece.Text, out ancho)) { if (double.TryParse(TxtMdlAPLargoPiece.Text, out largo)) { bom = new BomModel.Bom { NOMBRE = TxtMdlAPNamePiece.Text, ANCHO = ancho, LARGO = largo, ALFAK_CODE = TxtSelectedAlfakCode.Text, CANT_PRED = 0, COSTO = 0, NODE = model.GetPos_Nr(HdnIdModel.Value, true, "1"), ID_MODEL = HdnIdModel.Value, LEVEL = "1", FROM_TAB = "", ID_FROM_TAB = "0", ESTADO = true, POS_NR = model.GetPos_Nr(HdnIdModel.Value, true, "1"), FORMULA = "", }; IsInserted = model.InsertBom(bom); } else { error = "Formato de Alto incorrecto"; ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "myalert", "alert('Se produjo un error de formato: " + error + "'); window.location='" + Page.ResolveUrl("~/View/Comercial/AdmVentas/Productos/EdicionModelos.aspx?ID=" + HdnIdModel.Value + "&TOKEN=" + TOKEN) + "';", true); } } else { error = " Formato de Ancho incorrecto"; ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "myalert", "alert('Se produjo un error de formato: " + error + "'); window.location='" + Page.ResolveUrl("~/View/Comercial/AdmVentas/Productos/EdicionModelos.aspx?ID=" + HdnIdModel.Value + "&TOKEN=" + TOKEN) + "';", true); } } else if (DDLFirstPieceOrComp.SelectedIndex == 2) { ComponentesClass Item = new ComponentesClass(HdnIdSelectedCompo.Value, true); int IDItemBom = Convert.ToInt32(DDLFirstDivCompo.SelectedValue); BomModel ItemBom = new BomModel(IDItemBom, true); bom = new BomModel.Bom { NOMBRE = Item._Detalle.Nombre, ALFAK_CODE = Item._Detalle.COD_ALFAK, ANCHO = 0, LARGO = 0, FORMULA = TxtFormulaCompo.Text, CANT_PRED = 0, ESTADO = true, COSTO = Item._Detalle.PrecioUn, FROM_TAB = "COT_MCOMPONENTES", ID_FROM_TAB = Item._Detalle._ID, ID_MODEL = HdnIdModel.Value, LEVEL = "2", NODE = ItemBom.ItemBom.POS_NR, POS_NR = ItemBom.GetPos_Nr(HdnIdModel.Value, true, "2", ItemBom.ItemBom.POS_NR), OPCIONAL = ChkIsOpcional.Checked, }; IsInserted = model.InsertBom(bom); } else if (DDLFirstPieceOrComp.SelectedIndex == 3) { ProcesosClass ProcClass = new ProcesosClass(); ProcesosClass._Proceso proceso = ProcClass.GetProceso(DDLTipoProcAsocAlfak.SelectedValue, true); int IDItemBom = Convert.ToInt32(DDLFirstDivCompo2.SelectedValue); BomModel ItemBom = new BomModel(IDItemBom, true); bom = new BomModel.Bom { NOMBRE = proceso.Nombre, ALFAK_CODE = proceso._CodAlfak, ANCHO = 0, LARGO = 0, FORMULA = TxtPnlProcSelectedFormula.Text, CANT_PRED = 0, ESTADO = true, COSTO = proceso.Costo_Unit, FROM_TAB = "COT_MPROCESOS", ID_FROM_TAB = proceso._ID, ID_MODEL = HdnIdModel.Value, LEVEL = "2", NODE = ItemBom.ItemBom.POS_NR, POS_NR = ItemBom.GetPos_Nr(HdnIdModel.Value, true, "2", ItemBom.ItemBom.POS_NR), OPCIONAL = ChkOpcionalProc.Checked, }; IsInserted = model.InsertBom(bom); } else { bom = new BomModel.Bom(); } if (IsInserted) { ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "myalert", "alert('Asignación Completa.'); window.location='" + Page.ResolveUrl("~/View/Comercial/AdmVentas/Productos/EdicionModelos.aspx?ID=" + HdnIdModel.Value + "&TOKEN=" + TOKEN) + "';", true); } else { ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "myalert", "alert('Se produjo un error en la asignación, por favor intentelo nuevamente.'); window.location='" + Page.ResolveUrl("~/View/Comercial/AdmVentas/Productos/EdicionModelos.aspx?ID=" + HdnIdModel.Value + "&TOKEN=" + TOKEN) + "';", true); } }
protected void FILLtablaBOM(List <BomModel.Bom> boms) { string espacio = " "; table = new HtmlGenericControl("table") { ID = "TablaProcesos", }; foreach (var item in boms) { tr = new HtmlGenericControl("tr"); HtmlGenericControl td = new HtmlGenericControl("td"); HtmlGenericControl td0 = new HtmlGenericControl("td"); tr.Attributes.Add("class", "filas"); i = new HtmlGenericControl("i"); HtmlGenericControl tdhDN1 = new HtmlGenericControl("td"); HtmlGenericControl tdhDN2 = new HtmlGenericControl("td"); HtmlGenericControl tdFORMULA = new HtmlGenericControl("td"); tdhDN1.InnerHtml = item.LEVEL; tdhDN1.Attributes.Add("style", "display:none;"); tdhDN2.InnerHtml = item.ID; tdhDN2.Attributes.Add("style", "display:none;"); if (item.LEVEL == "1") { tdFORMULA.InnerHtml = ""; tdFORMULA.Attributes.Add("style", "display:none;"); i.Attributes.Add("class", "fas fa-align-right"); td.InnerHtml = espacio + item.NOMBRE.ToUpper(); td.Attributes.Add("class", "font-weight-bold"); } else { double formula; BomModel model = new BomModel(); string[] UnMed = model.GetInfoItem(item.FROM_TAB, item.ID_FROM_TAB); string opcionaL = ""; if (item.OPCIONAL) { opcionaL = "(Opcional) "; } if (double.TryParse(item.FORMULA, out formula)) { tdFORMULA.InnerHtml = opcionaL + espacio + formula + " " + UnMed[1] + " ; Costo: " + item.COSTO.ToString("C0", CultureInfo.CurrentCulture) + "/" + UnMed[0]; } else { tdFORMULA.InnerHtml = opcionaL + espacio + " Formula:" + item.FORMULA + " " + UnMed[1] + " ; Costo: " + item.COSTO.ToString("C0", CultureInfo.CurrentCulture) + "/" + UnMed[0]; } tdFORMULA.Attributes.Add("class", "text-dark"); i.Attributes.Add("class", "fas fa-arrow-up ml-3"); td.InnerHtml = espacio + espacio + espacio + item.NOMBRE; } td0.Controls.Add(i); tr.Controls.Add(td0); tr.Controls.Add(td); tr.Controls.Add(tdFORMULA); tr.Controls.Add(tdhDN1); tr.Controls.Add(tdhDN2); table.Controls.Add(tr); } divtabla.Controls.Clear(); divtabla.Controls.Add(table); }
protected void Page_Load(object sender, EventArgs e) { string ID = Request.QueryString["ID"]; TOKEN = Request.QueryString["TOKEN"]; if (!IsPostBack) { if (!string.IsNullOrEmpty(ID) && !string.IsNullOrEmpty(TOKEN)) { Modelos Model = new Modelos(); bool IsModel = Model.IsModel(ID, true, TOKEN); HdnIdModel.Value = ID; if (IsModel) { //Llena el dropdown de las formulas predeterminadas FillDDlFormulasPred(DDLFormulasPred); //fill DDL piezas y copmponentes FillDDLFirstPieceOrComp(); Imagen.ImageUrl = Model._modelo.IMAGE; TxtNombre.Text = Model._modelo.NOMBRE; LblCreateDate.Text = Model._modelo.F_Created.ToLongDateString(); LblEditDate.Text = Model._modelo.F_Update.ToLongDateString(); TxtDescripcion.Text = Model._modelo.DESCRIPCION; FillDDlFamilia(); BomModel bomModel = new BomModel(ID, true); FILLtablaBOM(bomModel.Lista); //Fill DDr canales no asignaDOS y tabla CanalDis cdis = new CanalDis(); FillTablaCanales(cdis.GetCanalesAsign(ID, true)); FillDDL(DDlSelectChanel, "CHANNAME", "ID", "Seleccionar", cdis.GetCanalesNOAsign(ID, true)); // Habilita el ddl de la familia if (string.IsNullOrEmpty(Model._modelo.Familia)) { DDLFamilia.Enabled = true; DDLCategoria.Enabled = false; LinkBtnFamCat.Text = "Actualizar"; } else { DDLFamilia.SelectedValue = Model._modelo.IdFamilia; } //habilita el ddl de categoria if (string.IsNullOrEmpty(Model._modelo.Categoria)) { DDLCategoria.Enabled = false; LinkBtnFamCat.Text = "Actualizar"; GetListVariables getList = new GetListVariables(6); FillDDlCategoria(getList.Listavariables); } else { GetListVariables Get = new GetListVariables(); Get.GetListModelCategory(Model._modelo.IdFamilia); FillDDlCategoria(Get.ListCompCategory); DDLCategoria.SelectedValue = Model._modelo.ID_PASIGFAMCAT.ToString(); } } else { Response.Redirect(Error404.Redireccion(MasterPageFile, "El componente no fue encontrado")); } } else { Response.Redirect(Error404.Redireccion(MasterPageFile, "Hubo un error al tratar de buscar el componente, intentelo nuevamente")); } } }
private void LoadData(BomModel model, KontoContext _context = null) { this.ResetPage(); this.PrimaryKey = model.Id; divLookUpEdit.EditValue = model.DivisionId; voucherLookup1.SelectedValue = model.VoucherId; Remark.Text = model.Remark; targetQtyButtonEdit.Text = Convert.ToString(model.TargetQty); ordertypeLookUpEdit1.EditValue = model.Description; voucherDateEdit.EditValue = KontoUtils.IToD(model.VoucherDate); voucherNoTextEdit.Text = model.VoucherNo; QualityLookup.Properties.SelectedValue = model.ProductId; //QualityLookup.Properties.DisplayText = using (var _db = new KontoContext()) { var prd = _db.Products.Find(model.ProductId); if (prd != null) { QualityLookup.EditValue = prd.ProductName; QualityLookup.Properties.DisplayText = prd.ProductName; } PFormula = (from b in _db.Boms join bt in _db.BOMTranses on b.Id equals bt.BOMId join q in _db.Products on bt.ProductId equals q.Id join cate in _db.CategroyModels on bt.UomId equals cate.Id into j1 from s1 in j1.DefaultIfEmpty() join col in _db.ColorModels on bt.ColorId equals col.Id into j2 from s2 in j2.DefaultIfEmpty() where b.Id == model.Id && bt.TransType == 1 orderby b.ProductId select new BomTransDto { Amount = bt.Amount, BaseQty = bt.BaseQty, BOMId = bt.BOMId, Id = bt.Id, OrderTransId = bt.OrderTransId, RefQty = bt.RefQty, RequireQty = bt.RequireQty, ShortQty = bt.ShortQty, Stock = bt.Stock, UomId = bt.UomId, ProductId = bt.ProductId, ProductName = q.ProductName, ColorId = bt.ColorId, ColorName = s2.ColorName, Rate = bt.Rate }).ToList(); gridControl1.DataSource = PFormula; bomOrderDtos = (from b in _db.Boms join bt in _db.BOMTranses on b.Id equals bt.BOMId join q in _db.Products on bt.ProductId equals q.Id join emp in _db.Emps on bt.UomId equals emp.Id into e1 from e2 in e1.DefaultIfEmpty() join ot in _db.OrdTranses on bt.OrderTransId equals ot.Id into o1 from o2 in o1.DefaultIfEmpty() join o in _db.Ords on o2.OrdId equals o.Id join a in _db.Accs on o.AccId equals a.Id into a1 from a2 in a1.DefaultIfEmpty() where b.Id == model.Id orderby b.ProductId select new BomOrderDto { Id = bt.Id, ProductId = bt.ProductId, ProductName = q.ProductName, OrderDate = o.VoucherDate, OrderNo = o.RefNo, EmpId = bt.UomId, EmployeeName = e2.EmpName, Qty = bt.BaseQty, AccId = bt.AccId, AccName = a2.AccName, RefNo = o.RefNo, Balance = bt.RequireQty, StockQty = bt.Stock, Remark1 = bt.Remark1, Remark2 = bt.Remark2, BomId = b.Id, OrderTransId = bt.OrderTransId }).ToList(); gridControl2.DataSource = bomOrderDtos; } }
/// <summary> /// 物料清单插入 /// </summary> /// <param name="model"></param> /// <returns></returns> public static bool InsertBom(BomModel model, string loginUserID, out string ID) { UserInfoUtil userInfo = (UserInfoUtil)SessionUtil.Session["UserInfo"]; ArrayList listADD = new ArrayList(); bool result = false; //#region 传参 try { #region BOM添加SQL语句 StringBuilder sqlBom = new StringBuilder(); sqlBom.AppendLine("INSERT INTO officedba. Bom"); sqlBom.AppendLine("(CompanyCD,BomNo,Subject,ParentNo,[Type],Verson,RouteID,Creator,CreateDate,Remark,ProductID,UnitID,"); if (userInfo.IsMoreUnit) { sqlBom.AppendLine("UsedUnitID,ExRate,"); } sqlBom.AppendLine("UsedStatus,ModifiedDate,ModifiedUserID)"); sqlBom.AppendLine("VALUES "); sqlBom.AppendLine(" (@CompanyCD"); sqlBom.AppendLine(" ,@BomNo"); sqlBom.AppendLine(" ,@Subject"); sqlBom.AppendLine(" ,@ParentNo"); sqlBom.AppendLine(" ,@Type"); sqlBom.AppendLine(" ,@Verson"); sqlBom.AppendLine(" ,@RouteID"); sqlBom.AppendLine(" ,@Creator"); sqlBom.AppendLine(" ,@CreateDate"); sqlBom.AppendLine(" ,@Remark"); sqlBom.AppendLine(" ,@ProductID"); sqlBom.AppendLine(" ,@UnitID"); if (userInfo.IsMoreUnit) { sqlBom.AppendLine(" ,@UsedUnitID"); sqlBom.AppendLine(" ,@ExRate"); } sqlBom.AppendLine(" ,@UsedStatus"); sqlBom.AppendLine(" ,getdate()"); sqlBom.AppendLine(" ,'"+ loginUserID + "') "); sqlBom.AppendLine("set @ID=@@IDENTITY"); SqlCommand comm = new SqlCommand(); comm.CommandText = sqlBom.ToString(); comm.Parameters.Add(SqlHelper.GetParameter("@CompanyCD", model.CompanyCD)); comm.Parameters.Add(SqlHelper.GetParameter("@BomNo", model.BomNo)); comm.Parameters.Add(SqlHelper.GetParameter("@Subject", model.Subject)); comm.Parameters.Add(SqlHelper.GetParameter("@ParentNo", model.ParentNo)); comm.Parameters.Add(SqlHelper.GetParameter("@Type", model.Type)); comm.Parameters.Add(SqlHelper.GetParameter("@Verson", model.Verson)); comm.Parameters.Add(SqlHelper.GetParameter("@RouteID", model.RouteID)); comm.Parameters.Add(SqlHelper.GetParameter("@Creator", model.Creator)); comm.Parameters.Add(SqlHelper.GetParameter("@CreateDate", model.CreateDate)); comm.Parameters.Add(SqlHelper.GetParameter("@Remark", model.Remark)); comm.Parameters.Add(SqlHelper.GetParameter("@ProductID", model.ProductID)); comm.Parameters.Add(SqlHelper.GetParameter("@UnitID", model.UnitID)); if (userInfo.IsMoreUnit) { comm.Parameters.Add(SqlHelper.GetParameter("@UsedUnitID", model.UsedUnitID)); comm.Parameters.Add(SqlHelper.GetParameter("@ExRate", model.ExRate)); } comm.Parameters.Add(SqlHelper.GetParameter("@UsedStatus", model.UsedStatus)); comm.Parameters.Add(SqlHelper.GetOutputParameter("@ID", SqlDbType.Int)); listADD.Add(comm); #endregion #region 子件信息添加SQL语句 if (!String.IsNullOrEmpty(model.DetProductID) && !String.IsNullOrEmpty(model.DetProductType) && !String.IsNullOrEmpty(model.DetUnitID)) { string[] dtProductID = model.DetProductID.Split(','); string[] dtProductType = model.DetProductType.Split(','); string[] dtUnitID = model.DetUnitID.Split(','); string[] dtQuota = model.DetQuota.Split(','); string[] dtRateLoss = model.DetRateLoss.Split(','); string[] dtIsMain = model.DetIsMain.Split(','); string[] dtUsedStatus = model.DetUsedStatus.Split(','); string[] dtSourceType = model.DetSourceType.Split(','); string[] dtRemark = model.DetRemark.Split(','); //页面上这些字段都是必填,数组的长度必须是相同的 if (dtProductID.Length >= 1) { for (int i = 0; i < dtProductID.Length; i++) { System.Text.StringBuilder cmdsql = new System.Text.StringBuilder(); cmdsql.AppendLine("insert into officedba.BomDetail"); cmdsql.AppendLine("(CompanyCD,"); cmdsql.AppendLine("BomNo,"); cmdsql.AppendLine("ProductID,"); cmdsql.AppendLine("ProductType,"); cmdsql.AppendLine("UnitID,"); if (dtQuota[i].ToString().Length > 0) { if (!string.IsNullOrEmpty(dtQuota[i].ToString().Trim())) { cmdsql.AppendLine("Quota,"); } } if (dtRateLoss[i].ToString().Length > 0) { if (!string.IsNullOrEmpty(dtRateLoss[i].ToString().Trim())) { cmdsql.AppendLine("RateLoss,"); } } cmdsql.AppendLine("IsMain,"); cmdsql.AppendLine("UsedStatus,"); if (dtRemark[i].ToString().Length > 0) { if (!string.IsNullOrEmpty(dtRemark[i].ToString().Trim())) { cmdsql.AppendLine("Remark,"); } } cmdsql.AppendLine("SourceType)"); cmdsql.AppendLine(" Values(@CompanyCD"); cmdsql.AppendLine(" ,@BomNo"); cmdsql.AppendLine(" ,@ProductID"); cmdsql.AppendLine(" ,@ProductType"); cmdsql.AppendLine(" ,@UnitID"); if (dtQuota[i].ToString().Length > 0) { if (!string.IsNullOrEmpty(dtQuota[i].ToString().Trim())) { cmdsql.AppendLine(" ,@Quota"); } } if (dtRateLoss[i].ToString().Length > 0) { if (!string.IsNullOrEmpty(dtRateLoss[i].ToString().Trim())) { cmdsql.AppendLine(" ,@RateLoss"); } } cmdsql.AppendLine(" ,@IsMain"); cmdsql.AppendLine(" ,@UsedStatus"); if (dtRemark[i].ToString().Length > 0) { if (!string.IsNullOrEmpty(dtRemark[i].ToString().Trim())) { cmdsql.AppendLine(" ,@Remark"); } } cmdsql.AppendLine(" ,@SourceType)"); SqlCommand comms = new SqlCommand(); comms.CommandText = cmdsql.ToString(); comms.Parameters.Add(SqlHelper.GetParameter("@CompanyCD", model.CompanyCD)); comms.Parameters.Add(SqlHelper.GetParameter("@BomNo", model.BomNo)); comms.Parameters.Add(SqlHelper.GetParameter("@ProductID", dtProductID[i].ToString())); comms.Parameters.Add(SqlHelper.GetParameter("@ProductType", dtProductType[i].ToString())); comms.Parameters.Add(SqlHelper.GetParameter("@UnitID", dtUnitID[i].ToString())); if (dtQuota[i].ToString().Length > 0) { if (!string.IsNullOrEmpty(dtQuota[i].ToString().Trim())) { comms.Parameters.Add(SqlHelper.GetParameter("@Quota", dtQuota[i].ToString())); } } if (dtRateLoss[i].ToString().Length > 0) { if (!string.IsNullOrEmpty(dtRateLoss[i].ToString().Trim())) { comms.Parameters.Add(SqlHelper.GetParameter("@RateLoss", dtRateLoss[i].ToString())); } } comms.Parameters.Add(SqlHelper.GetParameter("@IsMain", dtIsMain[i].ToString())); comms.Parameters.Add(SqlHelper.GetParameter("@UsedStatus", dtUsedStatus[i].ToString())); if (dtRemark[i].ToString().Length > 0) { if (!string.IsNullOrEmpty(dtRemark[i].ToString().Trim())) { comms.Parameters.Add(SqlHelper.GetParameter("@Remark", dtRemark[i].ToString())); } } comms.Parameters.Add(SqlHelper.GetParameter("@SourceType", dtSourceType[i].ToString())); listADD.Add(comms); } } } #endregion if (SqlHelper.ExecuteTransWithArrayList(listADD)) { ID = comm.Parameters["@ID"].Value.ToString(); result = true; } else { ID = "0"; } return(result); } catch (Exception ex) { throw ex; } }
/// <summary> /// 修改BOM和子件信息 /// </summary> /// <param name="model"></param> /// <returns></returns> public static bool UpdateBomInfo(BomModel model, string loginUserID, string UpdateID) { UserInfoUtil userInfo = (UserInfoUtil)SessionUtil.Session["UserInfo"]; //获取登陆用户ID ArrayList listADD = new ArrayList(); if (model.ID <= 0) { return(false); } #region BOM修改SQL语句 StringBuilder sqlBom = new StringBuilder(); sqlBom.AppendLine("update officedba.Bom set BomNo=@BomNo"); sqlBom.AppendLine(" ,Subject=@Subject"); sqlBom.AppendLine(" ,ParentNo=@ParentNo"); sqlBom.AppendLine(" ,Type=@Type"); sqlBom.AppendLine(" ,Verson=@Verson"); sqlBom.AppendLine(" ,RouteID=@RouteID"); sqlBom.AppendLine(" ,Remark=@Remark"); sqlBom.AppendLine(" ,ProductID=@ProductID"); sqlBom.AppendLine(" ,UnitID=@UnitID"); if (userInfo.IsMoreUnit) { sqlBom.AppendLine(" ,UsedUnitID=@UsedUnitID"); sqlBom.AppendLine(" ,ExRate=@ExRate"); } sqlBom.AppendLine(" ,UsedStatus=@UsedStatus"); sqlBom.AppendLine(" ,ModifiedDate=getdate()"); sqlBom.AppendLine(" ,ModifiedUserID='" + loginUserID + "'"); sqlBom.AppendLine("where CompanyCD=@CompanyCD"); sqlBom.AppendLine("and ID=@ID"); SqlCommand comm = new SqlCommand(); comm.CommandText = sqlBom.ToString(); comm.Parameters.Add(SqlHelper.GetParameter("@CompanyCD", model.CompanyCD)); comm.Parameters.Add(SqlHelper.GetParameter("@ID", model.ID)); comm.Parameters.Add(SqlHelper.GetParameter("@BomNo", model.BomNo)); comm.Parameters.Add(SqlHelper.GetParameter("@Subject", model.Subject)); comm.Parameters.Add(SqlHelper.GetParameter("@ParentNo", model.ParentNo)); comm.Parameters.Add(SqlHelper.GetParameter("@Type", model.Type)); comm.Parameters.Add(SqlHelper.GetParameter("@Verson", model.Verson)); comm.Parameters.Add(SqlHelper.GetParameter("@RouteID", model.RouteID)); comm.Parameters.Add(SqlHelper.GetParameter("@Remark", model.Remark)); comm.Parameters.Add(SqlHelper.GetParameter("@ProductID", model.ProductID)); comm.Parameters.Add(SqlHelper.GetParameter("@UnitID", model.UnitID)); if (userInfo.IsMoreUnit) { comm.Parameters.Add(SqlHelper.GetParameter("@UsedUnitID", model.UsedUnitID)); comm.Parameters.Add(SqlHelper.GetParameter("@ExRate", model.ExRate)); } comm.Parameters.Add(SqlHelper.GetParameter("@UsedStatus", model.UsedStatus)); listADD.Add(comm); #endregion #region Bom子件信息更新语句 //先删除不在BOM子件中的 //更新子件中的ID //添加其它子件 #region 先删除不在BOM子件中的 if (!string.IsNullOrEmpty(UpdateID)) { StringBuilder sqlDel = new StringBuilder(); sqlDel.AppendLine("delete from officedba.BomDetail where CompanyCD=@CompanyCD and BomNo=@BomNo and ID not in(" + UpdateID + ")"); SqlCommand commDel = new SqlCommand(); commDel.CommandText = sqlDel.ToString(); commDel.Parameters.Add(SqlHelper.GetParameter("@CompanyCD", model.CompanyCD)); commDel.Parameters.Add(SqlHelper.GetParameter("@BomNo", model.BomNo)); listADD.Add(commDel); } #endregion #region 添加或更新操作 string[] updateID = UpdateID.Split(','); if (!string.IsNullOrEmpty(UpdateID) && updateID.Length > 0) { string[] subProductID = model.DetProductID.Split(','); string[] subProductType = model.DetProductType.Split(','); string[] subUnitID = model.DetUnitID.Split(','); string[] subQuota = model.DetQuota.Split(','); string[] subRateLoss = model.DetRateLoss.Split(','); string[] subIsMain = model.DetIsMain.Split(','); string[] subUsedStatus = model.DetUsedStatus.Split(','); string[] subSourceType = model.DetSourceType.Split(','); string[] subRemark = model.DetRemark.Split(','); for (int i = 0; i < updateID.Length; i++) { int intUpdateID = int.Parse(updateID[i].ToString()); if (intUpdateID > 0) { #region 更新子件中的ID StringBuilder sqlEdit = new StringBuilder(); sqlEdit.AppendLine("Update officedba.BomDetail"); sqlEdit.AppendLine("Set ProductID=@ProductID,"); sqlEdit.AppendLine(" ProductType=@ProductType,"); sqlEdit.AppendLine(" UnitID=@UnitID,"); if (subQuota[i].ToString().Length > 0) { if (!string.IsNullOrEmpty(subQuota[i].ToString().Trim())) { sqlEdit.AppendLine(" Quota=@Quota,"); } else { sqlEdit.AppendLine(" Quota=null,"); } } else { sqlEdit.AppendLine(" Quota=null,"); } if (subRateLoss[i].ToString().Length > 0) { if (!string.IsNullOrEmpty(subRateLoss[i].ToString().Trim())) { sqlEdit.AppendLine(" RateLoss=@RateLoss,"); } else { sqlEdit.AppendLine(" RateLoss=null,"); } } else { sqlEdit.AppendLine(" RateLoss=null,"); } sqlEdit.AppendLine(" IsMain=@IsMain,"); sqlEdit.AppendLine(" UsedStatus=@UsedStatus,"); if (subRemark[i].ToString().Length > 0) { if (!string.IsNullOrEmpty(subRemark[i].ToString().Trim())) { sqlEdit.AppendLine(" Remark=@Remark,"); } else { sqlEdit.AppendLine(" Remark=null,"); } } else { sqlEdit.AppendLine(" Remark=null,"); } sqlEdit.AppendLine(" SourceType=@SourceType"); sqlEdit.AppendLine("where CompanyCD=@CompanyCD"); sqlEdit.AppendLine("and ID=@ID"); SqlCommand commEdit = new SqlCommand(); commEdit.CommandText = sqlEdit.ToString(); commEdit.Parameters.Add(SqlHelper.GetParameter("@ProductID", subProductID[i].ToString())); commEdit.Parameters.Add(SqlHelper.GetParameter("@ProductType", subProductType[i].ToString())); commEdit.Parameters.Add(SqlHelper.GetParameter("@UnitID", subUnitID[i].ToString())); if (subQuota[i].ToString().Length > 0) { if (!string.IsNullOrEmpty(subQuota[i].ToString().Trim())) { commEdit.Parameters.Add(SqlHelper.GetParameter("@Quota", subQuota[i].ToString())); } } if (subRateLoss[i].ToString().Length > 0) { if (!string.IsNullOrEmpty(subRateLoss[i].ToString().Trim())) { commEdit.Parameters.Add(SqlHelper.GetParameter("@RateLoss", subRateLoss[i].ToString())); } } commEdit.Parameters.Add(SqlHelper.GetParameter("@IsMain", subIsMain[i].ToString())); commEdit.Parameters.Add(SqlHelper.GetParameter("@UsedStatus", subUsedStatus[i].ToString())); commEdit.Parameters.Add(SqlHelper.GetParameter("@SourceType", subSourceType[i].ToString())); if (subRemark[i].ToString().Length > 0) { if (!string.IsNullOrEmpty(subRemark[i].ToString().Trim())) { commEdit.Parameters.Add(SqlHelper.GetParameter("@Remark", subRemark[i].ToString())); } } commEdit.Parameters.Add(SqlHelper.GetParameter("@CompanyCD", model.CompanyCD)); commEdit.Parameters.Add(SqlHelper.GetParameter("@ID", updateID[i].ToString())); listADD.Add(commEdit); #endregion } else { #region 添加子件中的ID StringBuilder sqlIn = new StringBuilder(); sqlIn.AppendLine("insert into officedba.BomDetail("); sqlIn.AppendLine(" CompanyCD,"); sqlIn.AppendLine(" BomNo,"); sqlIn.AppendLine(" ProductID,"); sqlIn.AppendLine(" ProductType,"); sqlIn.AppendLine(" UnitID,"); if (subQuota[i].ToString().Length > 0) { if (!string.IsNullOrEmpty(subQuota[i].ToString().Trim())) { sqlIn.AppendLine(" Quota,"); } } if (subRateLoss[i].ToString().Length > 0) { if (!string.IsNullOrEmpty(subRateLoss[i].ToString().Trim())) { sqlIn.AppendLine(" RateLoss,"); } } sqlIn.AppendLine(" IsMain,"); sqlIn.AppendLine(" UsedStatus,"); sqlIn.AppendLine(" SourceType,"); sqlIn.AppendLine(" Remark)"); sqlIn.AppendLine("values( @CompanyCD,"); sqlIn.AppendLine(" @BomNo,"); sqlIn.AppendLine(" @ProductID,"); sqlIn.AppendLine(" @ProductType,"); sqlIn.AppendLine(" @UnitID,"); if (subQuota[i].ToString().Length > 0) { if (!string.IsNullOrEmpty(subQuota[i].ToString().Trim())) { sqlIn.AppendLine(" @Quota,"); } } if (subRateLoss[i].ToString().Length > 0) { if (!string.IsNullOrEmpty(subRateLoss[i].ToString().Trim())) { sqlIn.AppendLine(" @RateLoss,"); } } sqlIn.AppendLine(" @IsMain,"); sqlIn.AppendLine(" @UsedStatus,"); sqlIn.AppendLine(" @SourceType,"); sqlIn.AppendLine(" @Remark)"); SqlCommand commIn = new SqlCommand(); commIn.CommandText = sqlIn.ToString(); commIn.Parameters.Add(SqlHelper.GetParameter("@CompanyCD", model.CompanyCD)); commIn.Parameters.Add(SqlHelper.GetParameter("@BomNo", model.BomNo)); commIn.Parameters.Add(SqlHelper.GetParameter("@ProductID", subProductID[i].ToString())); commIn.Parameters.Add(SqlHelper.GetParameter("@ProductType", subProductType[i].ToString())); commIn.Parameters.Add(SqlHelper.GetParameter("@UnitID", subUnitID[i].ToString())); if (subQuota[i].ToString().Length > 0) { if (!string.IsNullOrEmpty(subQuota[i].ToString().Trim())) { commIn.Parameters.Add(SqlHelper.GetParameter("@Quota", subQuota[i].ToString())); } } if (subRateLoss[i].ToString().Length > 0) { if (!string.IsNullOrEmpty(subRateLoss[i].ToString().Trim())) { commIn.Parameters.Add(SqlHelper.GetParameter("@RateLoss", subRateLoss[i].ToString())); } } commIn.Parameters.Add(SqlHelper.GetParameter("@IsMain", subIsMain[i].ToString())); commIn.Parameters.Add(SqlHelper.GetParameter("@UsedStatus", subUsedStatus[i].ToString())); commIn.Parameters.Add(SqlHelper.GetParameter("@SourceType", subSourceType[i].ToString())); commIn.Parameters.Add(SqlHelper.GetParameter("@Remark", subRemark[i].ToString())); listADD.Add(commIn); #endregion } } } #endregion #endregion return(SqlHelper.ExecuteTransWithArrayList(listADD)); }
private void SaveDataAsync(bool newmode) { int ID; var bm = new BomModel(); List <BOMTransModel> btmlist = new List <BOMTransModel>(); bool IsSaved = false; if (!ValidateData()) { return; } BomModel bom = new BomModel(); using (var db = new KontoContext()) { using (var _tran = db.Database.BeginTransaction()) { try { if (this.PrimaryKey != 0) { bm = db.Boms.Find(this.PrimaryKey); } bm.VoucherDate = Convert.ToInt32(voucherDateEdit.DateTime.ToString("yyyyMMdd")); bm.IsActive = true; bm.DivisionId = divLookUpEdit.EditValue != null?Convert.ToInt32(divLookUpEdit.EditValue) : 0; bm.ProductId = QualityLookup.Properties.SelectedValue != null?Convert.ToInt32(QualityLookup.Properties.SelectedValue) : 0; bm.VoucherId = voucherLookup1.SelectedValue != null?Convert.ToInt32(voucherLookup1.SelectedValue) : 0; bm.VoucherNo = voucherNoTextEdit.Text != null?Convert.ToString(voucherNoTextEdit.Text) : ""; bm.Remark = remarkTextEdit.Text != string.Empty ? remarkTextEdit.Text : ""; bm.IsDeleted = false; bm.IsActive = true; bm.Description = Convert.ToString(ordertypeLookUpEdit1.EditValue); bm.TargetQty = Convert.ToDecimal(targetQtyButtonEdit.EditValue); if (bm.Id == 0) { bm.CompId = KontoGlobals.CompanyId; bm.YearId = KontoGlobals.YearId; bm.BranchId = KontoGlobals.BranchId; db.Boms.Add(bm); db.SaveChanges(); } var _bomtarns = new List <BOMTransModel>(); foreach (var item in PFormula) { var btm = new BOMTransModel(); if (item.Id > 0) { btm = db.BOMTranses.Find(item.Id); } btm.BOMId = bm.Id; btm.UomId = item.UomId; btm.ProductId = item.ProductId; btm.ColorId = item.ColorId; btm.BaseQty = item.BaseQty; btm.RequireQty = item.RequireQty; btm.Stock = item.Stock; btm.Remark1 = item.Remark1; btm.Rate = item.Rate; btm.ShortQty = item.ShortQty; btm.Amount = item.Amount; btm.TransType = 1; btm.IsDeleted = false; btm.IsActive = true; if (btm.Id == 0) { db.BOMTranses.Add(btm); } _bomtarns.Add(btm); } foreach (var item in bomOrderDtos) { var btm = new BOMTransModel(); if (item.Id > 0) { btm = db.BOMTranses.Find(item.Id); } btm.ProductId = item.ProductId; btm.UomId = item.EmpId; btm.OrderTransId = item.OrderTransId; btm.AccId = item.AccId; btm.BaseQty = item.Qty; btm.Stock = item.StockQty; btm.ShortQty = item.Balance; btm.Remark1 = item.Remark1; btm.Remark2 = item.Remark2; btm.TransType = 2; btm.IsDeleted = false; btm.IsActive = true; if (btm.Id == 0) { btm.BOMId = bm.Id; db.BOMTranses.Add(btm); } } db.SaveChanges(); var stk = db.StockTranses.Where(k => k.MasterRefId == bm.RowId).ToList(); if (stk != null) { db.StockTranses.RemoveRange(stk); } // for stock effect from bom comsumuption & productoin if (BomPara.Auto_Consumption_And_Production) { var pdorg = db.Products.Find(bm.ProductId); if (pdorg.StockReq == "Yes") { StockEffect.Stock_Bom_Prod_Entry(bm, db); } foreach (var item in _bomtarns) { var pd = db.Products.Find(item.ProductId); if (pd.StockReq == "No") { continue; } StockEffect.Stock_Bom_Issue_Entry(bm, db, item); } } db.SaveChanges(); var repid = db.Barcodes.DefaultIfEmpty().Max(x => x == null ? 0 : x.ReportId) + 1; bool IsBarcodeGenerated = false; if (this.PrimaryKey == 0 && MessageBox.Show("Generate Barcode. for Cutting.?", "Barcode", MessageBoxButtons.YesNo) == DialogResult.Yes) { var bcs = bomOrderDtos.Where(x => x.Balance > 0).ToList(); foreach (var item in bcs) { var bc = new BarcodeModel() { CompId = KontoGlobals.CompanyId, EmpId = item.EmpId, IsActive = true, IsDeleted = false, OrderTransId = item.OrderTransId, PcsNo = 1, AccId = item.AccId, Qty = Convert.ToInt32(item.Balance), ProductId = item.ProductId, RefId = bm.Id, ReportId = repid, IsLayer = true }; bc.BarcodeNo = GetNextBarcodeNo(db); //String.Format("{0:d9}", (DateTime.Now.Ticks / 10) % 1000000000); // KontoUtils.GetUniqueKey(8); db.Barcodes.Add(bc); } if (bcs.Count == 0) { var bc = new BarcodeModel() { CompId = KontoGlobals.CompanyId, IsActive = true, IsDeleted = false, PcsNo = 1, EmpId = 0, Qty = Convert.ToInt32(targetQtyButtonEdit.EditValue), ProductId = Convert.ToInt32(QualityLookup.Properties.SelectedValue), RefId = bm.Id, ReportId = repid, IsLayer = true }; bc.BarcodeNo = GetNextBarcodeNo(db); //String.Format("{0:d9}", (DateTime.Now.Ticks / 10) % 1000000000); //KontoUtils.GetUniqueKey(8); db.Barcodes.Add(bc); } db.SaveChanges(); IsBarcodeGenerated = true; } _tran.Commit(); MessageBoxAdv.Show("Record Save Successfully.."); if (this.PrimaryKey == 0 && IsBarcodeGenerated && MessageBox.Show("Print Barcode ... ?", "Print !", MessageBoxButtons.YesNo) == DialogResult.Yes) { PrintBarcode(repid); } this.ResetPage(); this.NewRec(); } catch (Exception ex) { _tran.Rollback(); Log.Error(ex, "BOM Save"); MessageBoxAdv.Show(this, "Error While Save !!", "Exception ", ex.ToString()); } if (this.OpenForLookup) { this.Close(); this.Dispose(); } } } }