コード例 #1
0
        public CurrentDeliBatSum GetCurrentDeliBatSum(string warehouseId = "W312材料")
        {
            CurrentDeliBatSum currentDeliBatSum = new CurrentDeliBatSum();
            string            status            = AscmDeliBatSumMain.StatusDefine.inPlant;

            try
            {
                AscmContainerDelivery ascmContainerDelivery = AscmContainerDeliveryService.GetInstance().GetCurrent(warehouseId);
                if (ascmContainerDelivery == null)
                {
                    return(null);
                }
                //string whereOther = " warehouseId='" + warehouseId + "' and status='" + status + "' and id in (select batSumMainId from AscmContainerDelivery where )";
                string whereOther = " id=" + ascmContainerDelivery.batSumMainId;
                List <AscmDeliBatSumMain> listAscmDeliBatSumMain = AscmDeliBatSumMainService.GetInstance().GetList("id", "desc", "", whereOther);
                if (listAscmDeliBatSumMain != null && listAscmDeliBatSumMain.Count() > 0)
                {
                    AscmDeliBatSumMain ascmDeliBatSumMain = listAscmDeliBatSumMain[0];// listAscmDeliBatSumMain.OrderByDescending(item => item.toPlantTime).First();
                    currentDeliBatSum.supplierName               = ascmDeliBatSumMain.ascmSupplier.ascmSupplierAddress.vendorSiteCode;
                    currentDeliBatSum.deliBatSumNo               = ascmDeliBatSumMain.docNumber;
                    currentDeliBatSum.containerNumber            = ascmDeliBatSumMain.containerNumber;
                    currentDeliBatSum.toPlantTime                = ascmContainerDelivery.modifyTime;
                    currentDeliBatSum.inWarehouseContainerNumber = ascmDeliBatSumMain.inWarehouseContainerNumber;
                    List <AscmDeliBatSumDetail>  listAscmDeliBatSumDetail  = AscmDeliBatSumDetailService.GetInstance().GetListByMainId(ascmDeliBatSumMain.id);
                    List <AscmContainerDelivery> listAscmContainerDelivery = AscmContainerDeliveryService.GetInstance().GetListByDeliverySumMainId(ascmDeliBatSumMain.id);
                    listAscmContainerDelivery = listAscmContainerDelivery.Where(item => item.status == AscmContainerDelivery.StatusDefine.inWarehouseDoor).ToList();
                    if (listAscmDeliBatSumDetail != null && listAscmDeliBatSumDetail.Count() > 0)
                    {
                        List <CurrentDeliBatSumList> listCurrentDeliBatSumList = new List <CurrentDeliBatSumList>();
                        foreach (AscmDeliBatSumDetail ascmDeliBatSumDetail in listAscmDeliBatSumDetail)
                        {
                            CurrentDeliBatSumList currentDeliBatSumList = new CurrentDeliBatSumList();
                            currentDeliBatSumList.batchDocNumber    = ascmDeliBatSumDetail.batchDocNumber;
                            currentDeliBatSumList.materialDocNumber = ascmDeliBatSumDetail.materialDocNumber;
                            currentDeliBatSumList.materialName      = ascmDeliBatSumDetail.materialDescription;
                            currentDeliBatSumList.totalNumber       = ascmDeliBatSumDetail.totalNumber;
                            if (listAscmContainerDelivery != null && listAscmContainerDelivery.Count() > 0)
                            {
                                List <AscmContainerDelivery> vList = listAscmContainerDelivery.Where(item => item.deliveryOrderBatchId == ascmDeliBatSumDetail.batchId && item.materialId == ascmDeliBatSumDetail.materialId).ToList();
                                if (vList != null && vList.Count() > 0)
                                {
                                    currentDeliBatSumList.receiveNumber = vList.Sum(item => item.quantity);
                                }
                            }
                            listCurrentDeliBatSumList.Add(currentDeliBatSumList);
                        }
                        currentDeliBatSum.list = listCurrentDeliBatSumList;
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(currentDeliBatSum);
        }
コード例 #2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                //提取数据
                int    id = 0;
                string containerSpAndQuantity = "";
                //出货子库
                string supplyWarehouse = "";
                //送货地点
                string                      deliveryPlace            = "";
                AscmDeliBatSumMain          ascmDeliBatSumMain       = new AscmDeliBatSumMain();
                List <AscmDeliBatSumDetail> listAscmDeliBatSumDetail = new List <AscmDeliBatSumDetail>();
                if (!string.IsNullOrEmpty(Request.QueryString["id"]) && int.TryParse(Request.QueryString["id"], out id))
                {
                    //ascmDeliBatSumMain = AscmDeliBatSumMainService.GetInstance().Get(id);
                    //ascmDeliBatSumMain.ascmSupplier = AscmSupplierService.GetInstance().Get(ascmDeliBatSumMain.supplierId);
                    //ascmDeliBatSumMain.ascmDriver = AscmDriverService.GetInstance().Get(ascmDeliBatSumMain.driverId);
                    //供方简称
                    string supplierShortName = "select vendorSiteCode from AscmSupplierAddress a where a.vendorSiteCodeAlt=s.docNumber and rownum=1";
                    //司机编号
                    string driverSn = "select sn from AscmDriver d where d.id=h.driverId";
                    string hql      = string.Format("select new AscmDeliBatSumMain(h,s.docNumber,({0}),({1})) from AscmDeliBatSumMain h,AscmSupplier s", supplierShortName, driverSn);
                    string where       = string.Empty;
                    where              = YnBaseClass2.Helper.StringHelper.SqlWhereAndAdd(where, "h.supplierId=s.id");
                    where              = YnBaseClass2.Helper.StringHelper.SqlWhereAndAdd(where, "h.id=" + id);
                    hql               += " where " + where;
                    ascmDeliBatSumMain = AscmDeliBatSumMainService.GetInstance().Get(hql);

                    //List<AscmDeliBatSumDetail> list = AscmDeliBatSumDetailService.GetInstance().GetListByMainId(id);
                    //容器绑定数量
                    string containerBindNumber = "select sum(quantity) from AscmContainerDelivery where deliveryOrderBatchId=l.batchId and batSumMainId=l.mainId";
                    //容器数量
                    string containerNumber = "select count(distinct containerSn) from AscmContainerDelivery where deliveryOrderBatchId=l.batchId and batSumMainId=l.mainId";
                    hql   = string.Format("select new AscmDeliBatSumDetail(l,({0}),0M,0M,({1})) from AscmDeliBatSumDetail l", containerBindNumber, containerNumber);
                    where = string.Empty;
                    where = YnBaseClass2.Helper.StringHelper.SqlWhereAndAdd(where, " mainId=" + id);
                    hql  += " where " + where;
                    List <AscmDeliBatSumDetail> list = AscmDeliBatSumDetailService.GetInstance().GetList(hql);
                    AscmDeliBatSumDetailService.GetInstance().SetDeliveryOrderBatch(list, true);
                    AscmDeliBatSumDetailService.GetInstance().SetMaterial(list);

                    string warehouseId  = Request.QueryString["warehouseId"];
                    string materialCode = Request.QueryString["materialCode"];

                    if (list != null && list.Count > 0)
                    {
                        //设置作业
                        AscmDeliBatSumDetailService.GetInstance().SetWipEntityName(list);
                        supplyWarehouse = list.Where(P => !string.IsNullOrEmpty(P.batchSupperWarehouse)).FirstOrDefault().batchSupperWarehouse;
                        deliveryPlace   = list.Where(P => !string.IsNullOrEmpty(P.batchWipLine)).FirstOrDefault().batchWipLine;

                        string containerSns = "";
                        bool   isWarehouseId = true, isMaterialCode = true;
                        List <AscmContainerDelivery> listAscmContainerDelivery = AscmContainerDeliveryService.GetInstance().GetListByDeliverySumMainId(id, false);
                        List <AscmContainerDelivery> _listAscmContainerDelivery = new List <AscmContainerDelivery>();
                        foreach (AscmDeliBatSumDetail detail in list)
                        {
                            isWarehouseId = isMaterialCode = true;
                            if (warehouseId != null && warehouseId.Trim() != "")
                            {
                                isWarehouseId = detail.batchWarehouseId == warehouseId.Trim();
                            }
                            if (materialCode != null && materialCode.Trim() != "")
                            {
                                isMaterialCode = !string.IsNullOrEmpty(detail.materialDocNumber) && detail.materialDocNumber.Substring(0, 4) == materialCode.Trim();
                            }
                            if (isWarehouseId && isMaterialCode)
                            {
                                listAscmDeliBatSumDetail.Add(detail);
                                if (listAscmContainerDelivery != null)
                                {
                                    foreach (AscmContainerDelivery delivery in listAscmContainerDelivery)
                                    {
                                        if (delivery.deliveryOrderBatchId == detail.batchId && delivery.materialId == detail.materialId)
                                        {
                                            if (containerSns != "")
                                            {
                                                containerSns += ",";
                                            }
                                            containerSns += "'" + delivery.containerSn + "'";
                                            _listAscmContainerDelivery.Add(delivery);
                                        }
                                    }
                                }
                            }
                        }
                        if (containerSns != "")
                        {
                            List <AscmContainer> listAscmContainer = AscmContainerService.GetInstance().GetList("from AscmContainer where sn in(" + containerSns + ")", false, true);
                            var groupByAscmContainerSpec           = listAscmContainer.GroupBy(P => P.spec);
                            foreach (IGrouping <string, AscmContainer> igSpec in groupByAscmContainerSpec)
                            {
                                int specCount = 0;
                                foreach (AscmContainer ascmContainer in igSpec)
                                {
                                    specCount += _listAscmContainerDelivery.Where(p => p.containerSn == ascmContainer.sn).Select(item => item.containerSn).Distinct().Count();
                                }
                                if (containerSpAndQuantity != "")
                                {
                                    containerSpAndQuantity += " ";
                                }
                                containerSpAndQuantity +=
                                    string.Format("{0}:{1}", igSpec.Key, specCount);
                            }
                        }

                        int i = 0;
                        listAscmDeliBatSumDetail = listAscmDeliBatSumDetail.OrderBy(P => P.batchBarCode).ToList();
                        foreach (AscmDeliBatSumDetail detail in listAscmDeliBatSumDetail)
                        {
                            detail.barcode     = ascmDeliBatSumMain.docNumber + (Math.Floor(i / 7M) + 1);
                            detail.barcodeShow = Code.BarCode128.GetBarcode(detail.barcode);
                            i++;
                        }
                    }
                }

                ReportViewer1.ProcessingMode         = Microsoft.Reporting.WebForms.ProcessingMode.Local;
                ReportViewer1.LocalReport.ReportPath = Server.MapPath("SupplierDriverDeliveryReport.rdlc");
                ReportDataSource rds1 = new ReportDataSource();
                rds1.Name  = "DataSet1";
                rds1.Value = listAscmDeliBatSumDetail;
                ReportViewer1.LocalReport.DataSources.Clear();//好像不clear也可以
                ReportViewer1.LocalReport.DataSources.Add(rds1);

                string companpyTitle = "美的中央空调";
                string title         = companpyTitle + "供应商送货合单";

                ReportParameter[] reportParameters = new ReportParameter[] {
                    new ReportParameter("ReportParameter_Title", title),
                    new ReportParameter("ReportParameter_ReportTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm")),
                    new ReportParameter("ReportParameter_SupplierName", ascmDeliBatSumMain.supplierNameCn),
                    new ReportParameter("ReportParameter_SupplierDocNumber", ascmDeliBatSumMain.supplierDocNumberCn),
                    new ReportParameter("ReportParameter_DocNumber", ascmDeliBatSumMain.docNumber),
                    new ReportParameter("ReportParameter_DriverSn", ascmDeliBatSumMain.driverSnCn),
                    new ReportParameter("ReportParameter_DriverPlateNumber", ascmDeliBatSumMain.driverPlateNumber),
                    new ReportParameter("ReportParameter_DeliveryPlace", deliveryPlace),
                    new ReportParameter("ReportParameter_AppointmentStartTime", ascmDeliBatSumMain.appointmentStartTimeShow),
                    new ReportParameter("ReportParameter_AppointmentEndTime", ascmDeliBatSumMain.appointmentEndTimeShow),
                    new ReportParameter("ReportParameter_Status", ascmDeliBatSumMain.statusCn),
                    new ReportParameter("ReportParameter_Warehouse", ascmDeliBatSumMain.warehouseId),
                    new ReportParameter("ReportParameter_SupplyWarehouse", supplyWarehouse),
                    new ReportParameter("ReportParameter_ContainerSpAndQuantity", containerSpAndQuantity)
                };
                ReportViewer1.LocalReport.SetParameters(reportParameters);
                ReportViewer1.LocalReport.Refresh();
            }
        }
