Beispiel #1
0
        /// <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));
        }
Beispiel #2
0
        /// <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);
            }
        }
Beispiel #3
0
        /// <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));
        }
Beispiel #4
0
    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);
        }
    }
Beispiel #5
0
        /// <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));
        }
Beispiel #6
0
        /// <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));
        }
Beispiel #7
0
 /// <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;
     }
 }
Beispiel #8
0
        /// <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));
        }
Beispiel #9
0
 /// <summary>
 /// 设置是否合法
 /// </summary>
 /// <param name="model"></param>
 /// <returns></returns>
 public static int CountInvalid(BomModel model)
 {
     try
     {
         return(BomDBHelper.CountInvalid(model));
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Beispiel #10
0
 /// <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;
     }
 }
Beispiel #11
0
 /// <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;
     }
 }
Beispiel #12
0
 /// <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;
     }
 }
Beispiel #13
0
    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 = "";
        }
    }
Beispiel #14
0
        /*
         * 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));
            }
        }
Beispiel #15
0
    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);
        }
Beispiel #17
0
        /// <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));
        }
Beispiel #18
0
 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;
     }
 }
Beispiel #19
0
        /// <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));
            }
        }
Beispiel #20
0
    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);
        }
    }
Beispiel #21
0
    protected void FILLtablaBOM(List <BomModel.Bom> boms)
    {
        string espacio = "&nbsp;";

        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);
    }
Beispiel #22
0
    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"));
            }
        }
    }
Beispiel #23
0
        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;
            }
        }
Beispiel #24
0
        /// <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;
            }
        }
Beispiel #25
0
        /// <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));
        }
Beispiel #26
0
        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();
                    }
                }
            }
        }