public static int InsertWarehouseStockHistory(IDbContext context, mms_warehouseStockHistory history)
        {
            var userName = MmsHelper.GetUserName();

            history.CreateDate   = DateTime.Now;
            history.CreatePerson = userName;
            history.UpdateDate   = DateTime.Now;
            history.UpdatePerson = userName;

            var stock = context.Select <mms_warehouseStock>("Num,UnitPrice")
                        .From("mms_warehouseStock")
                        .Where("WarehouseCode=@0 and MaterialCode=@1")
                        .Parameters(history.WarehouseCode, history.MaterialCode)
                        .QuerySingle();

            if (stock != null)
            {
                history.StockNum       = stock.Num;
                history.StockUnitPrice = stock.UnitPrice;
                history.StockMoney     = stock.Money;
            }

            var result = context.Insert <mms_warehouseStockHistory>("mms_warehouseStockHistory", history).AutoMap(x => x.Id).Execute();

            return(result);
        }
Example #2
0
        public void AppendLoginHistory(JObject request)
        {
            var lanIP    = ZHttp.ClientIP;
            var hostName = ZHttp.IsLanIP(lanIP) ? ZHttp.ClientHostName : string.Empty; //如果是内网就获取,否则出错获取不到,且影响效率

            var UserCode = request.Value <string>("usercode");
            var UserName = MmsHelper.GetUserName();
            var IP       = request.Value <string>("ip");
            var City     = request.Value <string>("city");

            if (IP != lanIP)
            {
                IP = string.Format("{0}/{1}", IP, lanIP).Trim('/').Replace("::1", "localhost");
            }

            var item = new sys_loginHistory();

            item.UserCode  = UserCode;
            item.UserName  = UserName;
            item.HostName  = hostName;
            item.HostIP    = IP;
            item.LoginCity = City;
            item.LoginDate = DateTime.Now;

            db.Insert <sys_loginHistory>("sys_loginHistory", item).AutoMap(x => x.ID).Execute();
        }