コード例 #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);
                if (ascmUserInfo.extExpandType != "erp")
                {
                    throw new Exception("供应商用户错误!");
                }
                AscmUserInfoService.GetInstance().SetSupplier(ascmUserInfo);
                if (ascmUserInfo.ascmSupplier == null)
                {
                    throw new Exception("供应商用户错误!");
                }

                //提取数据
                List <AscmDeliBatSumDetail> list = new List <AscmDeliBatSumDetail>();
                string ids = Request.QueryString["ids"];
                if (!string.IsNullOrEmpty(ids))
                {
                    YnBaseDal.YnPage ynPage = new YnBaseDal.YnPage();
                    ynPage.SetPageSize(500);  //pageRows;
                    ynPage.SetCurrentPage(1); //pageNumber;

                    list = AscmDeliBatSumDetailService.GetInstance().GetList("from AscmDeliBatSumDetail where id in(" + ids + ")");

                    AscmDeliBatSumDetailService.GetInstance().SetMaterial(list);
                    AscmDeliBatSumDetailService.GetInstance().SetDeliveryOrderBatch(list);
                    List <AscmDeliveryOrderBatch> listDeliveryOrderBatch = new List <AscmDeliveryOrderBatch>();
                    list.ForEach(P => listDeliveryOrderBatch.Add(
                                     new AscmDeliveryOrderBatch
                    {
                        id = P.batchId
                    }));
                    //获取货位分配
                    AscmDeliveryOrderBatchService.GetInstance().SetAssignWarelocation(listDeliveryOrderBatch);
                    list.ForEach(P => P.assignWarelocation = listDeliveryOrderBatch.Find(T => T.id == P.batchId).assignWarelocation);
                    //条码
                    foreach (AscmDeliBatSumDetail ascmDeliBatSumDetail in list)
                    {
                        System.IO.MemoryStream memoryStream = new System.IO.MemoryStream();
                        if (ascmDeliBatSumDetail.ascmMaterialItem != null && ascmDeliBatSumDetail.ascmMaterialItem.docNumber != null)
                        {
                            #region Code128
                            MideaAscm.Code.BarCode128 barCode128 = new Code.BarCode128();
                            barCode128.TitleFont   = new Font("宋体", 10);
                            barCode128.HeightImage = 50;
                            Bitmap bitmap = barCode128.GetCodeImage(ascmDeliBatSumDetail.ascmMaterialItem.docNumber, ascmDeliBatSumDetail.ascmMaterialItem.docNumber, Code.BarCode128.Encode.Code128B);
                            bitmap.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Gif);
                            bitmap.Dispose();
                            #endregion

                            #region Code39
                            //YnBaseClass2.Helper.BarCode39 barCode39 = new YnBaseClass2.Helper.BarCode39();
                            //barCode39.WidthCU = 10;
                            //barCode39.WidthXI = 3;
                            //System.Drawing.Bitmap bitmap = barCode39.CreateBarCode(ascmDeliBatSumDetail.ascmMaterialItem.docNumber, ascmDeliBatSumDetail.ascmMaterialItem.docNumber, 0, 0);
                            ////生成图片
                            ////System.IO.MemoryStream memoryStream = new System.IO.MemoryStream();
                            //bitmap.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Gif);
                            //bitmap.Dispose();
                            #endregion
                        }
                        ascmDeliBatSumDetail.materialBarcode = memoryStream.ToArray();
                    }
                }
                ReportViewer1.ProcessingMode         = Microsoft.Reporting.WebForms.ProcessingMode.Local;
                ReportViewer1.LocalReport.ReportPath = Server.MapPath("SupplierDriverDeliveryBarCodeReport.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", ascmUserInfo.ascmSupplier.name)
                };

                ReportViewer1.LocalReport.SetParameters(reportParameters);
                ReportViewer1.LocalReport.Refresh();
            }
        }
