Exemplo n.º 1
0
 public void SetMaterial(List <AscmDeliBatSumDetail> list)
 {
     if (list != null && list.Count > 0)
     {
         List <AscmMaterialItem> listMaterialItem = new List <AscmMaterialItem>();
         var    materialIds = list.Select(P => P.materialId).Distinct();
         var    count       = materialIds.Count();
         string ids         = string.Empty;
         for (int i = 0; i < count; i++)
         {
             if (!string.IsNullOrEmpty(ids))
             {
                 ids += ",";
             }
             ids += materialIds.ElementAt(i);
             if ((i + 1) % 500 == 0 || (i + 1) == count)
             {
                 if (!string.IsNullOrEmpty(ids))
                 {
                     string hql = "from AscmMaterialItem where id in (" + ids + ")";
                     List <AscmMaterialItem> _listMaterialItem = AscmMaterialItemService.GetInstance().GetList(hql);
                     if (_listMaterialItem != null)
                     {
                         listMaterialItem.AddRange(_listMaterialItem);
                     }
                 }
                 ids = string.Empty;
             }
         }
         if (listMaterialItem.Count > 0)
         {
             list.ForEach(P => P.ascmMaterialItem = listMaterialItem.Find(T => T.id == P.materialId));
         }
     }
 }
Exemplo n.º 2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                YnFrame.Dal.Entities.YnUser ynUser = YnFrame.Web.FormsAuthenticationService.GetInstance().GetTicketUserData();
                if (ynUser == null)
                {
                    throw new Exception("用户错误!");
                }
                AscmUserInfo ascmUserInfo = AscmUserInfoService.GetInstance().Get(ynUser.userId);
                string       supplierName = "";
                if (ascmUserInfo.extExpandType == "erp")
                {
                    AscmUserInfoService.GetInstance().SetSupplier(ascmUserInfo);
                    if (ascmUserInfo.ascmSupplier != null)
                    {
                        supplierName = ascmUserInfo.ascmSupplier.name;
                    }
                }
                //if (ascmUserInfo.extExpandType != "erp")
                //    throw new Exception("供应商用户错误!");
                //AscmUserInfoService.GetInstance().SetSupplier(ascmUserInfo);
                //if (ascmUserInfo.ascmSupplier == null)
                //    throw new Exception("供应商用户错误!");

                //提取数据
                int id = 0;

                List <AscmMaterialItem> list = new List <AscmMaterialItem>();
                if (!string.IsNullOrEmpty(Request.QueryString["id"]) && int.TryParse(Request.QueryString["id"], out id))
                {
                    AscmMaterialItem ascmMaterialItem = AscmMaterialItemService.GetInstance().Get(id);
                    if (ascmMaterialItem != null)
                    {
                        //条码
                        System.IO.MemoryStream memoryStream = new System.IO.MemoryStream();
                        if (ascmMaterialItem.docNumber != null)
                        {
                            #region Code128
                            MideaAscm.Code.BarCode128 barCode128 = new Code.BarCode128();
                            barCode128.TitleFont   = new System.Drawing.Font("宋体", 10);
                            barCode128.HeightImage = 50;
                            System.Drawing.Bitmap bitmap = barCode128.GetCodeImage(ascmMaterialItem.docNumber, ascmMaterialItem.docNumber, Code.BarCode128.Encode.Code128B);
                            bitmap.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Gif);
                            bitmap.Dispose();
                            #endregion
                        }
                        ascmMaterialItem.materialBarcode = memoryStream.ToArray();
                        list.Add(ascmMaterialItem);
                    }
                }

                ReportViewer1.ProcessingMode         = Microsoft.Reporting.WebForms.ProcessingMode.Local;
                ReportViewer1.LocalReport.ReportPath = Server.MapPath("MaterialReport.rdlc");
                ReportDataSource rds1 = new ReportDataSource();
                rds1.Name  = "DataSet1";
                rds1.Value = list;
                ReportViewer1.LocalReport.DataSources.Clear();
                ReportViewer1.LocalReport.DataSources.Add(rds1);

                string companpyTitle = "美的中央空调";
                string title         = companpyTitle + "供应商送货物料条码";

                ReportParameter[] reportParameters = new ReportParameter[] {
                    new ReportParameter("ReportParameter_SupplierName", supplierName)
                };

                ReportViewer1.LocalReport.SetParameters(reportParameters);
                ReportViewer1.LocalReport.Refresh();
            }
        }