Example #3
0
        protected override void OnAfterHandleExcel(ref DataTable dtSheet)
        {
            var service = new SYS_BN_UserService();

            dtSheet.Columns.Add("CreatePerson", typeof(string));
            dtSheet.Columns.Add("CreateTime", typeof(DateTime));
            dtSheet.Columns.Add("ModifyPerson", typeof(string));
            dtSheet.Columns.Add("ModifyTime", typeof(DateTime));
            dtSheet.Columns.Add("UserBarcode", typeof(string));

            string maxBarCode = db.Sql(@"SELECT ISNULL(MAX(UserBarcode),'USER00000000') FROM dbo.SYS_BN_User WHERE UserBarcode IS NOT NULL AND LTRIM(RTRIM(UserBarcode)) <> ''").QuerySingle <string>();
            long   maxNum     = Convert.ToInt64(maxBarCode.Substring(4));

            var userCodeAndBarcodeList = db.Sql(@"SELECT UserCode,UserBarcode FROM dbo.SYS_BN_User WHERE UserBarcode IS NOT NULL AND LTRIM(RTRIM(UserBarcode)) <> ''").QueryMany <dynamic>();
            Dictionary <string, string> dicUserCodeAndBarcode = new Dictionary <string, string>();

            userCodeAndBarcodeList.ForEach(item => { dicUserCodeAndBarcode.Add(item.UserCode, item.UserBarcode); });

            var userName = MmsHelper.GetUserName();
            var newDT    = DateTime.Now;

            foreach (DataRow item in dtSheet.Rows)
            {
                string dName = item["DepartmentName"].ToString();
                string sql   = string.Format(@"select DepartmentCode from SYS_BN_Department where DepartmentName='{0}'", dName);
                string hID   = db.Sql(sql).QuerySingle <string>();
                item["DepartmentCode"] = hID;

                string isenable = item["IsEnable"].ToString();
                if (isenable == "否")
                {
                    item["IsEnable"] = 0;
                }
                else
                {
                    item["IsEnable"] = 1;
                }

                var UserCode = item["UserCode"].ToString();

                item["CreatePerson"] = userName;
                item["CreateTime"]   = newDT;
                item["ModifyPerson"] = userName;
                item["ModifyTime"]   = newDT;

                if (dicUserCodeAndBarcode.ContainsKey(UserCode))
                {
                    item["UserBarcode"] = dicUserCodeAndBarcode[UserCode];
                }
                else
                {
                    Interlocked.Increment(ref maxNum);
                    item["UserBarcode"] = "USER" + maxNum.ToString().PadLeft(8, '0');
                }

                var Query = ParamDelete.Instance().AndWhere("UserCode", UserCode);
                service.Delete(Query);
            }
            base.OnAfterHandleExcel(ref dtSheet);
        }
        public void PostOnSaveWorkStep(dynamic data)
        {
            List <PRS_ProcessWorkSteps> model = new List <PRS_ProcessWorkSteps>();

            foreach (var item in data.model)
            {
                int?ManHours = item.ManHours;
                PRS_ProcessWorkSteps step = new PRS_ProcessWorkSteps();
                step.WorkStepsLineCode = item.WorkStepsLineCode;
                step.WorkStepsName     = item.WorkStepsName;
                step.WorkStepsContent  = item.WorkStepsContent;
                step.ManHours          = ManHours;
                step.Unit           = Convert.ToInt32(item.Unit);
                step.ProcessRouteID = Convert.ToInt32(data["gyid"].ToString());
                step.CreatePerson   = MmsHelper.GetUserName();
                step.CreateTime     = DateTime.Now;
                step.ModifyPerson   = step.CreatePerson;
                step.ModifyTime     = step.CreateTime;
                step.IsEnable       = 1;
                model.Add(step);
            }
            if (model.Count > 0)
            {
                new PRS_ProcessWorkStepsService().Insert(model);
            }
        }
        public ResultModel UpdateSavantAndPBomNum(long id, int num)
        {
            try
            {
                MES_SavantAndPBom modelA = db.Sql(string.Format(@"SELECT * FROM MES_SavantAndPBom WHERE ID = {0}", id)).QuerySingle <MES_SavantAndPBom>();

                if (modelA == null)
                {
                    throw new Exception("查不到 MES_SavantAndPBom 完整数据");
                }
                else
                {
                    PRS_Process_BOM_Blanking modelB = db.Sql(string.Format(@"SELECT * FROM dbo.PRS_Process_BOM_Blanking WHERE IsEnable = 1 AND ID = {0}", modelA.ProcessBomID)).QuerySingle <PRS_Process_BOM_Blanking>();

                    if (modelB == null)
                    {
                        throw new Exception("查不到 PRS_Process_BOM_Blanking 完整数据");
                    }
                    else if (modelB.BlankingNum == null)
                    {
                        throw new Exception("没有维护数据");
                    }
                    else
                    {
                        int alreadyBlankingNum = db.Sql(string.Format(@"SELECT tbTemp.AlreadyBlankingNum FROM (SELECT ProcessBomID,SUM(ISNULL(BlankingNum,0)) AS AlreadyBlankingNum FROM dbo.MES_SavantAndPBom WHERE ID NOT IN ({0}) GROUP BY ProcessBomID) tbTemp WHERE tbTemp.ProcessBomID = {1}", modelA.ID, modelA.ProcessBomID)).QuerySingle <int>();

                        if (num >= 0 && num <= (modelB.BlankingNum - alreadyBlankingNum))
                        {
                            string sql = WinFormClientService.GetUpdateSQL(nameof(MES_SavantAndPBom), new KeyValuePair <string, object>("ID", id), new
                            {
                                BlankingNum  = num,
                                ModifyPerson = MmsHelper.GetUserName(),
                                ModifyTime   = DateTime.Now
                            });

                            return(new ResultModel()
                            {
                                Result = db.Sql(sql).Execute() > 0,
                                Msg = @"保存成功!"
                            });
                        }
                        else
                        {
                            throw new Exception("无效的数量,请重新填写!");
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                return(new ResultModel()
                {
                    Result = false,
                    Msg = ex.Message
                });
            }
        }
Example #6
0
        public void PostWorkingTicketLower(dynamic data)
        {
            string WTList = data.WTList;

            new MES_WorkingTicketService()
            .Update(ParamUpdate.Instance()
                    .Update("MES_WorkingTicket")
                    .Column("ApproveState", 2)
                    .Column("ApproveTime", DateTime.Now)
                    .Column("ApprovePerson", MmsHelper.GetUserName())
                    .AndWhere("ID", WTList, Cp.In));
        }
Example #7
0
        /// <summary>
        /// 采购接单主界面
        /// </summary>
        /// <returns></returns>

        public ActionResult Index2()
        {
            var     code       = new sys_codeService();
            dynamic depart     = new SYS_BN_UserService().GetDepartment(MmsHelper.GetUserCode());
            string  departcode = string.Empty;
            string  departname = string.Empty;

            if (depart != null)
            {
                departcode = depart.DepartmentCode;
                departname = depart.DepartmentName;
            }
            var model = new
            {
                dataSource = new
                {
                },
                urls = new
                {
                    query  = "/api/Mms/APS_ProductPurchaseDetail1",
                    newkey = "/api/Mms/APS_ProductPurchaseDetail1/getnewkey",
                    edit   = "/api/Mms/APS_ProductPurchaseDetail1/edit"
                },
                resx = new
                {
                    noneSelect   = "请先选择一条数据!",
                    editSuccess  = "保存成功!",
                    auditSuccess = "单据已审核!"
                },
                form = new
                {
                    WarehouseName  = "",
                    PurchaseDate   = "",
                    ContractCode   = "",
                    ProjectName    = "",
                    SaleMan        = MmsHelper.GetUserName(),
                    UserCode       = MmsHelper.GetUserCode(),
                    DepartmentCode = departcode
                },
                defaultRow = new
                {
                },
                setting = new
                {
                    idField        = "ID",
                    postListFields = new string[] { "ID", "MainID", "InventoryCode", "SingleProductRequestQuantity", "TotalRequestQuantity", "Remark", "PurchaseState", "IsEnable", "CreatePerson", "CreateTime", "ModifyPerson", "ModifyTime", "PurchaseQuantity", "StockQuantity", "RequestedQuantity", "SaleMan", "DepartmentCode", "DepartmentName", "WarehouseCode", "WarehouseName", "SupplierCode", "SupplierName", "OrderQuantity", "PurchaseFeedback", "PurchaseRemark", "UserCode", "PurchaseDate" }
                }
            };

            return(View(model));
        }
        public dynamic AddSavantAndPBomData(string ids, string savantCode)
        {
            try
            {
                StringBuilder sb    = new StringBuilder();
                DateTime      newDT = DateTime.Now;

                ids.Split(',').ToList().ForEach(item =>
                {
                    string[] arr = item.Split('|');

                    sb.Append(WinFormClientService.GetInsertSQL(new MES_SavantAndPBom()
                    {
                        SavantCode   = savantCode,
                        ProcessBomID = Convert.ToInt32(arr[0]),
                        BlankingNum  = Convert.ToInt32(arr[1]),
                        CreatePerson = MmsHelper.GetUserName(),
                        CreateTime   = newDT,
                        ModifyPerson = MmsHelper.GetUserName(),
                        ModifyTime   = newDT
                    }));
                });

                sb.Append(string.Format(@"
UPDATE dbo.MES_SavantManage
SET SpareMateNum = 1,
    SplitNum =
    (
        SELECT SUM(BlankingNum)
        FROM dbo.MES_SavantAndPBom
        WHERE SavantCode = '{0}'
    );
", savantCode));

                string sql = sb.ToString();

                return(new ResultModel()
                {
                    Result = db.Sql(sql).Execute() > 0,
                    Msg = @"新增成功!"
                });
            }
            catch (Exception ex)
            {
                return(new ResultModel()
                {
                    Result = false,
                    Msg = ex.Message
                });
            }
        }
        public ActionResult Edit(string id)
        {
            var userName       = MmsHelper.GetUserName();
            var currentProject = MmsHelper.GetCurrentProject();
            var data           = new CheckApiController().GetEditMaster(id);
            var codeService    = new sys_codeService();

            var model = new
            {
                form       = data.form,
                scrollKeys = data.scrollKeys,
                urls       = MmsHelper.GetEditUrls("check"),
                resx       = MmsHelper.GetEditResx("盘点单"),
                dataSource = new
                {
                    measureUnit    = codeService.GetMeasureUnitListByType(),
                    warehouseItems = new mms_warehouseService().GetWarehouseItems(currentProject),
                    yearItems      = codeService.GetYearItems(),
                    monthItems     = codeService.GetMonthItems()
                },
                defaultForm = new mms_check().Extend(new
                {
                    BillNo   = id,
                    BillDate = DateTime.Now,
                    DoPerson = userName,
                    Years    = DateTime.Now.Year,
                    Months   = DateTime.Now.Month
                }),
                defaultRow = new
                {
                    BookNum         = 0,
                    BookMoney       = 0,
                    ActualNum       = 0,
                    ActualUnitPrice = 0,
                    OperateNum      = 0,
                    OperateMoney    = 0
                },
                setting = new
                {
                    postFormKeys   = new string[] { "BillNo" },
                    postListFields = new string[] { "BillNo", "RowId", "MaterialCode", "Unit", "BookNum", "BookMoney", "ActualNum", "ActualUnitPrice", "OperateNum", "OperateMoney", "Remark" }
                }
            };

            return(View(model));
        }
Example #10
0
        public ActionResult Edit(string id)
        {
            var userName       = MmsHelper.GetUserName();
            var currentProject = MmsHelper.GetCurrentProject();
            var data           = new ReceiveApiController().GetEditMaster(id);
            var codeService    = new sys_codeService();

            var model = new
            {
                form       = data.form,
                scrollKeys = data.scrollKeys,
                urls       = MmsHelper.GetEditUrls("receive"),
                resx       = MmsHelper.GetEditResx("收料单"),
                dataSource = new
                {
                    measureUnit    = codeService.GetMeasureUnitListByType(),
                    supplyType     = codeService.GetValueTextListByType("SupplyType"),
                    payKinds       = codeService.GetValueTextListByType("PayType"),
                    warehouseItems = new mms_warehouseService().GetWarehouseItems(currentProject)
                },
                defaultForm = new mms_receive().Extend(new
                {
                    BillNo      = id,
                    BillDate    = DateTime.Now,
                    DoPerson    = userName,
                    ReceiveDate = DateTime.Now,
                    SupplyType  = codeService.GetDefaultCode("SupplyType"),
                    PayKind     = codeService.GetDefaultCode("PayType"),
                }),
                defaultRow = new
                {
                    CheckNum  = 1,
                    Num       = 1,
                    UnitPrice = 0,
                    Money     = 0,
                    PrePay    = 0
                },
                setting = new
                {
                    postFormKeys   = new string[] { "BillNo" },
                    postListFields = new string[] { "BillNo", "RowId", "MaterialCode", "Unit", "CheckNum", "Num", "UnitPrice", "PrePay", "Money", "Remark" }
                }
            };

            return(View(model));
        }
Example #11
0
        //出场保存之后,更新进场单中的剩余数量
        protected override void OnAfterEditDetail(EditEventArgs arg)
        {
            var     userName  = MmsHelper.GetUserName();
            decimal num       = arg.row.Value <decimal>("Num") - (arg.rowOld.Num ?? 0);
            string  srcBillNo = arg.row.Value <string>("SrcBillNo");
            int     srcRowId  = arg.row.Value <int>("SrcRowId");

            arg.db.Sql(string.Format(@"
update mms_rentInDetail
set RemainNum = isnull(RemainNum,0) - {0} ,
UpdateDate = getdate(),
UpdatePerson = '{1}'
where BillNo='{2}' 
and RowId='{3}'", num, userName, srcBillNo, srcRowId)).Execute();

            base.OnAfterEditDetail(arg);
        }
Example #12
0
        public ActionResult Edit(string id = "")
        {
            var userName       = MmsHelper.GetUserName();
            var currentProject = MmsHelper.GetCurrentProject();
            var data           = new DealApiController().GetEditMaster(id);
            var codeService    = new sys_codeService();

            var model = new
            {
                form       = data.form,
                scrollKeys = data.scrollKeys,
                urls       = MmsHelper.GetEditUrls("deal"),
                resx       = MmsHelper.GetEditResx("处置单"),
                dataSource = new
                {
                    measureUnit   = codeService.GetMeasureUnitListByType(),
                    disposalTypes = codeService.GetValueTextListByType("DisposalType"),
                    disposalWays  = codeService.GetValueTextListByType("DisposalWay")
                },
                defaultForm = new mms_deal().Extend(new
                {
                    BillNo    = id,
                    BillDate  = DateTime.Now,
                    DoPerson  = userName,
                    ApplyDate = DateTime.Now,
                    DealType  = codeService.GetDefaultCode("DisposalType"),
                    DealKind  = codeService.GetDefaultCode("DisposalWay"),
                }),
                defaultRow = new
                {
                    UnitPrice = 0,
                    Num       = 1,
                    Money     = 0,
                    DealDate  = DateTime.Now
                },
                setting = new
                {
                    postFormKeys   = new string[] { "BillNo" },
                    postListFields = new string[] { "BillNo", "RowId", "MaterialName", "Model", "Unit", "DealDate", "ExpendCompany", "UnitPrice", "Num", "Money", "Remark" }
                }
            };

            return(View(model));
        }
Example #13
0
        //更新材料库存信息
        public static int UpdateWarehouseStock(IDbContext context, string warehouseCode, string MaterialCode, string Unit, decimal UnitPrice, decimal Num)
        {
            var userName = MmsHelper.GetUserName();

            var builder = context.Select <mms_warehouseStock>("*")
                          .From("mms_warehouseStock")
                          .Where("WarehouseCode=@0 and MaterialCode=@1")
                          .Parameters(warehouseCode, MaterialCode);

            mms_warehouseStock stock = builder.QuerySingle() ?? new mms_warehouseStock()
            {
                WarehouseCode = warehouseCode,
                MaterialCode  = MaterialCode,
                Unit          = Unit,
                UnitPrice     = 0,
                Num           = 0,
                Money         = 0,
                CreateDate    = DateTime.Now,
                CreatePerson  = userName
            };

            stock.Num          = (stock.Num ?? 0) + Num;
            stock.Money        = (stock.Money ?? 0) + UnitPrice * Num;
            stock.UnitPrice    = stock.Money / (stock.Num == 0 ? 1 : stock.Num);
            stock.UpdateDate   = DateTime.Now;
            stock.UpdatePerson = userName;

            var rowsAffect = context.Update <mms_warehouseStock>("mms_warehouseStock", stock)
                             .AutoMap(x => x.WarehouseCode, x => x.MaterialCode)
                             .Where(x => x.WarehouseCode).Where(x => x.MaterialCode)
                             .Execute();

            if (rowsAffect == 0)
            {
                rowsAffect = context.Insert <mms_warehouseStock>("mms_warehouseStock", stock).AutoMap().Execute();
            }

            if (rowsAffect < 0)
            {
                throw new Exception("更新仓库库存时发错误,请重试或联系管理员!");
            }

            return(rowsAffect);
        }
Example #14
0
        public ActionResult Edit(string id)
        {
            var userName       = MmsHelper.GetUserName();
            var currentProject = MmsHelper.GetCurrentProject();
            var data           = new SendApiController().GetEditMaster(id);
            var codeService    = new sys_codeService();

            var model = new
            {
                form       = data.form,
                scrollKeys = data.scrollKeys,
                urls       = MmsHelper.GetEditUrls("send"),
                resx       = MmsHelper.GetEditResx("发料单"),
                dataSource = new
                {
                    priceKinds     = codeService.GetValueTextListByType("Pricing"),
                    materialUse    = codeService.GetValueTextListByType("MaterialUse"),
                    measureUnit    = codeService.GetMeasureUnitListByType(),
                    warehouseItems = new mms_warehouseService().GetWarehouseItems(currentProject)
                },
                defaultForm = new mms_send().Extend(new
                {
                    BillNo    = id,
                    BillDate  = DateTime.Now,
                    DoPerson  = userName,
                    SendDate  = DateTime.Now,
                    PriceKind = codeService.GetDefaultCode("Pricing")
                }),
                defaultRow = new
                {
                    Num       = 1,
                    UnitPrice = 0,
                    Money     = 0
                },
                setting = new
                {
                    postFormKeys   = new string[] { "BillNo" },
                    postListFields = new string[] { "BillNo", "RowId", "MaterialCode", "Unit", "UnitPrice", "Num", "Money", "Remark", "SrcBillType", "SrcBillNo", "SrcRowId" }
                }
            };

            return(View(model));
        }
Example #15
0
        public ActionResult Edit(string id)
        {
            var userName       = MmsHelper.GetUserName();
            var currentProject = MmsHelper.GetCurrentProject();
            var data           = new RentinApiController().GetEditMaster(id);
            var codeService    = new sys_codeService();

            var model = new
            {
                form       = data.form,
                scrollKeys = data.scrollKeys,
                urls       = MmsHelper.GetEditUrls("rentin"),
                resx       = MmsHelper.GetEditResx("租赁进场单"),
                dataSource = new
                {
                    measureUnit = codeService.GetMeasureUnitListByType(),
                    materialUse = codeService.GetValueTextListByType("MaterialUse"),
                    billingUnit = codeService.GetValueTextListByType("BillingUnit")
                },
                defaultForm = new mms_rentIn().Extend(new
                {
                    BillNo     = id,
                    BillDate   = DateTime.Now,
                    DoPerson   = userName,
                    RentInDate = DateTime.Now,
                    Purpose    = codeService.GetDefaultCode("MaterialUse")
                }),
                defaultRow = new
                {
                    Num       = 1,
                    UnitPrice = 1
                },
                setting = new
                {
                    postFormKeys   = new string[] { "BillNo" },
                    postListFields = new string[] { "BillNo", "RowId", "MaterialCode", "Unit", "UseUnit", "PriceUnit", "Num", "UnitPrice", "Remark" }
                }
            };

            return(View(model));
        }
Example #16
0
        public ActionResult Edit(string id = "")
        {
            var userName       = MmsHelper.GetUserName();
            var currentProject = MmsHelper.GetCurrentProject();
            var data           = new RentoutApiController().GetEditMaster(id);
            var codeService    = new sys_codeService();

            var model = new
            {
                form       = data.form,
                scrollKeys = data.scrollKeys,
                urls       = MmsHelper.GetEditUrls("rentout"),
                resx       = MmsHelper.GetEditResx("租赁出场单"),
                dataSource = new
                {
                    measureUnit = codeService.GetMeasureUnitListByType()
                },
                defaultForm = new mms_rentOut().Extend(new
                {
                    BillNo      = id,
                    BillDate    = DateTime.Now,
                    DoPerson    = userName,
                    RentOutDate = DateTime.Now
                }),
                defaultRow = new
                {
                    CheckNum         = 1,
                    InStoreNum       = 1,
                    InStoreUnitPrice = 0,
                    TotalMoney       = 0,
                    PrePay           = 0
                },
                setting = new
                {
                    postFormKeys   = new string[] { "BillNo" },
                    postListFields = new string[] { "BillNo", "RowId", "SrcBillNo", "SrcRowId", "MaterialCode", "Unit", "Num", "Remark" }
                }
            };

            return(View(model));
        }
Example #17
0
        public ActionResult Edit(string id)
        {
            var userName       = MmsHelper.GetUserName();
            var currentProject = MmsHelper.GetCurrentProject();
            var data           = new RentOffApiController().GetEditMaster(id);
            var codeService    = new sys_codeService();

            var model = new
            {
                form       = data.form,
                scrollKeys = data.scrollKeys,
                urls       = MmsHelper.GetEditUrls("rentOff"),
                resx       = MmsHelper.GetEditResx("停租单"),
                dataSource = new
                {
                    measureUnit    = codeService.GetMeasureUnitListByType(),
                    warehouseItems = new mms_warehouseService().GetWarehouseItems(currentProject)
                },
                defaultForm = new mms_rentOff().Extend(new
                {
                    BillNo    = id,
                    BillDate  = DateTime.Now,
                    DoPerson  = userName,
                    BeginDate = DateTime.Now
                }),
                defaultRow = new
                {
                    UnitPrice = 0,
                    Num       = 1,
                    Day       = 1,
                    PrePay    = 0
                },
                setting = new
                {
                    postFormKeys   = new string[] { "BillNo" },
                    postListFields = new string[] { "BillNo", "RowId", "MaterialCode", "Unit", "UnitPrice", "Num", "Day", "Money", "Remark" }
                }
            };

            return(View(model));
        }
Example #18
0
        public static int UpdateMaterialWarnning(IDbContext context, string projectCode, string MaterialCode, decimal Num)
        {
            var userName = MmsHelper.GetUserName();

            var builder = context.Select <mms_materialWarnning>("*")
                          .From("mms_materialWarnning")
                          .Where("ProjectCode=@0 and MaterialCode=@1")
                          .Parameters(projectCode, MaterialCode);

            mms_materialWarnning warnning = builder.QuerySingle() ?? new mms_materialWarnning()
            {
                ProjectCode  = projectCode,
                MaterialCode = MaterialCode,
                LowerNum     = 0,
                UpperNum     = 0,
                Num          = 0,
                CreatePerson = userName,
                CreateDate   = DateTime.Now,
            };

            warnning.Num          = (warnning.Num ?? 0) + Num;
            warnning.UpdateDate   = DateTime.Now;
            warnning.UpdatePerson = userName;

            var rowsAffect = context.Update <mms_materialWarnning>("mms_materialWarnning", warnning)
                             .AutoMap(x => x.ProjectCode, x => x.MaterialCode)
                             .Where(x => x.ProjectCode).Where(x => x.MaterialCode)
                             .Execute();

            if (rowsAffect == 0)
            {
                rowsAffect = context.Insert <mms_materialWarnning>("mms_materialWarnning", warnning).AutoMap().Execute();
            }

            if (rowsAffect < 0)
            {
                throw new Exception("更新项目库存时发错误,请重试或联系管理员!");
            }

            return(rowsAffect);
        }
Example #19
0
 public ActionResult Upload(HttpPostedFileBase fileData, string Object_ID = "", string TableName = "")
 {
     if (fileData != null)
     {
         try
         {
             ControllerContext.HttpContext.Request.ContentEncoding  = Encoding.GetEncoding("UTF-8");
             ControllerContext.HttpContext.Response.ContentEncoding = Encoding.GetEncoding("UTF-8");
             ControllerContext.HttpContext.Response.Charset         = "UTF-8";
             // 文件上传后的保存路径
             string filePath = Server.MapPath("~/Upload/" + TableName + "/");
             if (!Directory.Exists(filePath))
             {
                 Directory.CreateDirectory(filePath);
             }
             string fileName      = Path.GetFileName(fileData.FileName); //原始文件名称
             string fileExtension = Path.GetExtension(fileName);
             //文件扩展名
             string saveName = "[" + DateTime.Now.ToString("yyyyMMddhhmmss") + "]" + fileName; //保存文件名称
             fileData.SaveAs(string.Format("{0}\\{1}", filePath, saveName));
             string userName  = MmsHelper.GetUserName();
             string InsertSql = string.Format(@"update PMS_BN_PartFile set FileAddress='{0}' where ID ='{1}'", filePath + saveName, Object_ID);
             using (var db = Db.Context("Mms"))
             {
                 //db.UseTransaction(true);
                 int effectRow = db.Sql(InsertSql).Execute();
             }
             return(Content("true"));
         }
         catch (Exception ex)
         {
             return(Content("false"));
         }
     }
     else
     {
         return(Content("false"));
     }
 }
Example #20
0
        public void PostUpdate5(int id, string docName, string fileName, string filePath, string tableName)
        {
            PRS_Process_BOM ppBom = new PRS_Process_BOMService().SelectPRS_Process_BOM(id.ToString());

            if (docName.IndexOf('.').Equals(-1))
            {
                throw new Exception("无法读取文件名!");
            }
            else
            {
                DateTime newDT = DateTime.Now;
                fileName += Path.GetExtension(docName);
                //filePath = HttpContext.Current.Server.MapPath("~/Upload/" + filePath) + fileName;
                string FtpServer = "ftp://" + ConfigurationManager.AppSettings["FtpServer"] + ":" + ConfigurationManager.AppSettings["FtpPort"];
                filePath = FtpServer + "/" + filePath + fileName;

                PRS_ProcessFigure model = new PRS_ProcessFigure()
                {
                    ContractCode = ppBom.ContractCode,
                    ProductID    = ppBom.ProductID,
                    PartCode     = ppBom.PartCode,
                    DocName      = docName,
                    FileName     = fileName,
                    FileAddress  = filePath,
                    IsEnable     = 1,
                    CreatePerson = MmsHelper.GetUserName(),
                    CreateTime   = newDT,
                    ModifyPerson = MmsHelper.GetUserName(),
                    ModifyTime   = newDT
                };

                string sql = WinFormClientService.GetInsertSQL(model);

                using (var db = Db.Context("Mms"))
                {
                    db.Sql(sql).Execute();
                }
            }
        }
Example #21
0
        public dynamic PostProjectDetailOnDelete(List <PMS_BN_ProjectDetail> model)
        {
            bool result = false;

            model[0].ModifyTime   = DateTime.Now;
            model[0].ModifyPerson = MmsHelper.GetUserName();
            using (var db = Db.Context("Mms"))
            {
                db.UseTransaction(true);
                string sql1                 = string.Format("update PMS_BN_ProjectDetail set IsEnable=0 where ID={0} ", model[0].ID);
                string sql2                 = string.Format("update PMS_ProductTask set IsEnable=0 where ProductID='{0}'", model[0].ID);
                string sql3                 = string.Format("update PMS_DesignTaskDetail set IsEnable=0 where ProductID='{0}'", model[0].ID);
                string sql4                 = string.Format("update PMS_ProductPlanDetail set IsEnable=0 where ProductID='{0}'", model[0].ID);
                bool   resProjectDetail     = db.Sql(sql1).Execute() >= 0;
                bool   resProductTask       = db.Sql(sql2).Execute() >= 0;
                bool   resDesignTaskDetail  = db.Sql(sql3).Execute() >= 0;
                bool   resProductPlanDetail = db.Sql(sql4).Execute() >= 0;
                if (resProjectDetail)
                {
                    db.Commit();
                    return(new
                    {
                        msg = "删除成功",
                        result
                    });
                }
                else
                {
                    db.Rollback();
                    return(new
                    {
                        msg = "删除失败",
                        result
                    });
                }
            }
        }
Example #22
0
        public ActionResult Edit(string id)
        {
            var userName       = MmsHelper.GetUserName();
            var currentProject = MmsHelper.GetCurrentProject();
            var data           = new DrainpipeductApiController().GetEditMaster(id);
            var codeService    = new sys_codeService();

            var model = new
            {
                form       = data.form,
                scrollKeys = data.scrollKeys,
                urls       = new
                {
                    getdetail = "/api/mms/drainpipeduct/getdetail/",
                    getmaster = "/api/mms/drainpipeduct/geteditmaster/",
                    edit      = "/api/mms/drainpipeduct/edit/",
                    audit     = "/api/mms/drainpipeduct/audit/",
                    getrowid  = "/mms/drainpipeduct/getnewrowid/"
                },
                resx = new
                {
                    rejected    = "已撤消修改!",
                    editSuccess = "保存成功!",
                    auditReject = "信息已取消审核!",
                    auditPassed = "信息已通过审核"
                },
                dataSource = new
                {
                    Category           = codeService.Decode("InspectionWellCategory"),
                    AdministrativeArea = codeService.Decode("AdministrativeArea"),
                    SectionForm        = codeService.Decode("drainGrooveSectionForm"),
                    Type           = codeService.Decode("drainpipeductType"),
                    GrooveType     = codeService.Decode("drainGrooveType"),
                    Material       = codeService.Decode("PipeMaterial"),
                    PressureType   = codeService.Decode("PipePressureType"),
                    FacilityStatus = codeService.Decode("FacilityStatus"),
                    warehouseItems = new mms_warehouseService().GetWarehouseItems(currentProject)
                },

                defaultForm = new mms_drainpipeduct().Extend(new
                {
                    BillNo             = id,
                    IdentificationCode = "",
                    DrainageCode       = "",
                    Address            = "",
                    Start_stopPoint    = "",
                    Category           = codeService.GetDefaultCodeNew("InspectionWellCategory"),
                    GrooveType         = codeService.GetDefaultCodeNew("drainGrooveType"),
                    Length             = "",
                    StartCode          = "",
                    StopCode           = "",
                    StartElevation     = "",
                    StopElevation      = "",
                    SectionForm        = codeService.GetDefaultCodeNew("drainGrooveSectionForm"),
                    Diameter           = "",
                    Material           = codeService.GetDefaultCodeNew("PipeMaterial"),
                    PressureType       = codeService.GetDefaultCodeNew("PipePressureType"),
                    LiningMaterial     = codeService.GetDefaultCodeNew("PipeLiningMaterial"),
                    LiningThick        = "",
                    Slope              = "",
                    Siphon             = "",
                    OwnershipUnit      = "",
                    FacilityStatus     = codeService.GetDefaultCodeNew("FacilityStatus"),
                    DataSources        = codeService.GetDefaultCodeNew("DataSources"),
                    ReportingUnit      = "",
                    Remark             = "",
                    Type               = codeService.GetDefaultCodeNew("drainpipeductType"),
                    AdministrativeArea = codeService.GetDefaultCodeNew("AdministrativeArea")
                }),

                setting = new
                {
                    postFormKeys = new string[] { "BillNo" }
                }
            };

            return(View(model));
        }
Example #23
0
        public void Cover_MES_BN_MatchingTableDetail(List <MES_BN_MatchingTableDetail> MES_BN_MatchingTableDetailList, List <PRS_Process_BOM> ProcessBomList)
        {
            try
            {
                db.UseTransaction(true);

                var MaxID = new MES_BN_MatchingTableDetailService().GetField <int>(ParamQuery.Instance().Select("max(ID) as ID").From("MES_BN_MatchingTableDetail"));

                string MES_BN_MatchingTableDetailListStr = string.Join(",", MES_BN_MatchingTableDetailList.Select(a => a.ID));
                db.Sql($"update MES_BN_MatchingTableDetail set IsEnable=0 where ID in({MES_BN_MatchingTableDetailListStr})").Execute();

                var PMS_BN_ProjectList       = new PMS_BN_ProjectService().GetModelList();
                var PMS_BN_ProjectDetailList = new PMS_BN_ProjectDetailService().GetModelList();

                var UpdateList = new List <int>();
                ProcessBomList.ForEach(item =>
                {
                    var PartCode   = item.PartCode;
                    var ParentCode = item.ParentCode;
                    var IsExist    = MES_BN_MatchingTableDetailList.Where(a => a.PartCode == PartCode && a.PPartCode == ParentCode).Select(a => a.ID);
                    if (IsExist.Count() > 0)
                    {
                        UpdateList.Add(IsExist.FirstOrDefault());
                    }
                    else
                    {
                        MES_BN_MatchingTableDetail model = new MES_BN_MatchingTableDetail();
                        model.ID              = ++MaxID;
                        model.PartCode        = PartCode;
                        model.PartName        = item.PartName;
                        model.PPartCode       = item.ParentCode;
                        model.ContractCode    = item.ContractCode;
                        model.ProjectDetailID = item.ProductID;
                        model.ProjectName     = PMS_BN_ProjectDetailList.Where(a => a.ID == item.ProductID).FirstOrDefault().ProductName;
                        model.NeedQuantity    = item.PartQuantity ?? 0 * PMS_BN_ProjectDetailList.Where(a => a.ID == item.ProductID).FirstOrDefault().Quantity ?? 0;
                        model.Type            = item.IsSelfMade;
                        model.TypeName        = item.IsSelfMade == "0" ? "成品件" : "加工件";
                        model.BomQuantity     = item.PartQuantity ?? 0;
                        model.IsMaterial      = 0;
                        model.IsEnable        = 1;
                        model.ApproveState    = "1";
                        model.CreatePerson    = MmsHelper.GetUserName();
                        model.CreateTime      = DateTime.Now;
                        //db.Insert<MES_BN_MatchingTableDetail>("MES_BN_MatchingTableDetail", model).AutoMap(a => a.ID).ExecuteReturnLastId<int>();
                        string sql = WinFormClientService.GetInsertSQL <MES_BN_MatchingTableDetail>(model);
                        db.Sql(sql).Execute();
                    }
                });

                if (UpdateList.Count > 0)
                {
                    db.Sql($"update MES_BN_MatchingTableDetail set IsEnable=1 where ID in({string.Join(",", UpdateList)})").Execute();
                }

                db.Commit();
            }
            catch (Exception ex)
            {
                db.Rollback();
            }
        }
        public int AuditBillCode(string BillCode, out string msg)
        {
            msg = string.Empty;
            //var rowsAffected = 0;
            string  sql       = String.Format(@" 
SELECT t1.*,
t1.QualifiedQuntity,
       t3.WarehouseID,
       t3.WarehouseName,
       t2.CheckQuantity
       ,t4.QuantityUnit
	   ,t4.Model
	   , t4.InventoryCode
	   ,t4.InventoryName
	   ,t3.WorkshopID
	   ,t3.WorkshopName
FROM dbo.QMS_ProcessInspection t1
    LEFT JOIN MES_ProcessInspectionRequest t2
        ON t1.PBillCode = t2.BillCode
           AND t1.IsEnable = 1
           AND t2.IsEnable = 1
           AND t2.BillState = 2
    LEFT JOIN dbo.MES_BN_ProductProcessRoute t3
        ON t2.ProductProcessRouteID = t3.ID
           AND t3.IsEnable = 1
		   inner JOIN dbo.SYS_Part t4 ON t1.PartCode=t4.PartCode
		   AND t4.IsEnable=1  where t1.BillCode='{0}'"        , BillCode);
            dynamic stateList = db.Sql(sql).QueryMany <dynamic>();

            if (stateList[0].BillState == 2)
            {
                msg = "单据已审核";
                return(0);
            }
            else
            {
                sql = string.Format(@"update QMS_ProcessInspection set BillState=2 where BillCode='{0}'", BillCode);
                //string insertSql=string.Format(@"")

                using (db.UseTransaction(true))
                {
                    int    countMain  = db.Sql(sql).Execute();
                    string documentNo = "";
                    documentNo = MmsHelper.GetOrderNumber("WMS_BN_BillMain", "BillCode", "ZXRK", "", "");
                    //billstate = 2;
                    #region WMS_BN_BillMain表
                    string sqlA = string.Format(@"
INSERT INTO dbo.WMS_BN_BillMain
(
    ID,
    BillCode,
    BillType,
    ContractCode,
    ProjectName,
    SalesmanCode,
    Salesman,
    DepartmentID,
    DepartmentName,
    SupplierCode,
    SupplierName,
    WarehouseCode,
    WarehouseName,
    PickPersonCode,
    PickPerson,
    ApproveState,
    ApprovePerson,
    ApproveDate,
    ApproveRemark,
    Remark,
    CreatePerson,
    CreateTime,
    ModifyPerson,
    ModifyTime,
    IsEnable
)
VALUES
(   {0},         -- ID - int
    '{1}',        -- BillCode - varchar(50)
    {2},         -- BillType - int
    '{3}',        -- ContractCode - varchar(50)
    '{4}',        -- ProjectName - varchar(50)
    '',        -- SalesmanCode - varchar(50)
    '',        -- Salesman - varchar(50)
    '',        -- DepartmentID - varchar(50)
    '',        -- DepartmentName - varchar(50)
    '',        -- SupplierCode - varchar(50)
    '',        -- SupplierName - varchar(50)
    '{5}',        -- WarehouseCode - varchar(50)
    '{6}',        -- WarehouseName - varchar(50)
    '',        -- PickPersonCode - varchar(50)
    '',        -- PickPerson - varchar(50)
    '1',        -- ApproveState - varchar(50)
    '',        -- ApprovePerson - varchar(50)
    GETDATE(), -- ApproveDate - datetime
    '',        -- ApproveRemark - varchar(500)
    '',        -- Remark - varchar(500)
    '{7}',        -- CreatePerson - varchar(50)
    GETDATE(), -- CreateTime - datetime
    '{7}',        -- ModifyPerson - varchar(50)
    GETDATE(), -- ModifyTime - datetime
    1          -- IsEnable - int
)
", Convert.ToInt32(new WMS_BN_BillMainService().GetNewKey("ID", "Maxplus")), documentNo, 8, stateList[0].ContractCode,
                                                stateList[0].ProjectName, stateList[0].WarehouseID, stateList[0].WarehouseName, MmsHelper.GetUserName());
                    #endregion

                    int countA = db.Sql(sqlA).Execute();

                    #region WMS_BN_BillDetail表
                    string sqlB = string.Format(@"
INSERT INTO dbo.WMS_BN_BillDetail
(
    BillCode,
    OrderBillCode,
    InventoryCode,
    InventoryName,
    Specs,
    Unit,
    MateNum,
    ConfirmNum,
    UnitPrice,
    TotalPrice,
    PackageCode,
    BatchCode,
    PBillCode,
    AccountabilityCode,
    Remark,
    CreatePerson,
    CreateTime,
    ModifyPerson,
    ModifyTime,
    IsEnable
)
VALUES
(   '{0}',        -- BillCode - varchar(50)
    '',        -- OrderBillCode - varchar(50)
    N'{1}',       -- InventoryCode - nvarchar(50)
    N'{2}',       -- InventoryName - nvarchar(50)
    '{3}',        -- Specs - varchar(50)
    N'{4}',       -- Unit - nvarchar(10)
    {5},       -- MateNum - float
    {6},       -- ConfirmNum - float
    0.0,       -- UnitPrice - float
    0.0,       -- TotalPrice - float
    '',        -- PackageCode - varchar(50)
    '',        -- BatchCode - varchar(50)
    '',        -- PBillCode - varchar(50)
    '',        -- AccountabilityCode - varchar(50)
    N'',       -- Remark - nvarchar(500)
    N'{7}',       -- CreatePerson - nvarchar(50)
    GETDATE(), -- CreateTime - datetime
    N'{7}',       -- ModifyPerson - nvarchar(50)
    GETDATE(), -- ModifyTime - datetime
    1          -- IsEnable - int
)
", documentNo, stateList[0].InventoryCode, stateList[0].InventoryName, stateList[0].Model,
                                                stateList[0].Unit, stateList[0].QualifiedQuntity, stateList[0].QualifiedQuntity, MmsHelper.GetUserName());
                    #endregion

                    int  countB = db.Sql(sqlB).Execute();
                    int  countC = 0;
                    bool aaa    = true;
                    bool ccc    = true;
                    //更新库存表

                    //库存表
                    List <WMS_BN_RealStock> realStockData = db.Sql("SELECT * FROM WMS_BN_RealStock WHERE IsEnable = 1").QueryMany <WMS_BN_RealStock>();

                    var realStocks = realStockData.Where(s =>
                    {
                        bool a = s.WarehouseCode == null ? false : s.WarehouseCode.Equals(stateList[0].WarehouseID);
                        bool b = s.InventoryCode == null ? false : s.InventoryCode.Equals(stateList[0].InventoryCode);
                        bool c = s.BatchCode == null ? false : s.BatchCode.Equals(stateList[0].BatchCode);
                        return(a && b && c);
                    }).ToList();
                    string updateStockSal = "";

                    if (stateList[0].WarehouseName == stateList[0].WorkshopName)
                    {
                        #region
                        //没有库存则新增
                        if (realStocks.Count <= 0)
                        {
                            WMS_BN_RealStock realStockModel = new WMS_BN_RealStock()
                            {
                                InventoryCode = stateList[0].InventoryCode,
                                InventoryName = stateList[0].InventoryName,
                                Model         = stateList[0].Model,
                                RealStock     = (double)stateList[0].QualifiedQuntity,
                                TotalStock    = (double)stateList[0].QualifiedQuntity,
                                WarehouseCode = stateList[0].WarehouseID,
                                WarehouseName = stateList[0].WarehouseName,
                                BatchCode     = stateList[0].BatchCode,
                                Unit          = stateList[0].Unit,
                                CreatePerson  = MmsHelper.GetUserName(),
                                CreateTime    = DateTime.Now,
                                ModifyPerson  = MmsHelper.GetUserName(),
                                ModifyTime    = DateTime.Now,
                                IsEnable      = 1
                            };
                            countC          = db.Insert("WMS_BN_RealStock", realStockModel).AutoMap(x => x.ID).Execute();
                            updateStockSal += String.Format(@" update WMS_BN_BillMain set ApproveState=2 where BillCode = '{0}'", documentNo);
                        }
                        //有则更新数量
                        else if (realStocks.Count.Equals(1))
                        {
                            updateStockSal = string.Format("UPDATE WMS_BN_RealStock SET RealStock = {0},TotalStock = {1},ModifyPerson = '{2}',ModifyTime = '{3}' WHERE ID = {4} ;\r\n",
                                                           realStocks[0].RealStock + stateList[0].QualifiedQuntity, realStocks[0].TotalStock + stateList[0].QualifiedQuntity, MmsHelper.GetUserName(), DateTime.Now, realStocks[0].ID);
                            updateStockSal += String.Format(@" update WMS_BN_BillMain set ApproveState=2 where BillCode = '{0}'", documentNo);
                        }
                        else
                        {
                            return(0);

                            msg = @"仓库物料种类繁多,可惜不知取哪一种!";
                        }

                        #endregion
                        ccc = db.Sql(updateStockSal).Execute() > 0;
                    }
                    if (aaa && countMain > 0 && countA > 0 && countB > 0 && ccc && countC > 0)
                    {
                        db.Commit();
                        msg = "审核单据成功";
                        return(1);
                    }
                    else
                    {
                        db.Rollback();
                        msg = "审核单据失败,请确认数据";
                        return(1);
                    }
                }
            }
        }
Example #25
0
        public void PostCreateProductRequest(dynamic data)
        {
            var list = data.list;

            foreach (dynamic item in list)
            {
                string ContractCode   = item["ContractCode"];
                string CreateType     = item["CreateType"];
                var    BoardOrBarData = new List <dynamic>();
                switch (CreateType)
                {
                case "板材":
                    BoardOrBarData = new PRS_BoardCreateMateService().GetDynamicList(ParamQuery.Instance().AndWhere("ContractCode", ContractCode));
                    break;

                case "棒材":
                    BoardOrBarData = new PRS_BarCreateMateService().GetDynamicList(ParamQuery.Instance().AndWhere("ContractCode", ContractCode));
                    break;

                case "车间":
                    int MainID = item["ID"];
                    BoardOrBarData = new MES_WorkshopPurchaseDetailService().GetDynamicList
                                     (
                        ParamQuery
                        .Instance()
                        .Select("InventoryCode,PurchaseQuantity as InventoryNum,Remark")
                        .From("MES_WorkshopPurchaseDetail")
                        .AndWhere("MainID", MainID)
                                     );
                    break;

                default:
                    break;
                }
                using (var db = Db.Context("Mms"))
                {
                    db.UseTransaction(true);
                    try
                    {
                        int MainID = new APS_ProductPurchaseMainService().GetModelList().Count > 0 ?
                                     new APS_ProductPurchaseMainService().GetModelList().Max(a => a.ID) + 1 : 1;
                        db.Insert("APS_ProductPurchaseMain")
                        .Column("ID", MainID)
                        .Column("PurchaseDocumentCode", MmsHelper.GetOrderNumber("APS_ProductPurchaseMain", "PurchaseDocumentCode", "SCQG", "", ""))
                        .Column("ContractCode", ContractCode)
                        .Column("DepartmentCode", "0202")
                        .Column("PurchaseDate", DateTime.Now)
                        .Column("IsEnable", 1)
                        .Column("BillState", 1)
                        .Column("PurchaseType", CreateType.Equals("板材") ? 2 : CreateType.Equals("棒材") ? 3 : CreateType.Equals("车间") ? 4 : 1)
                        .Column("CreateTime", DateTime.Now)
                        .Column("CreatePerson", MmsHelper.GetUserName()).Execute();
                        foreach (var item_board in BoardOrBarData)
                        {
                            double PurchaseQuantity = Convert.ToDouble(item_board.InventoryNum);
                            string InventoryCode    = item_board.New_InventoryCode;
                            string Remark           = item_board.Remark;
                            string unit             = "";
                            if (CreateType != "车间")
                            {
                                unit = item_board.Unit;
                            }

                            db.Insert("APS_ProductPurchaseDetail")
                            .Column("MainID", MainID)
                            //.Column("InventoryCode", InventoryCode)
                            .Column("InventoryCode", InventoryCode)
                            .Column("TotalRequestQuantity", Convert.ToInt32(PurchaseQuantity))
                            .Column("PurchaseQuantity", PurchaseQuantity)
                            .Column("StockQuantity", 0)
                            .Column("PurchaseState", 0)
                            .Column("DepartmentCode", "0202")
                            .Column("DepartmentName", "供应")
                            .Column("IsEnable", 1)
                            .Column("CreateTime", DateTime.Now)
                            .Column("Remark", Remark)
                            .Column("Unit", unit)
                            .Column("CreatePerson", MmsHelper.GetUserName()).ExecuteReturnLastId <int>();
                        }
                        db.Commit();
                    }
                    catch (Exception ex)
                    {
                        db.Rollback();
                        break;
                    }
                }
            }
        }
        public ActionResult Edit(string id)
        {
            var userName       = MmsHelper.GetUserName();
            var currentProject = MmsHelper.GetCurrentProject();
            var data           = new DischargeportApiController().GetEditMaster(id);
            var codeService    = new sys_codeService();

            var model = new
            {
                form       = data.form,
                scrollKeys = data.scrollKeys,
                urls       = new
                {
                    getdetail = "/api/mms/dischargeport/getdetail/",
                    getmaster = "/api/mms/dischargeport/geteditmaster/",
                    edit      = "/api/mms/dischargeport/edit/",
                    audit     = "/api/mms/dischargeport/audit/",
                    getrowid  = "/mms/dischargeport/getnewrowid/"
                },
                resx = new
                {
                    rejected    = "已撤消修改!",
                    editSuccess = "保存成功!",
                    auditReject = "信息已取消审核!",
                    auditPassed = "信息已通过审核"
                },
                dataSource = new
                {
                    Category           = codeService.Decode("InspectionWellCategory"),
                    Form               = codeService.Decode("DischargeportForm"),
                    AdministrativeArea = codeService.Decode("AdministrativeArea"),
                    FilmDoorMaterial   = codeService.Decode("FilmDoorMaterial"),
                    FilmDoor           = codeService.Decode("AdditionalFacilities"),
                    FacilityStatus     = codeService.Decode("FacilityStatus"),
                    warehouseItems     = new mms_warehouseService().GetWarehouseItems(currentProject)
                },

                defaultForm = new mms_dischargeport().Extend(new
                {
                    BillNo                  = id,
                    OrgX                    = "",
                    OrgY                    = "",
                    IdentificationCode      = "",
                    DrainageCode            = "",
                    ReceivingCode           = "",
                    Address                 = "",
                    Category                = codeService.GetDefaultCodeNew("InspectionWellCategory"),
                    Size                    = "",
                    FilmDoor                = codeService.GetDefaultCodeNew("AdditionalFacilities"),
                    FilmDoorMaterial        = codeService.GetDefaultCodeNew("FilmDoorMaterial"),
                    FilmDoorDiameter        = "",
                    FilmDoorToopElevation   = "",
                    FilmDoorBottomElevation = "",
                    SubmergedWaterLevel     = "",
                    TideCurve               = "",
                    BottomElevation         = "",
                    Form                    = codeService.GetDefaultCodeNew("DischargeportForm"),
                    FacilityStatus          = codeService.GetDefaultCodeNew("FacilityStatus"),
                    DataSources             = codeService.GetDefaultCodeNew("DataSources"),
                    ReportingUnit           = "",
                    Remark                  = "",
                    AdministrativeArea      = codeService.GetDefaultCodeNew("AdministrativeArea")
                }),

                setting = new
                {
                    postFormKeys = new string[] { "BillNo" }
                }
            };

            return(View(model));
        }
        public int AuditBillCode(string BillCode, out string msg)
        {
            msg = string.Empty;

            var     rowsAffected = 0;
            string  sql          = String.Format(@"SELECT t1.*,
       t3.ProductPurchaseCode,
       t4.Model,
       t4.Unit,
       t4.UnitPrice,
       t4.TotalPrice
FROM dbo.QMS_GoodsCheck t1
    INNER JOIN dbo.MES_GoodsInspection t2
        ON t1.PBillCode = t2.BillCode
           AND t2.IsEnable = 1
    INNER JOIN dbo.MES_PurchaseOrderMain t3
        ON t2.PurchaseOrderCode = t3.BillCode
           AND t3.IsEnable = 1
           AND t3.BillState = 2
    INNER JOIN dbo.MES_PurchaseOrderDetail t4
        ON t4.MainID = t3.ID
           AND t4.IsEnable = 1 where t1.BillCode='{0}'", BillCode);
            string  insertSql    = "";
            dynamic GoodsCheck   = db.Sql(sql).QueryMany <dynamic>();

            if (GoodsCheck.Count == 0)
            {
                msg = "请保存数据后审核";
                return(0);
            }
            if (GoodsCheck[0].BillState == 2)
            {
                msg = "单据已审核";
                return(0);
            }
            else
            {
                using (var trans = db.UseTransaction(true))
                {
                    #region

                    /*
                     * sql = string.Format(@"update QMS_GoodsCheck set BillState=2 where BillCode='{0}'", BillCode);
                     * rowsAffected = db.Sql(sql).Execute();
                     * var dno = MmsHelper.GetOrderNumber("WMS_BN_BillMain", "BillCode", "CGRK", "", "");
                     * insertSql = string.Format(@" INSERT dbo.WMS_BN_BillMain
                     * (
                     * ID,
                     * BillCode,
                     * BillType,
                     * ContractCode,
                     * ProjectName,
                     * SalesmanCode,
                     * Salesman,
                     * DepartmentID,
                     * DepartmentName,
                     * SupplierCode,
                     * SupplierName,
                     * WarehouseCode,
                     * WarehouseName,
                     * ApproveState,
                     * OrderBillCode,
                     * Remark,
                     * CreatePerson,
                     * CreateTime,
                     * ModifyPerson,
                     * ModifyTime,
                     * IsEnable
                     * )
                     * VALUES
                     * (   (select MAX(id)+1 from WMS_BN_BillMain),         -- ID - int                                         ID,
                     * '{0}',        -- BillCode - varchar(50)                                                             BillCode,
                     * ( SELECT Value FROM HBHC_Sys.dbo.sys_code WHERE Text='采购入库' ),                                  --BillType,
                     * '{1}',        -- ContractCode - varchar(50)                                                         ContractCode,
                     * '{2}',        -- ProjectName - varchar(50)                                                          ProjectName,
                     * '{3}',        -- SalesmanCode - varchar(50)                                                         SalesmanCode,
                     * '{4}',        -- Salesman - varchar(50)                                                             Salesman,
                     * '{5}',        -- DepartmentID - varchar(50)                                                         DepartmentID,
                     * '{6}',        -- DepartmentName - varchar(50)                                                       DepartmentName,
                     * '{7}',        -- SupplierCode - varchar(50)                                                         SupplierCode,
                     * '{8}',        -- SupplierName - varchar(50)                                                         SupplierName,
                     * '{9}',        -- WarehouseCode - varchar(50)                                                        WarehouseCode,
                     * '{10}',        -- WarehouseName - varchar(50)                                                       WarehouseName,
                     * '1',                                                                                            -- ApproveState,
                     * '{11}',        --OrderBillCode,
                     * '{12}',        --Remark,
                     * '{13}',        --CreatePerson,)
                     * GETDATE(), -- CreateTime,
                     * '{14}',           --ModifyPerson,
                     * GETDATE(),        -- ModifyTime,
                     * 1        -- IsEnable
                     * )", dno, GoodsCheck[0].ContractCode, GoodsCheck[0].ProjectName, GoodsCheck[0].SalesmanCode, GoodsCheck[0].Salesman, GoodsCheck[0].DepartmentID, GoodsCheck[0].DepartmentName, GoodsCheck[0].SupplierCode,
                     * GoodsCheck[0].SupplierName, GoodsCheck[0].WarehouseID, GoodsCheck[0].WarehouseName, GoodsCheck[0].ProductPurchaseCode, "", MmsHelper.GetUserName(), MmsHelper.GetUserName());
                     * insertSql += string.Format(@"INSERT INTO dbo.WMS_BN_BillDetail
                     * (
                     * BillCode,
                     * OrderBillCode,
                     * InventoryCode,
                     * InventoryName,
                     * Specs,
                     * Unit,
                     * MateNum,
                     * ConfirmNum,
                     * UnitPrice,
                     * TotalPrice,
                     * BatchCode,
                     * PBillCode,
                     * Remark,
                     * CreatePerson,
                     * CreateTime,
                     * ModifyPerson,
                     * ModifyTime,
                     * IsEnable
                     * )
                     * VALUES
                     * (   '{0}',        -- BillCode - varchar(50)
                     * '{1}',        -- OrderBillCode - varchar(50)
                     * N'{2}',       -- InventoryCode - nvarchar(50)
                     * N'{3}',       -- InventoryName - nvarchar(50)
                     * '{4}',        -- Specs - varchar(50)
                     * N'{5}',       -- Unit - nvarchar(10)
                     * '{6}',       -- MateNum - float
                     * '{7}',       -- ConfirmNum - float
                     * '{8}',       -- UnitPrice - float
                     * '{9}',       -- TotalPrice - float
                     * '{10}',        -- BatchCode - varchar(50)
                     * '{11}',        -- PBillCode - varchar(50)
                     * N'',       -- Remark - nvarchar(500)
                     * N'{12}',       -- CreatePerson - nvarchar(50)
                     * GETDATE(), -- CreateTime - datetime
                     * N'{13}',       -- ModifyPerson - nvarchar(50)
                     * GETDATE(), -- ModifyTime - datetime
                     * 1          -- IsEnable - int
                     * )", dno, GoodsCheck[0].ProductPurchaseCode, GoodsCheck[0].InventoryCode, GoodsCheck[0].InventoryName, GoodsCheck[0].Model, GoodsCheck[0].Unit, GoodsCheck[0].QualifiedQuantity,
                     * GoodsCheck[0].QualifiedQuantity, GoodsCheck[0].UnitPrice, GoodsCheck[0].TotalPrice, GoodsCheck[0].BatchCode, GoodsCheck[0].BillCode, MmsHelper.GetUserName(), MmsHelper.GetUserName());
                     *
                     * var res = db.Sql(insertSql).Execute();
                     * if (rowsAffected > 0 && res == 2)
                     * {
                     *  msg = "检验记录审核成功";
                     *  trans.Commit();
                     *  return rowsAffected;
                     * }
                     * else
                     * {
                     *  trans.Rollback();
                     *  msg = "检验记录审核失败";
                     *  return 0;
                     * }
                     */
                    #endregion

                    string   sqlA  = string.Format(@"update QMS_GoodsCheck set BillState=2 where BillCode='{0}'", BillCode);
                    string   bCode = MmsHelper.GetOrderNumber("WMS_BN_BillMain", "BillCode", "CGRK", "", "");
                    DateTime newDT = DateTime.Now;
                    string   sqlB  = WinFormClientService.GetInsertSQL(new WMS_BN_BillMain()
                    {
                        ID             = db.Sql("select MAX(id)+1 from WMS_BN_BillMain").QuerySingle <int>(),
                        BillCode       = bCode,
                        BillType       = db.Sql("SELECT Value FROM HBHC_Sys.dbo.sys_code WHERE Text='采购入库'").QuerySingle <int>(),
                        ContractCode   = GoodsCheck[0].ContractCode,
                        ProjectName    = GoodsCheck[0].ProjectName,
                        SalesmanCode   = GoodsCheck[0].SalesmanCode,
                        Salesman       = GoodsCheck[0].Salesman,
                        DepartmentID   = GoodsCheck[0].DepartmentID,
                        DepartmentName = GoodsCheck[0].DepartmentName,
                        SupplierCode   = GoodsCheck[0].SupplierCode,
                        SupplierName   = GoodsCheck[0].SupplierName,
                        WarehouseCode  = GoodsCheck[0].WarehouseID,
                        WarehouseName  = GoodsCheck[0].WarehouseName,
                        ApproveState   = "1",
                        OrderBillCode  = GoodsCheck[0].ProductPurchaseCode,
                        Remark         = string.Empty,
                        CreatePerson   = MmsHelper.GetUserName(),
                        CreateTime     = newDT,
                        ModifyPerson   = MmsHelper.GetUserName(),
                        ModifyTime     = newDT,
                        IsEnable       = 1
                    });
                    string sqlC = WinFormClientService.GetInsertSQL(new WMS_BN_BillDetail()
                    {
                        BillCode      = bCode,
                        OrderBillCode = GoodsCheck[0].ProductPurchaseCode,
                        InventoryCode = GoodsCheck[0].InventoryCode,
                        InventoryName = GoodsCheck[0].InventoryName,
                        Specs         = GoodsCheck[0].Model,
                        Unit          = GoodsCheck[0].Unit,
                        MateNum       = GoodsCheck[0].QualifiedQuantity,
                        ConfirmNum    = GoodsCheck[0].QualifiedQuantity,
                        UnitPrice     = GoodsCheck[0].UnitPrice,
                        TotalPrice    = GoodsCheck[0].TotalPrice,
                        BatchCode     = GoodsCheck[0].BatchCode,
                        PBillCode     = GoodsCheck[0].BillCode,
                        Remark        = string.Empty,
                        CreatePerson  = MmsHelper.GetUserName(),
                        CreateTime    = newDT,
                        ModifyPerson  = MmsHelper.GetUserName(),
                        ModifyTime    = newDT,
                        IsEnable      = 1
                    });

                    string sqlTemp = string.Format(@"
SELECT tbB.* FROM MES_PurchaseOrderMain tbA LEFT JOIN MES_PurchaseOrderDetail tbB ON tbA.ID = tbB.MainID AND tbB.IsEnable = 1 WHERE tbA.IsEnable = 1
AND tbB.InventoryCode = '{0}'
AND tbA.BillCode IN (
SELECT PurchaseOrderCode FROM dbo.MES_GoodsInspection WHERE IsEnable = 1 AND BillCode = '{1}'
)
", GoodsCheck[0].InventoryCode, GoodsCheck[0].PBillCode);
                    MES_PurchaseOrderDetail mES_PurchaseOrderDetail = db.Sql(sqlTemp).QuerySingle <MES_PurchaseOrderDetail>();

                    if (mES_PurchaseOrderDetail != null)
                    {
                        string sqlD = WinFormClientService.GetUpdateSQL(mES_PurchaseOrderDetail, new
                        {
                            ModifyPerson    = MmsHelper.GetUserName(),
                            ModifyTime      = newDT,
                            CheckedQuantity = (mES_PurchaseOrderDetail.CheckedQuantity ?? 0) + (GoodsCheck[0].QualifiedQuantity ?? 0)
                        });

                        bool tempA = db.Sql(sqlA).Execute() > 0;
                        bool tempB = db.Sql(sqlB).Execute() > 0;
                        bool tempC = db.Sql(sqlC).Execute() > 0;
                        bool tempD = db.Sql(sqlD).Execute() > 0;

                        bool result = tempA && tempB && tempC && tempD;
                        if (result)
                        {
                            trans.Commit();
                            msg = "检验记录审核成功";
                            return(1);
                        }
                        else
                        {
                            trans.Rollback();
                            msg = "检验记录审核失败";
                            return(0);
                        }
                    }
                    else
                    {
                        trans.Rollback();
                        msg = "检验记录审核失败";
                        return(0);
                    }
                }
            }
        }
        public int AuditBillCode(string mainID, out string msg)
        {
            msg = string.Empty;
            var    rowsAffected = 0;
            string sql          = String.Format(@"  select * FROM MES_PurchaseOrderMain t1 left join MES_PurchaseOrderDetail t2 on t1.ID=t2.MainID where t1.ID='{0}'", mainID);
            //if sql.Contains
            var resList = db.Sql(sql).QueryMany <dynamic>();

            if (resList[0].BillState == 2)
            {
                msg = "单据已审核";
                return(0);
            }
            else if (resList.Count == 0)
            {
                msg = "请先保存数据再审核";
                return(0);
            }
            else
            {
                int isFalse = 0;
                int res     = 0;
                try
                {
                    db.UseTransaction(true);
                    sql          = string.Format(@"update MES_PurchaseOrderMain set BillState=2 where BillCode='{0}'", resList[0].BillCode);
                    rowsAffected = db.Sql(sql).Execute();
                    if (rowsAffected > 0)
                    {
                        msg = "采购订单审核成功";
                        sql = String.Format(@"   select t2.ID as id from MES_PurchaseOrderMain t1 left join APS_ProductPurchaseMain t2 on t1.ProductPurchaseCode=t2.PurchaseDocumentCode 
 where t1.ID='{0}'", mainID);
                        string mID = db.Sql(sql).QuerySingle <string>();
                        sql = "";
                        foreach (var item in resList)
                        {
                            res++;
                            sql = sql + string.Format(@" update APS_ProductPurchaseDetail set PurchaseState=2 where MainID='{0}' and InventoryCode='{1}' ", mID, item.InventoryCode);
                        }
                        rowsAffected = db.Sql(sql).Execute();

                        //遍历采购订单明细表,生成采购过程数据

                        foreach (var item in resList)
                        {
                            //item.MatchTableID
                            MES_BN_MatchingTableDetail MatchingTable = new MES_BN_MatchingTableDetailService().GetModel(ParamQuery.Instance().AndWhere("IsEnable", 1).AndWhere("ID", item.MatchTableID));
                            MatchingTable = MatchingTable ?? new MES_BN_MatchingTableDetail();
                            string sqlMaterial          = string.Format(@" SELECT MaterialCode from dbo.PRS_Process_BOM WHERE InventoryCode='{0}' AND IsEnable=1", item.InventoryCode);
                            Mes_PurchaseProcess process = new Mes_PurchaseProcess();
                            process.ContractCode = item.ContractCode;
                            //process.ProductID = MatchingTable.ID ?? 0;
                            //process.ProductID = item.ProcessCode;
                            process.UserCode = item.UserCode;
                            if (MatchingTable.ProjectDetailID != null)
                            {
                                process.ProductID = MatchingTable.ProjectDetailID;
                            }
                            process.SaleMan         = item.SaleMan;
                            process.InventoryCode   = item.InventoryCode;
                            process.InventoryName   = item.InventoryName;
                            process.Model           = item.Model;
                            process.MaterialCode    = db.Sql(sqlMaterial).QuerySingle <string>();
                            process.SupplierCode    = item.SupplierCode;
                            process.Quantity        = item.OrderQuantity;
                            process.PurchaseCode    = item.BillCode;
                            process.PrchaseDate     = item.OrderDate;
                            process.IsEnable        = 1;
                            process.PlanArrivelDate = item.PlanArrivelDate;
                            process.CreatePerson    = MmsHelper.GetUserName();
                            process.CreateTime      = DateTime.Now;
                            process.ModifyPerson    = MmsHelper.GetUserName();
                            process.ModifyTime      = DateTime.Now;
                            var detailID = db.Insert <Mes_PurchaseProcess>("Mes_PurchaseProcess", process)
                                           .AutoMap(x => x.ID).ExecuteReturnLastId <int>();
                        }

                        if (rowsAffected == res)
                        {
                            msg = "操作成功";
                            db.Commit();
                            return(1);
                        }
                        else
                        {
                            isFalse++;
                            return(0);
                        }



                        //return rowsAffected;
                    }
                    else
                    {
                        msg = "采购订单审核失败";
                        db.Rollback();
                        return(0);
                    }
                }
                catch (Exception ex)
                {
                    msg = "采购订单审核失败";
                    db.Rollback();
                    return(0);
                }

                //sql = string.Format(@"update APS_ProductPurchaseMain set BillState=2 where PurchaseDocumentCode='{0}'", res.ProductPurchaseCode);
            }
        }
        public ResultModel SaveBlankingPlanData(dynamic data)
        {
            try
            {
                //List<int> productIDs = new List<int>();
                //List<int> pbomIDs = new List<int>();
                //
                //foreach (var item in data)
                //{
                //    productIDs.Add(data[0].product_ID);
                //    pbomIDs.Add(data[0].pbom_ID);
                //}
                //
                //List<PMS_BN_ProjectDetail> listA = db.Sql(string.Format(@"SELECT * FROM dbo.PMS_BN_ProjectDetail WHERE IsEnable = 1 AND ID IN ({0})", string.Join(",", productIDs))).QueryMany<PMS_BN_ProjectDetail>();
                //List<PRS_Process_BOM> listB = db.Sql(string.Format(@"SELECT * FROM dbo.PRS_Process_BOM WHERE IsEnable = 1 AND ID IN ({0})", string.Join(",", pbomIDs))).QueryMany<PRS_Process_BOM>();

                StringBuilder sb = new StringBuilder();

                string   savantCode = MmsHelper.GetOrderNumber("MES_SavantManage", "SavantCode", "ZJJ", "", "");
                DateTime newDT      = DateTime.Now;

                int partTotalNum = 0;
                foreach (var item in data)
                {
                    //PMS_BN_ProjectDetail product = listA.Single(i => i.ID.Equals(item.product_ID));
                    //PRS_Process_BOM pbom = listB.Single(i => i.ID.Equals(item.pbom_ID));

                    //零件总数
                    partTotalNum += ((int?)item.BlankingNum ?? 0);

                    sb.Append(WinFormClientService.GetInsertSQL(new MES_SavantAndPBom()
                    {
                        SavantCode   = savantCode,
                        ProcessBomID = item.pbom_ID,
                        BlankingNum  = item.BlankingNum,
                        CreatePerson = MmsHelper.GetUserName(),
                        CreateTime   = newDT,
                        ModifyPerson = MmsHelper.GetUserName(),
                        ModifyTime   = newDT
                    }));
                }

                string iCode = new SYS_PartService().GetSysPartAutoMaxICode("030502");

                sb.Append(WinFormClientService.GetInsertSQL(new MES_SavantManage()
                {
                    SavantCode    = savantCode,
                    ProcessBomID  = data[0].pbom_ID,
                    SpareMateSize = data[0].BlankingSize,
                    SpareMateNum  = partTotalNum,//备料数量
                    IsEnable      = 1,
                    CreatePerson  = MmsHelper.GetUserName(),
                    CreateTime    = newDT,
                    ModifyPerson  = MmsHelper.GetUserName(),
                    ModifyTime    = newDT,
                    SplitNum      = 1,//切分数量
                    InventoryCode = iCode
                }));

                sb.Append(WinFormClientService.GetInsertSQL(new SYS_Part()
                {
                    InventoryCode = iCode,
                    InventoryName = data[0].SetMateName,
                    Model         = data[0].BlankingSize,
                    IsEnable      = 1,
                    CreatePerson  = MmsHelper.GetUserName(),
                    CreateTime    = newDT,
                    ModifyPerson  = MmsHelper.GetUserName(),
                    ModifyTime    = newDT
                }));

                string sql = sb.ToString();

                db.UseTransaction(true);
                bool result = db.Sql(sql).Execute() > 0;
                if (result)
                {
                    db.Commit();
                }
                else
                {
                    db.Rollback();
                }

                return(new ResultModel()
                {
                    Result = result,
                    Msg = result ? @"操作成功!" : @"操作失败!"
                });
            }
            catch (Exception ex)
            {
                return(new ResultModel()
                {
                    Result = false,
                    Msg = ex.Message
                });
            }
        }
        public int AuditBillCode(string mainID, out string msg)
        {
            msg = string.Empty;
            var    rowsAffected = 0;
            string sql          = String.Format(@"  select BillState FROM PRS_BlankingRecord  where ID='{0}'", mainID);
            var    state        = db.Sql(sql).QuerySingle <int>();

            if (state == 2)
            {
                msg = "单据已审核";
                return(0);
            }
            else
            {
                try
                {
                    using (db.UseTransaction(true))
                    {
                        int isFalse = 0;
                        sql          = string.Format(@"update PRS_BlankingRecord set BillState=2 where ID='{0}'", mainID);
                        rowsAffected = db.Sql(sql).Execute();
                        if (rowsAffected > 0)
                        {
                            msg = "生产请购单据审核成功";
                            var pQuery = ParamQuery.Instance().AndWhere("IsEnable", 1).AndWhere("MainID", mainID);
                            List <PRS_BlankingResult> resList = new PRS_BlankingResultService().GetModelList(pQuery);
                            foreach (var result in resList)
                            {
                                for (int i = 0; i < result.PartBlankingQuntity; i++)
                                {
                                    pQuery = ParamQuery.Instance().AndWhere("IsEnable", 1).AndWhere("MainID", result.ID);
                                    List <PRS_BlankingPlateDetail> plateList = new PRS_BlankingPlateDetailService().GetModelList(pQuery);
                                    foreach (var plate in plateList)
                                    {
                                        int res = db.Insert("Mes_BlankingResult")
                                                  .Column("BlankingResultID", plate.MainID)
                                                  .Column("BlankingQuantity", 1)
                                                  .Column("IsEnable", 1)
                                                  .Column("Ispicking", 0)
                                                  .Column("BiankingSize", plate.PlateSize)
                                                  .Column("CreateTime", DateTime.Now)
                                                  .Column("CreatePerson", MmsHelper.GetUserName())
                                                  .Column("ModifyTime", DateTime.Now)
                                                  .Column("ModifyPerson", MmsHelper.GetUserName()).Execute();
                                        if (res <= 0)
                                        {
                                            isFalse++;
                                        }
                                    }
                                }
                            }
                            //return rowsAffected;
                        }
                        else
                        {
                            msg = "生产请购单据审核失败,请先保存数据后审核";
                            db.Rollback();
                            return(0);
                        }
                        if (isFalse > 0)
                        {
                            db.Rollback();
                            return(0);
                        }
                        else
                        {
                            db.Commit();
                            msg = "生产请购单据审核成功";
                            return(1);
                        }
                    }
                }
                catch
                {
                    msg = "生产请购单据审核失败";
                    return(0);
                }
            }
        }