コード例 #4
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);
                if (ascmUserInfo.extExpandType != "erp")
                {
                    throw new Exception("供应商用户错误!");
                }
                AscmUserInfoService.GetInstance().SetSupplier(ascmUserInfo);
                if (ascmUserInfo.ascmSupplier == null)
                {
                    throw new Exception("供应商用户错误!");
                }

                //打印的数据
                List <AscmDeliBatSumDetail> sumList = new List <AscmDeliBatSumDetail>();
                //最后一个装箱
                AscmDeliBatSumDetail lastDetail = new AscmDeliBatSumDetail();
                string   ids        = Request.QueryString["ids"];
                string   unitIds    = Request.QueryString["unitIds"];
                string[] listId     = ids.Split(',');
                string[] listUnitId = unitIds.Split(',');
                if (!string.IsNullOrEmpty(ids))
                {
                    List <AscmDeliBatSumDetail> list = new List <AscmDeliBatSumDetail>();
                    for (int i = 0; i < listId.Count(); i++)
                    {
                        AscmDeliBatSumDetail      ascmDeliBatSumDetail      = AscmDeliBatSumDetailService.GetInstance().Get(Int32.Parse(listId[i]));
                        AscmContainerUnitQuantity ascmContainerUnitQuantity = AscmContainerUnitQuantityService.GetInstance().Get(Int32.Parse(listUnitId[i]));
                        ascmDeliBatSumDetail.container               = ascmContainerUnitQuantity.container;
                        ascmDeliBatSumDetail.materialUnitQuantity    = ascmContainerUnitQuantity.unitQuantity;
                        ascmDeliBatSumDetail.containerUnitQuantityId = ascmContainerUnitQuantity.id;
                        list.Add(ascmDeliBatSumDetail);
                    }

                    if (list != null)
                    {
                        AscmDeliBatSumDetailService.GetInstance().SetMaterial(list);
                        AscmDeliBatSumDetailService.GetInstance().SetDeliveryOrderBatch(list);
                        List <AscmDeliveryOrderBatch> listDeliveryOrderBatch = new List <AscmDeliveryOrderBatch>();
                        list.ForEach(P => listDeliveryOrderBatch.Add(
                                         new AscmDeliveryOrderBatch
                        {
                            id = P.batchId
                        }));
                        //获取货位分配
                        AscmDeliveryOrderBatchService.GetInstance().SetAssignWarelocation(listDeliveryOrderBatch);
                        list.ForEach(P => P.assignWarelocation = listDeliveryOrderBatch.Find(T => T.id == P.batchId).assignWarelocation);
                        foreach (AscmDeliBatSumDetail ascmDeliBatSumDetail in list)
                        {
                            //条码
                            System.IO.MemoryStream memoryStream = new System.IO.MemoryStream();
                            if (ascmDeliBatSumDetail.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(ascmDeliBatSumDetail.batchBarCode, ascmDeliBatSumDetail.batchBarCode, Code.BarCode128.Encode.Code128B);
                                bitmap.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Gif);
                                bitmap.Dispose();
                                #endregion

                                #region Code39
                                //YnBaseClass2.Helper.BarCode39 barCode39 = new YnBaseClass2.Helper.BarCode39();
                                //barCode39.WidthCU = 10;
                                //barCode39.WidthXI = 3;
                                //System.Drawing.Bitmap bitmap = barCode39.CreateBarCode(ascmDeliBatSumDetail.ascmMaterialItem.docNumber, ascmDeliBatSumDetail.ascmMaterialItem.docNumber, 0, 0);
                                ////生成图片
                                ////System.IO.MemoryStream memoryStream = new System.IO.MemoryStream();
                                //bitmap.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Gif);
                                //bitmap.Dispose();
                                #endregion
                            }
                            ascmDeliBatSumDetail.materialBarcode = memoryStream.ToArray();

                            decimal totalNumber  = ascmDeliBatSumDetail.totalNumber;          //总数量
                            decimal unitQuantity = ascmDeliBatSumDetail.materialUnitQuantity; //单元数
                            //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.ascmDeliveryOrderBatch = ascmDeliBatSumDetail.ascmDeliveryOrderBatch;
                                    lastDetail.ascmMaterialItem       = ascmDeliBatSumDetail.ascmMaterialItem;
                                    lastDetail.assignWarelocation     = ascmDeliBatSumDetail.assignWarelocation;
                                    lastDetail.materialUnitQuantity   = rest;
                                    sumList.Add(lastDetail);
                                }
                                else
                                {
                                    sumList.Add(ascmDeliBatSumDetail);
                                }
                            }
                        }
                    }
                }

                ReportViewer1.ProcessingMode         = Microsoft.Reporting.WebForms.ProcessingMode.Local;
                ReportViewer1.LocalReport.ReportPath = Server.MapPath("SupplierDriverDeliveryDetialBarCodeReport.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", ascmUserInfo.ascmSupplier.name)
                };

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