Пример #1
0
        public bool UpdateInfo(string fields, long id)
        {
            InventoryNoticeOrderInfo info = dal.GetInfo(id);

            if (info.Status != (int)InventoryOrderStatusConstants.CREATED)
            {
                throw new Exception("MC:0x00000683");///状态必须为已创建
            }
            return(dal.UpdateInfo(fields, id) > 0 ? true : false);
        }
Пример #2
0
        public bool LogicDeleteInfo(long id, string loginUser)
        {
            InventoryNoticeOrderInfo info = dal.GetInfo(id);

            if (info.Status != (int)InventoryOrderStatusConstants.CREATED)
            {
                throw new Exception("MC:0x00000683");///状态必须为已创建
            }
            return(dal.LogicDelete(id, loginUser) > 0 ? true : false);
        }
Пример #3
0
 public long InsertInfo(InventoryNoticeOrderInfo info)
 {
     info.OrderCode = new SeqDefineDAL().GetCurrentCode("ORDER_CODE");
     info.SapZldat  = DateTime.Now;
     return(dal.Add(info));
 }
Пример #4
0
        /// <summary>
        /// 完成
        /// </summary>
        /// <param name="id"></param>
        /// <param name="loginUser"></param>
        /// <returns></returns>
        public bool GenerationdifferenceInfos(List <string> rowsKeyValues, string loginUser)
        {
            List <InventoryNoticeOrderInfo> inventoryNoticeOrderInfos = dal.GetList("[ID] IN (" + string.Join(",", rowsKeyValues) + ") and [STATUS] = " + (int)InventoryOrderStatusConstants.CONFIRMED + "", string.Empty);

            if (inventoryNoticeOrderInfos.Count == 0)
            {
                throw new Exception("MC:0x00000376");///已确认状态才能进行完成操作
            }
            StringBuilder stringBuilder = new StringBuilder();
            string        check         = new ConfigBLL().GetValueByCode("ENABLE_SAP_INVENTORY_REPORT_FLAG");

            if (check == "true")
            {
                List <InventoryNoticeOrderInfo> infos = new List <InventoryNoticeOrderInfo>();

                List <InventoryOrderPartInfo> orderPartInfos = new InventoryOrderPartDAL().GetList("[ORDER_FID] IN ('" + string.Join("','", inventoryNoticeOrderInfos.Select(d => d.Fid).ToArray()) + "')", string.Empty);

                List <InventoryPartBarcodeInfo> inventoryPartBarcodes = new InventoryPartBarcodeDAL().GetList("[PART_FID] IN ('" + string.Join("','", orderPartInfos.Select(d => d.Fid).ToArray()) + "')", string.Empty);
                Dictionary <string, Guid>       keyValues             = new Dictionary <string, Guid>();

                List <MaintainPartsInfo> maintainParts = new MaintainPartsDAL().GetList("[PART_NO] IN ('" + string.Join("','", orderPartInfos.Select(d => d.PartNo).ToArray()) + "')", string.Empty);

                foreach (var item in inventoryNoticeOrderInfos)
                {
                    ///生成SAP盘点报告中间表数据
                    Guid guid = Guid.NewGuid();
                    if (keyValues.Keys.Contains <string>(item.SapIblnr) == false)
                    {
                        keyValues.Add(item.SapIblnr, guid);
                    }

                    List <InventoryOrderPartInfo> partInfos = orderPartInfos.Where(d => d.OrderFid == item.Fid).ToList();
                    foreach (var items in partInfos)
                    {
                        string PartName = maintainParts.FirstOrDefault(d => d.PartNo == items.PartNo).PartCname;
                        stringBuilder.Append("insert into [LES].[TI_IFM_SAP_INVENTORY_CHECK_REPORT] ([FID],[LOG_FID],[IBLNR],[LGORT],[REMARKS],[MATNR],[MENGE],[ZLDAT],[AQTY],[DQTY],[PROCESS_FLAG],[PROCESS_TIME],[VALID_FLAG],[CREATE_USER],[CREATE_DATE])values(");
                        string partQty = string.Empty;
                        if (items.PartQty == null)
                        {
                            partQty = "NULL";
                        }
                        else
                        {
                            partQty = ((int)items.PartQty).ToString();
                        }
                        string sapDqty = string.Empty;
                        if (items.SapDqty == null)
                        {
                            sapDqty = "NULL";
                        }
                        else
                        {
                            sapDqty = ((int)items.SapDqty).ToString();
                        }

                        stringBuilder.Append("newid(),N'" + keyValues[item.SapIblnr] + "',N'" + item.SapIblnr + "',N'" + item.SapLgort + "',N'" + item.Comments + "',N'" + items.PartNo + "'," + partQty + ",N'" + item.SapZldat + "',N'" + items.SapMenge + "'," + sapDqty + ",N'" + item.Status + "',N'" + item.ModifyDate + "',1,N'" + loginUser + "',GETDATE());\n\n");

                        InventoryPartBarcodeInfo barcodeInfo = inventoryPartBarcodes.Where(d => d.PartFid == items.Fid).FirstOrDefault();
                        if (barcodeInfo != null)
                        {
                            if (barcodeInfo.PartQty != items.DifferenceQty)
                            {
                                stringBuilder.Append("update [LES].[TT_WMM_INVENTORY_PART_BARCODE] set [PART_QTY] = N'" + items.DifferenceQty + "',[MODIFY_DATE] = GETDATE(),[MODIFY_USER] = N'" + loginUser + "' where [ID] = " + barcodeInfo.Id + ";\n\n");
                            }
                        }
                    }

                    ///新数据排除盘点计划号一致的
                    InventoryNoticeOrderInfo InventoryNoticeOrderInfos = infos.Where(d => d.SapIblnr == item.SapIblnr).FirstOrDefault();
                    if (InventoryNoticeOrderInfos == null)
                    {
                        infos.Add(item);
                    }
                }
                List <InventoryNoticeOrderInfo> inventoryNotices = dal.GetList(" [ID] not in  (" + string.Join(",", rowsKeyValues) + ") and [STATUS] = " + (int)InventoryOrderStatusConstants.CONFIRMED + " and [SAP_IBLNR] in ('" + string.Join("','", inventoryNoticeOrderInfos.Select(d => d.SapIblnr).ToArray()) + "')", string.Empty);
                foreach (var item in infos)
                {
                    List <InventoryNoticeOrderInfo> inventoryNoticeOrders = inventoryNotices.Where(d => d.SapIblnr == item.SapIblnr).ToList();
                    List <InventoryNoticeOrderInfo> inventories           = inventoryNotices.Where(d => d.SapIblnr == item.SapIblnr && d.Status == item.Status).ToList();
                    if (inventoryNoticeOrders.Count == inventories.Count)
                    {
                        //生成盘点报告发送任务
                        string targetSystem = "SAP";
                        string methodCode   = "LES-WMM-071";
                        string keyValue     = item.SapIblnr;
                        stringBuilder.AppendFormat(BLL.LES.CommonBLL.GetCreateOutboundLogSql(targetSystem, keyValues[item.SapIblnr], methodCode, keyValue, loginUser));
                    }
                }
            }
            using (TransactionScope trans = new TransactionScope())
            {
                if (!string.IsNullOrEmpty(stringBuilder.ToString()))
                {
                    stringBuilder.Append("\n\n update [LES].[TT_WMM_INVENTORY_NOTICE_ORDER] set [STATUS] = " + (int)InventoryOrderStatusConstants.COMPLETED + ",[MODIFY_DATE] = GETDATE(),[MODIFY_USER] = N'" + loginUser + "' where [VALID_FLAG] = 1 and [ID] IN (" + string.Join(",", rowsKeyValues) + ") ");
                    CommonDAL.ExecuteNonQueryBySql(stringBuilder.ToString());
                }
                trans.Complete();
            }

            return(true);
        }