Exemplo n.º 3
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                YnFrame.Dal.Entities.YnUser ynUser = YnFrame.Web.FormsAuthenticationService.GetInstance().GetTicketUserData();
                if (ynUser == null)
                {
                    throw new Exception("用户错误!");
                }
                AscmUserInfo ascmUserInfo = AscmUserInfoService.GetInstance().Get(ynUser.userId);
                string       supplierName = "";
                if (ascmUserInfo.extExpandType == "erp")
                {
                    AscmUserInfoService.GetInstance().SetSupplier(ascmUserInfo);
                    if (ascmUserInfo.ascmSupplier != null)
                    {
                        supplierName = ascmUserInfo.ascmSupplier.name;
                    }
                }

                //提取数据
                List <AscmMaterialItem> sumList = new List <AscmMaterialItem>();
                //最后一个装箱
                AscmMaterialItem lastDetail    = new AscmMaterialItem();
                string           ids           = Request.QueryString["ids"];
                string           unitQuantitys = Request.QueryString["unitQuantitys"];
                string           totalNumbers  = Request.QueryString["totalNumbers"];
                bool             isUnitPrint   = Boolean.Parse(Request.QueryString["isUnitPrint"]);

                string[] listId           = ids.Split(',');
                string[] listUnitQuantity = unitQuantitys.Split(',');
                string[] listTotalNumber  = totalNumbers.Split(',');

                List <AscmMaterialItem> list = new List <AscmMaterialItem>();
                for (int i = 0; i < listId.Count(); i++)
                {
                    AscmMaterialItem          ascmMaterialItem          = AscmMaterialItemService.GetInstance().Get(Int32.Parse(listId[i]));
                    AscmContainerUnitQuantity ascmContainerUnitQuantity = AscmContainerUnitQuantityService.GetInstance().Get(Int32.Parse(listUnitQuantity[i]));
                    ascmMaterialItem.container               = ascmContainerUnitQuantity.container;
                    ascmMaterialItem.unitQuantity            = ascmContainerUnitQuantity.unitQuantity;
                    ascmMaterialItem.containerUnitQuantityId = ascmContainerUnitQuantity.id;
                    ascmMaterialItem.totalNumber             = Decimal.Parse(listTotalNumber[i]);
                    list.Add(ascmMaterialItem);
                }
                if (!string.IsNullOrEmpty(ids))
                {
                    if (list != null && list.Count() > 0)
                    {
                        foreach (AscmMaterialItem ascmMaterialItem in list)
                        {
                            //条码
                            System.IO.MemoryStream memoryStream = new System.IO.MemoryStream();
                            if (ascmMaterialItem.docNumber != null)
                            {
                                #region Code128
                                MideaAscm.Code.BarCode128 barCode128 = new Code.BarCode128();
                                barCode128.TitleFont   = new System.Drawing.Font("宋体", 10);
                                barCode128.HeightImage = 50;
                                System.Drawing.Bitmap bitmap = barCode128.GetCodeImage(ascmMaterialItem.docNumber, ascmMaterialItem.docNumber, Code.BarCode128.Encode.Code128B);
                                bitmap.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Gif);
                                bitmap.Dispose();
                                #endregion
                            }
                            ascmMaterialItem.materialBarcode = memoryStream.ToArray();
                            //如果是总数打印,单元数=总数
                            if (!isUnitPrint)
                            {
                                ascmMaterialItem.unitQuantity = ascmMaterialItem.totalNumber;
                            }

                            decimal totalNumber  = ascmMaterialItem.totalNumber;          //总数量
                            decimal unitQuantity = ascmMaterialItem.unitQuantity;         //单元数
                            //decimal unitQuantity = 10;
                            decimal count = decimal.Truncate(totalNumber / unitQuantity); //箱数量>=0
                            decimal rest  = totalNumber % unitQuantity;                   //剩余数量>=0

                            //设置装箱数 2015.3.26

                            //总数 < 单元数 ,仅有一个箱子,总数 = 剩余数量
                            if (count == 0)
                            {
                                count = 1;
                            }
                            else
                            {
                                //有剩余数量,多出一箱
                                if (rest != 0)
                                {
                                    count = count + 1;
                                }
                            }
                            for (int i = 0; i < count; i++)
                            {
                                //最后一个为剩余数量
                                if (i == count - 1 && rest != 0)
                                {
                                    lastDetail.materialBarcode = ascmMaterialItem.materialBarcode;
                                    lastDetail.docNumber       = ascmMaterialItem.docNumber;
                                    lastDetail.description     = ascmMaterialItem.description;
                                    lastDetail.unit            = ascmMaterialItem.unit;
                                    lastDetail.unitQuantity    = rest;
                                    sumList.Add(lastDetail);
                                }
                                else
                                {
                                    sumList.Add(ascmMaterialItem);
                                }
                            }
                        }
                    }
                }

                ReportViewer1.ProcessingMode         = Microsoft.Reporting.WebForms.ProcessingMode.Local;
                ReportViewer1.LocalReport.ReportPath = Server.MapPath("SupplierMaterialReport.rdlc");
                ReportDataSource rds1 = new ReportDataSource();
                rds1.Name  = "DataSet1";
                rds1.Value = sumList;
                ReportViewer1.LocalReport.DataSources.Clear();
                ReportViewer1.LocalReport.DataSources.Add(rds1);

                string companpyTitle = "美的中央空调";
                string title         = companpyTitle + "供应商送货物料条码";

                ReportParameter[] reportParameters = new ReportParameter[] {
                    new ReportParameter("ReportParameter_SupplierName", supplierName)
                };

                ReportViewer1.LocalReport.SetParameters(reportParameters);
                ReportViewer1.LocalReport.Refresh();
            }
        }