Esempio n. 1
0
        public void CancelOrder()
        {
            try
            {
                using (ProxyBE p = new ProxyBE())
                {
                    Guid  OrderID = new Guid(Request["OrderID"]);
                    Order order   = p.Client.GetOrder(SenderUser, OrderID);



                    order.Status = "C"; // 订单取消
                    SaveOrderArgs args = new SaveOrderArgs();
                    args.Order = order;
                    order.StepNo++;


                    List <OrderProduct> list = p.Client.GetOrderProductByOrderID(SenderUser, order.OrderID);
                    foreach (OrderProduct item in list)
                    {
                        item.ProductStatus = "C";
                    }
                    args.OrderProducts = list;

                    p.Client.SaveOrder(SenderUser, args);
                }
                WriteSuccess();
            }
            catch (Exception ex)
            {
                WriteError(ex.Message, ex);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// 订单入库保存
        /// </summary>
        public void OrderCheckIn()
        {
            try
            {
                using (ProxyBE p = new ProxyBE())
                {
                    ProductWarehouseMain pw = new ProductWarehouseMain();
                    pw.InID    = Guid.NewGuid();
                    pw.BillNo  = Parm.BillNo;
                    pw.OrderID = Parm.OrderID;
                    SaveProductWarehouseArgs args = new SaveProductWarehouseArgs();
                    args.ProductWarehouseMain = pw;

                    SaveLocationArgs largs = new SaveLocationArgs();
                    //遍历详细页
                    List <ProductWarehouseDetail> listdetails = new List <ProductWarehouseDetail>();
                    string   InDetail = Request["InDetail"];
                    JsonData sj       = JsonMapper.ToObject(InDetail);
                    if (sj.Count > 0)
                    {
                        //遍历对象元素,保存
                        foreach (JsonData item in sj)
                        {
                            ProductWarehouseDetail detail = new ProductWarehouseDetail();
                            detail.InID       = pw.InID;
                            detail.DetailID   = Guid.NewGuid();
                            detail.PackageID  = Guid.Parse(item["PackageID"].ToString());
                            detail.LocationID = Guid.Parse(item["LocationID"].ToString());
                            listdetails.Add(detail);
                            args.ProductWarehouseDetails = listdetails;

                            //2.把该仓位占用、仓位放的包数、重量累计
                            Location location = p.Client.GetLocation(SenderUser, detail.LocationID);
                            location.PackageQty += 1;
                            location.Weight     += Convert.ToDecimal(item["Weight"].ToString());
                            location.Flag        = true;
                            largs.Location       = location;
                            p.Client.SaveLocation(SenderUser, largs);
                        }
                    }

                    //1.把订单状态改为待备货 O
                    Order order = p.Client.GetOrder(SenderUser, Parm.OrderID);
                    order.Status = "O";
                    SaveOrderArgs oargs = new SaveOrderArgs();
                    oargs.Order = order;
                    p.Client.SaveOrder(SenderUser, oargs);
                    p.Client.SaveProductWarehouse(SenderUser, args);
                }
                WriteSuccess();
            }
            catch (Exception ex)
            {
                WriteError(ex.Message, ex);
            }
        }
Esempio n. 3
0
        public void OrdersPrize()
        {
            try
            {
                using (ProxyBE p = new ProxyBE())
                {
                    Order order = p.Client.GetOrder(SenderUser, parm.OrderID);

                    if (order.Status.ToUpper() == OrderStatus.E.ToString())
                    {
                        SaveOrderArgs args = new SaveOrderArgs();

                        OrderStep    step = p.Client.GetOrderStepByStepCode(SenderUser, StepCode.ordersprice.ToString());
                        OrderStepLog ot   = new OrderStepLog();
                        ot.StepID         = Guid.NewGuid();
                        ot.OrderID        = order.OrderID;
                        ot.StepNo         = step.StepNo;
                        ot.StepName       = step.StepName;
                        ot.Remark         = string.Empty;
                        args.OrderStepLog = ot;

                        order.Status = OrderStatus.F.ToString();
                        order.StepNo = step.StepNo;
                        args.Order   = order;

                        List <OrderProduct> list = new List <OrderProduct>();
                        string   Cabinets        = Request["Cabinets"];
                        JsonData sj = JsonMapper.ToObject(Cabinets);
                        if (sj.Count > 0)
                        {
                            foreach (JsonData item in sj)
                            {
                                OrderProduct model = p.Client.GetOrderProduct(SenderUser, Guid.Parse(item["ProductID"].ToString()));
                                model.SalePrice = Decimal.Parse(item["SalePrice"].ToString());
                                list.Add(model);
                            }
                        }
                        args.OrderProducts = list;

                        p.Client.SaveOrder(SenderUser, args);
                        p.Client.UpdatePartnerOrder(args.Order);
                    }
                }
                WriteSuccess();
            }
            catch (Exception ex)
            {
                WriteError(ex.Message, ex);
            }
        }
Esempio n. 4
0
        public void OrdersDesign()
        {
            try
            {
                using (ProxyBE p = new ProxyBE())
                {
                    string OrderID = Request["OrderIDs"];
                    if (string.IsNullOrEmpty(OrderID))
                    {
                        throw new Exception("OrderID:参数无效");
                    }

                    Order order = p.Client.GetOrder(SenderUser, Guid.Parse(OrderID));

                    if (order.Status.ToUpper() == OrderStatus.D.ToString())
                    {
                        SaveOrderArgs args = new SaveOrderArgs();

                        OrderStep    step = p.Client.GetOrderStepByStepCode(SenderUser, StepCode.ordersdesign.ToString());
                        OrderStepLog ot   = new OrderStepLog();
                        ot.StepID         = Guid.NewGuid();
                        ot.OrderID        = order.OrderID;
                        ot.StepNo         = step.StepNo;
                        ot.StepName       = step.StepName;
                        ot.Remark         = string.Empty;
                        args.OrderStepLog = ot;

                        order.Status = OrderStatus.E.ToString();
                        order.StepNo = step.StepNo;
                        args.Order   = order;

                        p.Client.SaveOrder(SenderUser, args);
                        p.Client.UpdatePartnerOrder(args.Order);
                    }
                    WriteSuccess();
                }
            }
            catch (Exception ex)
            {
                WriteError(ex.Message, ex);
            }
        }
Esempio n. 5
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            try
            {
                if (this.listPackage.Items.Count == 0)
                {
                    throw new Exception("未添加任何包数据。");
                }
                using (ProxyBE bll = new ProxyBE())
                {
                    Order order = bll.Client.GetOrder(CGlobal.SenderUser, OrderID);
                    //订单添加板件明细
                    List <OrderDetail> suborders = new List <OrderDetail>();

                    List <OrderDetail> details = bll.Client.GetOrderDetails(CGlobal.SenderUser, OrderID);
                    Order2Cabinet      cabinet = bll.Client.GetOrder2Cabinet(CGlobal.SenderUser, this.CabinetID);
                    int itemsQty = 1;
                    foreach (ListViewItem li in this.listPackage.Items)
                    {
                        int Qty = int.Parse(li.SubItems[2].Text);
                        for (int i = 0; i < Qty; i++)
                        {
                            OrderDetail subOrder = new OrderDetail();
                            subOrder.ItemID           = Guid.NewGuid();
                            subOrder.OrderID          = this.OrderID;
                            subOrder.BarcodeNo        = order.OrderNo + ((char)(64 + cabinet.Sequence)).ToString() + (itemsQty + details.Count + 50).ToString("000");
                            subOrder.ItemName         = li.SubItems[1].Text;
                            subOrder.MadeBattchNum    = "";
                            subOrder.MaterialType     = "";
                            subOrder.MadeLength       = 0;
                            subOrder.MadeWidth        = 0;
                            subOrder.MadeHeight       = 0;
                            subOrder.Qty              = 1;
                            subOrder.TextureDirection = "";
                            subOrder.Edge1            = "";
                            subOrder.Edge2            = "";
                            subOrder.Edge3            = "";
                            subOrder.Edge4            = "";
                            subOrder.HoleDesc         = "";
                            subOrder.EndLength        = 0;
                            subOrder.EndWidth         = 0;
                            subOrder.FrontLabel       = "";
                            subOrder.BackLabel        = "";
                            subOrder.PackageCategory  = "";
                            subOrder.PackageSizeType  = "";
                            subOrder.IsSpecialShap    = false;
                            subOrder.CabinetID        = this.CabinetID;
                            subOrder.Remarks          = "";
                            subOrder.EdgeDesc         = "";
                            subOrder.DamageQty        = 0;
                            subOrder.Created          = DateTime.Now;
                            suborders.Add(subOrder);

                            Mes.Client.Service.BE.Package p = new Mes.Client.Service.BE.Package();
                            p.OrderID = OrderID;
                            int pageNum = bll.Client.GetMaxPackageNum(CGlobal.SenderUser, OrderID, subOrder.CabinetID);
                            p.CabinetID      = subOrder.CabinetID;
                            p.PackageNum     = pageNum;
                            p.PackageBarcode = string.Format("0{0}{1}", order.Created.ToString("yyMMddHHmmss"), pageNum.ToString("00"));
                            p.PackageID      = Guid.NewGuid();
                            p.ItemsQty       = 1;

                            //保存条码数据
                            PackageDetail obj = new PackageDetail();
                            obj.DetailID    = Guid.NewGuid();
                            obj.ItemID      = subOrder.ItemID;
                            obj.PakageID    = p.PackageID;
                            obj.IsPlanning  = true;
                            obj.IsPakaged   = true;
                            obj.IsDisabled  = false;
                            obj.IsOptimized = true;
                            obj.LayerNum    = 0;
                            obj.Qty         = 1;
                            obj.CheckedBy   = CGlobal.SenderUser.UserCode + "." + CGlobal.SenderUser.UserName;

                            SavePackageArgs saveArgs = new SavePackageArgs();
                            saveArgs.Package = p;

                            PackageDetail detail = new PackageDetail();
                            detail.DetailID = Guid.NewGuid();

                            detail.CheckedBy       = CGlobal.SenderUser.UserCode;
                            detail.IsDisabled      = false;
                            detail.IsOptimized     = true;
                            detail.IsPakaged       = true;
                            detail.IsPlanning      = true;
                            detail.ItemID          = subOrder.ItemID;
                            detail.LayerNum        = 0;
                            detail.PakageID        = obj.PakageID;
                            detail.Qty             = 1;
                            saveArgs.PackageDetail = detail;
                            bll.Client.SavePackage(CGlobal.SenderUser, saveArgs);

                            itemsQty++;
                        }
                    }
                    SaveOrderArgs saveOrderArgs = new SaveOrderArgs();
                    saveOrderArgs.Order        = order;
                    saveOrderArgs.OrderDetails = suborders;
                    bll.Client.SaveOrder(CGlobal.SenderUser, saveOrderArgs);
                }

                this.DialogResult = System.Windows.Forms.DialogResult.OK;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
Esempio n. 6
0
        private void ScanBarcode()
        {
            if (this.InvokeRequired)
            {
                this.Invoke(new dreadbarcode(ScanBarcode), null);
            }
            else
            {
                if (WorkFlowID == Guid.Empty)
                {
                    throw new Exception("请在参数设置中设置班次和分拣对应的工序名称。");
                }
                if (WorkShiftID == Guid.Empty)
                {
                    throw new Exception("请在参数设置中设置班次和分拣对应的工序名称。");
                }
                string ItemBarcode = this.txtBarcode.Text.Trim();
                if (string.IsNullOrEmpty(ItemBarcode))
                {
                    this.txtBarcode.Clear();
                    this.txtBarcode.Focus();
                    lblMsg.Text = "【提示】请扫描板件条码";
                    PlayVoice("请扫描板件条码");
                    return;
                }
                #region 完成当前分包操作
                if (ItemBarcode.IndexOf(FinishedBarcode) >= 0 && !string.IsNullOrEmpty(FinishedBarcode))
                {
                    try
                    {
                        //打印分包标签
                        PlayVoice("打印标签");
                        //PrintDocument();
                        StartPrint(this.CurrentPackage.PackageID);
                        this.txtBarcode.Text = "";
                        this.txtBarcode.Focus();
                        this.CurrentPackage = null;
                    }
                    catch (Exception ex)
                    {
                        this.CurrentPackage = null;
                        throw ex;
                    }
                    return;
                }
                #endregion

                using (ProxyBE p = new ProxyBE())
                {
                    OrderDetail subOrder = p.Client.GetOrderDetailByBarcode(CGlobal.SenderUser, ItemBarcode);
                    if (subOrder == null)
                    {
                        this.txtBarcode.Clear();
                        this.txtBarcode.Focus();
                        lblMsg.Text = string.Format("提示:【{0}】条码无效", ItemBarcode);
                        PlayVoice("条码错误");
                        return;
                    }

                    Order order = p.Client.GetOrder(CGlobal.SenderUser, subOrder.OrderID);
                    //初始化订单数据:如果当前订单ID与条码的订单ID不一至时则重置订单信息
                    if (CurrentOrder == null)
                    {
                        this.CurrentOrder    = order;
                        this.txtOrderNo.Text = this.CurrentOrder.OrderNo;
                    }
                    //判断当前的板件是否为同一订单板件
                    else if (subOrder.OrderID != this.CurrentOrder.OrderID)
                    {
                        this.txtBarcode.Clear();
                        this.txtBarcode.Focus();
                        lblMsg.Text = "【错误】板件订单号不一致";
                        PlayVoice("订单不一致");
                        MessageBox.Show("板件订单号不一致");
                        return;
                    }

                    List <PackageDetail> pdsubOrder = p.Client.GetPackageDetailsByItemID(CGlobal.SenderUser, subOrder.ItemID);
                    pdsubOrder = pdsubOrder.FindAll(li => li.IsPakaged == false);
                    if (pdsubOrder.Count == 0)
                    {
                        this.txtBarcode.Clear();
                        this.txtBarcode.Focus();
                        lblMsg.Text = string.Format("提示:【{0}】条码重复扫描", ItemBarcode);
                        PlayVoice("重复扫描");
                        return;
                    }


                    decimal weight = subOrder.MadeHeight * subOrder.MadeLength * subOrder.MadeWidth * 0.000001M * Density;
                    if (this.CurrentPackage != null)
                    {
                        if (this.CurrentPackage.Weight + weight >= MaxWeight)
                        {
                            //打印分包标签
                            PlayVoice("打印标签");
                            StartPrint(this.CurrentPackage.PackageID);
                            this.txtBarcode.Text = "";
                            this.txtBarcode.Focus();
                            this.CurrentPackage = null;
                        }
                    }

                    Order2Cabinet cabinet = p.Client.GetOrder2Cabinet(CGlobal.SenderUser, subOrder.CabinetID);
                    if (cabinet != null)
                    {
                        //初始化包数据
                        if (this.CurrentPackage == null)
                        {
                            Mes.Client.Service.BE.Package pack = new Mes.Client.Service.BE.Package();
                            pack.OrderID = this.CurrentOrder.OrderID;
                            int pageNum = 0;
                            pageNum                  = p.Client.GetMaxPackageNum(CGlobal.SenderUser, pack.OrderID, subOrder.CabinetID);
                            pack.CabinetID           = subOrder.CabinetID;
                            pack.PackageNum          = pageNum;
                            pack.PackageID           = Guid.NewGuid();
                            pack.PackageBarcode      = string.Format("0{0}{1}", CurrentOrder.Created.ToString("yyMMddHHmmss"), pageNum.ToString("00"));
                            pack.PackageLength       = 0;
                            pack.PackageHeight       = 0;
                            pack.PackageWidth        = 0;
                            pack.ItemsQty            = 0;
                            this.CurrentPackage      = pack;
                            this.txtCabinetName.Text = cabinet.CabinetName;
                        }
                        else if (CurrentPackage.CabinetID != cabinet.CabinetID)
                        {
                            this.txtBarcode.Clear();
                            this.txtBarcode.Focus();
                            lblMsg.Text = "【错误】柜体不一致!";
                            PlayVoice("柜体不一致");
                            return;
                        }
                    }
                    else
                    {
                        lblMsg.Text = string.Format("提示:【{0}】条码所属柜体数据丢失,请查看订单是否有误!", ItemBarcode);
                        PlayVoice("订单错误");
                        return;
                    }


                    try
                    {
                        p.Client.ScanBarcode(CGlobal.SenderUser, ItemBarcode, WorkShiftID, WorkFlowID);
                    }
                    catch (Exception ex)
                    {
                        PLogger.LogError(ex);
                        this.txtBarcode.Clear();
                        this.txtBarcode.Focus();
                        lblMsg.Text = ex.Message;
                        PlayVoice("扫描失败");
                        return;
                    }

                    this.CurrentPackage.Weight   += weight;
                    this.CurrentPackage.ItemsQty += 1;

                    SavePackageArgs saveArgs = new SavePackageArgs();
                    saveArgs.Package = this.CurrentPackage;
                    PackageDetail packageDetail = pdsubOrder[0];
                    packageDetail.IsPakaged = true;
                    packageDetail.PakageID  = this.CurrentPackage.PackageID;
                    saveArgs.PackageDetail  = packageDetail;
                    p.Client.SavePackage(CGlobal.SenderUser, saveArgs);

                    this.CurrentPackage = p.Client.GetPackage(CGlobal.SenderUser, this.CurrentPackage.PackageID);
                    this.gbPackage.Text = string.Format("当前:第{0}包", this.CurrentPackage.PackageNum);

                    //刷新列表
                    biForm();
                    this.txtBarcode.Clear();
                    this.txtBarcode.Focus();
                    lblMsg.Text = "扫描完成";
                    PlayVoice("OK");

                    //检查是否已经全部扫描完成
                    if (this.listBarcodes.Items.Count == 0)
                    {
                        //打印分包标签
                        PlayVoice("打印标签");
                        //PrintDocument();
                        StartPrint(this.CurrentPackage.PackageID);
                        this.txtBarcode.Text = "";
                        this.txtBarcode.Focus();
                        this.CurrentPackage = null;

                        cabinet.CabinetStatus = "F";
                        SaveOrder2CabinetArgs cabinetArgs = new SaveOrder2CabinetArgs();
                        cabinetArgs.Order2Cabinet = cabinet;
                        p.Client.SaveOrder2Cabinet(CGlobal.SenderUser, cabinetArgs);

                        SearchPackageDetailArgs p_args = new SearchPackageDetailArgs();
                        p_args.IsDisabled = false;
                        p_args.OrderID    = CurrentOrder.OrderID;
                        p_args.IsPakaged  = false;

                        SearchResult p_sr = p.Client.SearchPackageDetail(CGlobal.SenderUser, p_args);
                        if (p_sr.Total == 0)
                        {
                            //Order order = p.Client.GetOrder(CGlobal.SenderUser, CurrentOrder.OrderID);
                            order.Status = "I"; //全部打包完成后,订单状态变成待入库
                            SaveOrderArgs saveOrderArgs = new SaveOrderArgs();
                            saveOrderArgs.Order = order;
                            p.Client.SaveOrder(CGlobal.SenderUser, saveOrderArgs);
                        }
                    }
                    //加载树
                    initTree();
                }
            }
        }
Esempio n. 7
0
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (string.IsNullOrEmpty(Request["BattchNum"]))
                {
                    throw new Exception("非法数据请求。提示:批次号无效。");
                }
                try
                {
                    string sourceFileName = Server.MapPath("/template/mes_out.xls");
                    string targetFileName = "";
                    using (ProxyBE p = new ProxyBE())
                    {
                        SearchOrderDetailArgs args = new SearchOrderDetailArgs();
                        args.OrderBy = "[OrderID]";
                        //按批次导出
                        string BattchNo = Request["BattchNum"].ToString();
                        args.BattchCode    = BattchNo;
                        args.CabinetStatus = "M";
                        SearchResult sr = p.Client.SearchOrderDetail(SenderUser, args);

                        #region 排除库存件及外购件
                        List <Category> lists   = new List <Category>();
                        List <Category> lists_O = new List <Category>();
                        Category        cate_S  = p.Client.GetCategoryByParentID_CategoryCode(SenderUser, Guid.Empty, "StorageMaterials");
                        Category        cate_O  = p.Client.GetCategoryByParentID_CategoryCode(SenderUser, Guid.Empty, "OutSourcingMaterials");
                        if (cate_S != null)
                        {
                            lists = p.Client.GetCategoriesByParentID(SenderUser, cate_S.CategoryID);
                        }
                        if (cate_O != null)
                        {
                            lists_O = p.Client.GetCategoriesByParentID(SenderUser, cate_O.CategoryID);
                        }
                        lists.AddRange(lists_O);//两个集合合并
                        var whereItems = new Dictionary <string, string>();

                        foreach (Category c in lists)
                        {
                            if (c.IsDisabled)
                            {
                                continue;
                            }
                            string[] CategoryNames = c.CategoryName.Split(',');
                            string where = "";
                            foreach (string s in CategoryNames)
                            {
                                if (s.Trim() != "")
                                {
                                    where += string.Format(" ItemName not like '%{0}%' ", s);
                                }
                            }
                            whereItems.Add(c.CategoryName, where);
                        }
                        var condition = string.Empty;
                        foreach (var item in whereItems)
                        {
                            condition += item.Value + "And";
                        }
                        condition = condition.TrimEnd('A', 'n', 'd');
                        var srows = sr.DataSet.Tables[0].Select(condition);

                        var       tmpDs = new DataSet();
                        DataTable dt    = sr.DataSet.Tables[0].Clone(); //复制表结构
                        if (srows.Length > 0)
                        {
                            foreach (var row in srows)
                            {
                                dt.ImportRow(row);
                            }
                        }
                        tmpDs.Tables.Add(dt);

                        #endregion

                        //批次总柜数
                        int TotalBattchQty = p.Client.GetTotalOrderBattchQty(SenderUser, BattchNo);

                        targetFileName = Path.Combine(Config.StorageFolder, "temp");
                        if (!Directory.Exists(targetFileName))
                        {
                            Directory.CreateDirectory(targetFileName);
                        }
                        targetFileName = Path.Combine(targetFileName, BattchNo + "_排产优化.xls");

                        if (File.Exists(targetFileName))
                        {
                            File.Delete(targetFileName);
                        }
                        File.Copy(sourceFileName, targetFileName, true);

                        //加工文件
                        SearchOrderProcessFileArgs pfArgs = new SearchOrderProcessFileArgs();
                        pfArgs.BattchNum = BattchNo;
                        pfArgs.FileType  = new List <string>()
                        {
                            "DXF", "CNC", "ProcessFile"
                        };
                        SearchResult pfResult = p.Client.SearchOrderProcessFile(SenderUser, pfArgs);

                        //订单列表
                        List <Guid>     list_OrderIDs  = new List <Guid>();
                        List <Category> category_lists = new List <Category>();
                        Category        category       = p.Client.GetCategoryByParentID_CategoryCode(SenderUser, Guid.Empty, "OptimizeType");
                        if (category != null)
                        {
                            category_lists = p.Client.GetCategoriesByParentID(SenderUser, category.CategoryID);
                        }
                        Dictionary <string, string> conditions = new Dictionary <string, string>();

                        if (category_lists.Count == 0)
                        {
                            conditions.Add("开料", "IsSpecialShap=0");
                        }
                        else
                        {
                            conditions.Add("异形板", "IsSpecialShap=1");                     //先抽异型
                            var list = category_lists.OrderByDescending(o => o.Sequence); //排序:先挑Y的数据
                            foreach (Category c in list)
                            {
                                if (c.IsDisabled)
                                {
                                    continue;
                                }
                                string[] CategoryNames = c.CategoryName.Split(',');
                                string where = " 1=1 and (1>2 ";

                                if (CategoryNames.Contains("Y"))
                                {
                                    where += string.Format(" or ItemName like '{0}%')", c.CategoryName);
                                }
                                else if (CategoryNames.Length == 1)
                                {
                                    where += string.Format(" or ItemName like '%{0}%') and MadeWidth>=78 and MadeLength>=78", c.CategoryName);
                                }
                                else
                                {
                                    foreach (string s in CategoryNames)
                                    {
                                        if (s.Trim() != "")
                                        {
                                            where += string.Format(" or ItemName like '%{0}%'", s);
                                        }
                                    }
                                    where += ") and MadeWidth>=78 and MadeLength>=78";
                                }
                                conditions.Add(c.CategoryName, where);
                            }
                        }

                        conditions.Add("小板", "IsSpecialShap=0 and (MadeWidth<78 or MadeLength<78)");
                        //异形
                        //conditions.Add("异形板", "IsSpecialShap=1");
                        conditions.Add("其它", "1=1");
                        using (FileStream fs = new FileStream(targetFileName, FileMode.Open, FileAccess.Read))
                        {
                            #region 导出数据
                            IWorkbook workbook    = new HSSFWorkbook(fs);
                            ISheet    worksheet   = workbook.GetSheetAt(0);
                            int       sheet_index = 0;
                            foreach (string key in conditions.Keys)
                            {
                                //DataRow[] rows = sr.DataSet.Tables[0].Select(conditions[key]);
                                DataRow[] rows = tmpDs.Tables[0].Select(conditions[key]);

                                if (rows.Length == 0)
                                {
                                    continue;
                                }

                                #region 填充数据
                                if (sheet_index >= 1)
                                {
                                    worksheet.CopySheet(key + "_优化数据表", true);
                                }
                                else
                                {
                                    workbook.SetSheetName(sheet_index, key + "_优化数据表");
                                }

                                worksheet = workbook.GetSheetAt(sheet_index);
                                sheet_index++;
                                #region 清空sheet页数据
                                int TotalRows = worksheet.LastRowNum;
                                for (int rownum = 1; rownum <= TotalRows; rownum++)
                                {
                                    IRow datarow = worksheet.GetRow(rownum);
                                    worksheet.RemoveRow(datarow);
                                }
                                #endregion

                                int rows_index = 1;//从第2行开始导入
                                foreach (DataRow row in rows)
                                {
                                    Guid OrderID = new Guid(row["OrderID"].ToString());
                                    if (!list_OrderIDs.Contains(OrderID))
                                    {
                                        list_OrderIDs.Add(OrderID);
                                    }

                                    //加工文件
                                    string    dxfFile = "";
                                    DataRow[] pfrow   = pfResult.DataSet.Tables[0].Select(string.Format("FileName like '%{0}%' and OrderID='{1}'", row["BarcodeNo"].ToString(), OrderID));
                                    if (pfrow.Length > 0)
                                    {
                                        dxfFile = pfrow[0]["FilePath"].ToString();
                                    }

                                    IRow _row = worksheet.CreateRow(rows_index);                                                      //表示每循环一次,在Excel中创建一行,并给这一行
                                    _row.Height = 25 * 20;
                                    _row.CreateCell(0).SetCellValue(rows_index);                                                      //序号
                                    _row.CreateCell(1).SetCellValue(row["ItemName"].ToString());                                      //板件名称
                                    _row.CreateCell(2).SetCellValue(row["BarcodeNo"].ToString());                                     //板件名称
                                    _row.CreateCell(3).SetCellValue(row["MaterialType"].ToString());                                  //材质颜色
                                    _row.CreateCell(4).SetCellValue(decimal.Parse(row["MadeLength"].ToString()).ToString("#"));       //开料长度
                                    _row.CreateCell(5).SetCellValue(decimal.Parse(row["MadeWidth"].ToString()).ToString("#"));        //开料宽度
                                    _row.CreateCell(6).SetCellValue(decimal.Parse(row["MadeHeight"].ToString()).ToString("#"));       //厚度
                                    _row.CreateCell(7).SetCellValue(decimal.Parse(row["EndLength"].ToString()).ToString("#"));        //成品长度
                                    _row.CreateCell(8).SetCellValue(decimal.Parse(row["EndWidth"].ToString()).ToString("#"));         //成品宽度
                                    _row.CreateCell(9).SetCellValue(row["IsSpecialShap"].ToString().ToLower() == "true" ? "是" : "否"); //是否异形
                                    _row.CreateCell(10).SetCellValue(decimal.Parse(row["Qty"].ToString()).ToString("#"));             //数量
                                    _row.CreateCell(11).SetCellValue(row["TextureDirection"].ToString());                             //修改纹理
                                    _row.CreateCell(12).SetCellValue(row["EdgeDesc"].ToString());                                     //封边描述
                                    _row.CreateCell(13).SetCellValue(row["FrontLabel"].ToString());                                   //正面条码
                                    _row.CreateCell(14).SetCellValue(row["BackLabel"].ToString());                                    //反面条码
                                    _row.CreateCell(15).SetCellValue(row["CabinetGroup"].ToString());                                 //柜体号
                                    _row.CreateCell(16).SetCellValue(row["Remarks"].ToString());                                      //工艺备注
                                    _row.CreateCell(17).SetCellValue(dxfFile);                                                        //保存路径
                                    _row.CreateCell(18).SetCellValue(row["OrderNo"].ToString());                                      //订单号
                                    _row.CreateCell(19).SetCellValue(row["CustomerName"].ToString());                                 //客户名称
                                    _row.CreateCell(20).SetCellValue(row["Address"].ToString());                                      //客户地址
                                    _row.CreateCell(21).SetCellValue(row["ShipDate"].ToString());                                     //交货日期
                                    _row.CreateCell(22).SetCellValue(row["CabinetName"].ToString());                                  //产品名称
                                    _row.CreateCell(23).SetCellValue(row["MaterialStyle"].ToString());                                //风格
                                    _row.CreateCell(24).SetCellValue(row["MaterialCategory"].ToString());                             //材质
                                    _row.CreateCell(25).SetCellValue(row["Color"].ToString());                                        //颜色
                                    _row.CreateCell(26).SetCellValue(row["BattchCode"].ToString());                                   //批次号
                                    _row.CreateCell(27).SetCellValue(TotalBattchQty);                                                 //批次总柜数
                                    _row.CreateCell(28).SetCellValue(row["BattchIndex"].ToString());                                  //批次柜号
                                    int TotalOrderQty = p.Client.GetTotalOrderCabinetQty(SenderUser, new Guid(row["OrderID"].ToString()));
                                    _row.CreateCell(29).SetCellValue(TotalOrderQty);                                                  //订单总柜数
                                    _row.CreateCell(30).SetCellValue(row["Sequence"].ToString());                                     //当前柜号
                                    rows_index++;
                                }

                                foreach (DataRow r in rows)
                                {
                                    //sr.DataSet.Tables[0].Rows.Remove(r);
                                    tmpDs.Tables[0].Rows.Remove(r);
                                }
                                #endregion
                            }
                            #endregion
                            Response.Clear();
                            HttpContext.Current.Response.Buffer = true;
                            Response.ContentType     = "application/ms-excel";
                            Response.Charset         = "GB2312";
                            Response.ContentEncoding = Encoding.UTF8;
                            Response.AppendHeader("content-disposition", "attachment;filename=\"" + System.Web.HttpUtility.UrlEncode(Path.GetFileName(targetFileName)));
                            using (MemoryStream ms = new MemoryStream())
                            {
                                //将工作簿的内容放到内存流中
                                workbook.Write(ms);
                                //将内存流转换成字节数组发送到客户端
                                Response.BinaryWrite(ms.GetBuffer());
                                //Response.End();
                            }

                            using (MemoryStream ms = new MemoryStream())
                            {
                                workbook.Write(ms);
                                FileStream file = new FileStream(targetFileName, FileMode.Create);
                                workbook.Write(file);
                                file.Close();
                                workbook = null;
                                ms.Close();
                                ms.Dispose();
                            }

                            p.Client.UpdateOrder2CabinetStatusByBattchCode(BattchNo, "P");

                            //排产完成
                            foreach (Guid orderid in list_OrderIDs)
                            {
                                List <Order2Cabinet> cabinets = p.Client.GetOrder2CabinetByOrderID(SenderUser, orderid);
                                if (cabinets.Find(li => li.CabinetStatus == "M") != null)
                                {
                                    continue;
                                }

                                Order order = p.Client.GetOrder(SenderUser, orderid);
                                if (order != null)
                                {
                                    order.Status = "P";
                                    order.StepNo++;

                                    SaveOrderArgs orderArgs = new SaveOrderArgs();
                                    orderArgs.Order = order;

                                    //流程步骤
                                    //OrderTask ot = new OrderTask();
                                    //ot.Action = "订单优化完成,待生产";
                                    //ot.CurrentStep = "订单优化";
                                    //ot.ActionRemarksType = "订单系统操作";
                                    //ot.ActionRemarks = "订单优化完成,待生产";
                                    //ot.Resource = "订单排产组";
                                    //ot.NextResources = "";
                                    //ot.NextStep = "待生产";
                                    //orderArgs.OrderTask = ot;

                                    p.Client.SaveOrder(SenderUser, orderArgs);
                                }
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
            catch (Exception ex)
            {
                Response.Write(ex.Message);
            }
        }
Esempio n. 8
0
        /// <summary>
        /// 订单出库产品保存
        /// </summary>
        public void SaveTransportMainOut()
        {
            try
            {
                using (ProxyBE p = new ProxyBE())
                {
                    TransportMain tm = new TransportMain();
                    tm.TransportID = Parm.TransportID;
                    tm.TransportNo = Parm.TransportNo;
                    tm.CarID       = Parm.CarID;
                    tm.Source      = Parm.Source;
                    tm.Target      = Parm.Target;
                    tm.Price       = Parm.Price;
                    SaveTransportArgs args = new SaveTransportArgs();
                    args.TransportMain = tm;

                    //遍历详细页
                    List <TransportDetail> listdetails = new List <TransportDetail>();
                    string   OutDetail = Request["OutDetail"];
                    JsonData sj        = JsonMapper.ToObject(OutDetail);
                    if (sj.Count > 0)
                    {
                        //遍历对象元素,保存
                        foreach (JsonData item in sj)
                        {
                            TransportDetail detail = new TransportDetail();
                            detail.TransportID = Parm.TransportID;
                            detail.OrderID     = Guid.Parse(item["OrderID"].ToString());
                            listdetails.Add(detail);

                            #region 1.改变订单状态
                            Order order = p.Client.GetOrder(SenderUser, Guid.Parse(item["OrderID"].ToString()));
                            order.Status = "F"; //已完成
                            SaveOrderArgs sargs = new SaveOrderArgs();
                            sargs.Order = order;
                            p.Client.SaveOrder(SenderUser, sargs);
                            #endregion

                            #region 2.把存放对应的订单的仓位 设置为不占用、包数设为0、重量设为0
                            SearchProductWarehouseDetailArgs pargs = new SearchProductWarehouseDetailArgs();
                            pargs.RowNumberFrom = pagingParm.RowNumberFrom;
                            pargs.RowNumberTo   = pagingParm.RowNumberTo;
                            pargs.OrderID       = Guid.Parse(item["OrderID"].ToString());
                            SearchResult sr = p.Client.SearchProductWarehouseDetail(SenderUser, pargs);
                            if (sr.Total > 0)
                            {
                                for (int i = 0; i < sr.DataSet.Tables[0].Rows.Count; i++)
                                {
                                    DataRow  dr       = sr.DataSet.Tables[0].Rows[i];
                                    Location location = p.Client.GetLocation(SenderUser, new Guid(dr["LocationID"].ToString()));
                                    location.Flag       = false;
                                    location.PackageQty = 0;
                                    location.Weight     = 0;

                                    SaveLocationArgs lags = new SaveLocationArgs();
                                    lags.Location = location;
                                    p.Client.SaveLocation(SenderUser, lags);
                                }
                            }
                            #endregion
                        }
                    }
                    args.TransportDetails = listdetails;
                    p.Client.SaveTransport(SenderUser, args);
                }
                WriteSuccess();
            }
            catch (Exception ex)
            {
                WriteError(ex.Message, ex);
            }
        }
Esempio n. 9
0
        public void CreatedScheduling(Sender sender, SaveCreatedSchedulingArgs args)
        {
            try
            {
                using (ObjectProxy op = new ObjectProxy(true))
                {
                    #region 部件工序
                    if (args.OrderWorkFlows != null)
                    {
                        foreach (OrderWorkFlow workflow in args.OrderWorkFlows)
                        {
                            OrderWorkFlow ow = new OrderWorkFlow();
                            ow.WorkingID = workflow.WorkingID;
                            if (op.LoadOrderWorkFlowByWorkingID(ow) == 0)
                            {
                                op.InsertOrderWorkFlow(workflow);
                            }
                            else
                            {
                                op.UpdateOrderWorkFlowByWorkingID(workflow);
                            }
                        }
                    }
                    #endregion

                    #region 排产计划
                    if (args.OrderSchedulings != null)
                    {
                        foreach (OrderScheduling item in args.OrderSchedulings)
                        {
                            OrderScheduling subobj = new OrderScheduling();
                            subobj.MadeID = item.MadeID;
                            if (op.LoadOrderSchedulingByMadeID(subobj) == 0)
                            {
                                item.Created    = DateTime.Now;
                                item.CreatedBy  = sender.UserCode + "." + sender.UserName;
                                item.Modified   = DateTime.Now;
                                item.ModifiedBy = sender.UserCode + "." + sender.UserName;
                                op.InsertOrderScheduling(item);
                            }
                            else
                            {
                                item.Modified   = DateTime.Now;
                                item.ModifiedBy = sender.UserCode + "." + sender.UserName;
                                op.UpdateOrderSchedulingByMadeID(item);
                            }
                        }
                    }
                    //工作车间生产计划
                    if (args.WorkCenterSchedulings != null)
                    {
                        foreach (WorkCenterScheduling item in args.WorkCenterSchedulings)
                        {
                            WorkCenterScheduling wcs = new WorkCenterScheduling();
                            wcs.WorkID = item.WorkID;
                            if (op.LoadWorkCenterSchedulingByWorkID(wcs) == 0)
                            {
                                item.Created    = DateTime.Now;
                                item.CreatedBy  = sender.UserCode + "." + sender.UserName;
                                item.Modified   = DateTime.Now;
                                item.ModifiedBy = sender.UserCode + "." + sender.UserName;
                                op.InsertWorkCenterScheduling(item);
                            }
                            else
                            {
                                item.Modified   = DateTime.Now;
                                item.ModifiedBy = sender.UserCode + "." + sender.UserName;
                                op.UpdateWorkCenterSchedulingByWorkID(item);
                            }
                        }
                    }
                    #endregion

                    #region 包装数据
                    if (args.PackageDetails != null)
                    {
                        foreach (PackageDetail item in args.PackageDetails)
                        {
                            PackageDetail subobj = new PackageDetail();
                            subobj.DetailID = item.DetailID;
                            if (op.LoadPackageDetailByDetailID(subobj) == 0)
                            {
                                item.Created    = DateTime.Now;
                                item.CreatedBy  = string.Format("{0}.{1}", sender.UserCode, sender.UserName);
                                item.Modified   = DateTime.Now;
                                item.ModifiedBy = string.Format("{0}.{1}", sender.UserCode, sender.UserName);
                                op.InsertPackageDetail(item);
                            }
                            else
                            {
                                item.Modified   = DateTime.Now;
                                item.ModifiedBy = string.Format("{0}.{1}", sender.UserCode, sender.UserName);
                                op.UpdatePackageDetailByDetailID(item);
                            }
                        }
                    }
                    #endregion

                    #region 修改柜体状态
                    List <Guid> OrderIDs = new List <Guid>();
                    if (args.CabinetIDs != null)
                    {
                        foreach (Guid CabinetID in args.CabinetIDs)
                        {
                            Order2Cabinet cabinet = new Order2Cabinet();
                            cabinet.CabinetID = CabinetID;
                            if (op.LoadOrder2CabinetByCabinetID(cabinet) != 0)
                            {
                                if (!OrderIDs.Contains(cabinet.OrderID))
                                {
                                    OrderIDs.Add(cabinet.OrderID);
                                }
                                Order order = new Order();
                                order.OrderID = cabinet.OrderID;
                                if (op.LoadOrder(order) != 0)
                                {
                                    //订单日志
                                    OrderLog log = new OrderLog();
                                    log.LogID     = Guid.NewGuid();
                                    log.OrderID   = order.OrderID;
                                    log.LogType   = "订单排产";
                                    log.Remark    = "完成排产";
                                    log.Created   = DateTime.Now;
                                    log.CreatedBy = sender.UserCode + "." + sender.UserName;
                                    op.InsertOrderLog(log);

                                    //流程步骤
                                    //OrderTask ot = new OrderTask();
                                    //ot.Action = "排产完成,待订单优化";
                                    //ot.CurrentStep = "订单排产";
                                    //ot.ActionRemarksType = "订单系统操作";
                                    //ot.ActionRemarks = "排产完成,待订单优化";
                                    //ot.Resource = "订单排产组";
                                    //ot.NextResources = "订单优化组";
                                    //ot.NextStep = "待生产优化";

                                    cabinet.BattchCode    = args.BattchCode;
                                    cabinet.CabinetStatus = "M";//待生产
                                    op.UpdateOrder2CabinetByCabinetID(cabinet);

                                    SaveOrderArgs orderargs = new SaveOrderArgs();
                                    orderargs.Order = order;
                                    //orderargs.OrderTask = ot;
                                    //orderargs.Order2Cabinets = new List<Order2Cabinet>() { cabinet };
                                    //this.SubmitTask(op, sender, orderargs);
                                }
                            }
                        }

                        foreach (Guid orderID in OrderIDs)
                        {
                            //op.UpdateMadeOrderStatus(orderID);
                        }
                    }
                    #endregion

                    op.CommitTransaction();
                }
            }
            catch (Exception ex)
            {
                PLogger.LogError(ex);
                throw ex;
            }
        }
Esempio n. 10
0
        public void ImportPartnerOrder()
        {
            try
            {
                string OrderID = Request["OrderID"];
                if (string.IsNullOrEmpty(OrderID))
                {
                    throw new Exception("请选择订单类型");
                }
                if (CurrentUser.UserType == (int)UserType.D)
                {
                    throw new Exception("非法操作");
                }
                using (ProxyBE p = new ProxyBE())
                {
                    SaveOrderArgs args = new SaveOrderArgs();

                    PartnerOrder parm = p.Client.GetPartnerOrder(SenderUser, new Guid(OrderID));

                    //订单数据
                    Order order = new Order();
                    order.OrderID = parm.OrderID;
                    //order.OrderNo = parm.OrderNo;
                    order.PartnerID      = parm.PartnerID;
                    order.CustomerID     = parm.CustomerID;
                    order.OutOrderNo     = parm.OrderNo;
                    order.Address        = parm.Address;
                    order.CustomerName   = parm.CustomerName;
                    order.AttachmentFile = parm.AttachmentFile;
                    order.PartnerName    = parm.PartnerName;
                    order.SalesMan       = parm.SalesMan;
                    order.BookingDate    = parm.BookingDate;
                    order.Mobile         = parm.Mobile;
                    order.ShipDate       = parm.ShipDate;
                    order.OrderType      = parm.OrderType;
                    order.Remark         = parm.Remark;
                    order.Status         = OrderStatus.C.ToString();
                    order.StepNo         = p.Client.GetOrderStepByStepCode(SenderUser, StepCode.importorder.ToString()).StepNo;
                    order.Created        = DateTime.Now;
                    order.CreatedBy      = SenderUser.UserCode + "." + SenderUser.UserName;
                    args.Order           = order;

                    //产品数据
                    List <PartnerOrderProduct> list     = p.Client.GetPartnerOrderProductByOrderID(SenderUser, new Guid(OrderID));
                    List <OrderProduct>        Products = new List <OrderProduct>();
                    foreach (PartnerOrderProduct item in list)
                    {
                        OrderProduct Product = new OrderProduct();
                        Product.OrderID          = order.OrderID;
                        Product.ProductID        = item.ProductID;
                        Product.ProductName      = item.ProductName;
                        Product.ProductGroup     = item.ProductGroup;
                        Product.Qty              = item.Qty;
                        Product.Price            = item.Price;
                        Product.Size             = item.Size;
                        Product.MaterialStyle    = item.MaterialStyle;
                        Product.Color            = item.Color;
                        Product.MaterialCategory = item.MaterialCategory;
                        Product.Unit             = item.Unit;
                        Product.Remark           = item.Remark;
                        Product.SalePrice        = item.SalePrice;
                        Product.TotalAreal       = item.TotalAreal;
                        Product.TotalLength      = item.TotalLength;
                        Product.Created          = DateTime.Now;
                        Product.CreatedBy        = SenderUser.UserCode + "." + SenderUser.UserName;
                        Products.Add(Product);
                    }
                    args.OrderProducts = Products;

                    OrderStep step = p.Client.GetOrderStepByStepCode(SenderUser, StepCode.importorder.ToString());

                    OrderStepLog ot = new OrderStepLog();
                    ot.StepID         = Guid.NewGuid();
                    ot.OrderID        = order.OrderID;
                    ot.StepNo         = step.StepNo;
                    ot.StepName       = step.StepName;
                    ot.Remark         = string.Empty;
                    args.OrderStepLog = ot;

                    p.Client.SaveOrder(SenderUser, args);
                    Order model = new Order()
                    {
                        Status  = args.Order.Status,
                        StepNo  = args.Order.StepNo,
                        OrderID = args.Order.OrderID,
                    };
                    p.Client.UpdatePartnerOrder(model);
                }
                WriteSuccess();
            }
            catch (Exception ex)
            {
                PLogger.LogError(ex);
                throw ex;
            }
        }
Esempio n. 11
0
        public void SaveOrder(Sender sender, SaveOrderArgs args)
        {
            try
            {
                using (ObjectProxy op = new ObjectProxy(true))
                {
                    Order obj = new Order();
                    obj.OrderID = args.Order.OrderID;

                    List <Category> Categorys = op.LoadCategorysByParentID(ORDERTYPECATEGORORYID);


                    if (op.LoadOrder(obj) == 0)
                    {
                        string ordertypeCode = Categorys.Where(t => t.CategoryName == args.Order.OrderType).FirstOrDefault().CategoryCode;
                        string key           = ordertypeCode + DateTime.Now.ToString("yy");

                        int index = this.GetIncrease(sender, key);
                        args.Order.OrderNo = key + DateTime.Now.Month.ToString("00") + index.ToString("00000");

                        args.Order.Created    = DateTime.Now;
                        args.Order.CreatedBy  = sender.UserCode + "." + sender.UserName;
                        args.Order.Modified   = DateTime.Now;
                        args.Order.ModifiedBy = sender.UserCode + "." + sender.UserName;
                        op.InsertOrder(args.Order);
                    }
                    else
                    {
                        args.Order.Modified   = DateTime.Now;
                        args.Order.ModifiedBy = sender.UserCode + "." + sender.UserName;
                        op.UpdateOrderByOrderID(args.Order);
                    }



                    #region 订单产品
                    if (args.OrderProducts != null)
                    {
                        for (int i = 0; i < args.OrderProducts.Count; i++)
                        {
                            var          model  = args.OrderProducts[i];
                            OrderProduct subObj = new OrderProduct();
                            subObj.ProductID = model.ProductID;
                            if (op.LoadOrderProduct(subObj) == 0)
                            {
                                if (string.IsNullOrEmpty(model.ProductCode) || model.ProductCode.Length <= 1)
                                {
                                    //subObj.CabinetCode = args.Order.OrderNo + (char)(64 + order2Cabinet.Sequence);
                                    model.ProductCode = string.Format("{0}-{1}-{2}", args.Order.OrderNo, args.OrderProducts.Count, i + 1);
                                }
                                model.Created    = DateTime.Now;
                                model.CreatedBy  = sender.UserCode + "." + sender.UserName;
                                model.Modified   = DateTime.Now;
                                model.ModifiedBy = sender.UserCode + "." + sender.UserName;
                                op.InsertOrderProduct(model);
                            }
                            else
                            {
                                if (string.IsNullOrEmpty(model.ProductCode) || model.ProductCode.Length <= 1)
                                {
                                    //order2Cabinet.CabinetCode = args.Order.OrderNo + (char)(64 + order2Cabinet.Sequence);
                                    model.ProductCode = string.Format("{0}-{1}-{2}", args.Order.OrderNo, args.OrderProducts.Count, i + 1);
                                }
                                model.Modified   = DateTime.Now;
                                model.ModifiedBy = sender.UserCode + "." + sender.UserName;
                                op.UpdateOrderProductByProductID(model);
                            }
                        }
                    }
                    #endregion

                    #region 订单步骤
                    if (args.OrderStepLog != null)
                    {
                        args.OrderStepLog.Started   = DateTime.Now;
                        args.OrderStepLog.StartedBy = sender.UserCode + "." + sender.UserName;
                        op.InsertOrderStepLog(args.OrderStepLog);
                    }
                    #endregion

                    op.CommitTransaction();
                }
            }
            catch (Exception ex)
            {
                PLogger.LogError(ex);
                throw ex;
            }
        }
Esempio n. 12
0
        public void OrderReview()
        {
            try
            {
                using (ProxyBE p = new ProxyBE())
                {
                    string OrderID = Request["OrderID"];
                    if (string.IsNullOrEmpty(OrderID))
                    {
                        throw new Exception("OrderID:参数无效");
                    }
                    string Remark = Request["Remark"];
                    if (string.IsNullOrEmpty(Remark))
                    {
                        throw new Exception("Remark:参数无效");
                    }
                    Order order = p.Client.GetOrder(SenderUser, Guid.Parse(OrderID));

                    if (order.Status.ToUpper() == OrderStatus.F.ToString())
                    {
                        SaveOrderArgs args = new SaveOrderArgs();

                        OrderStep    step = p.Client.GetOrderStepByStepCode(SenderUser, StepCode.ordersreview.ToString());
                        OrderStepLog ot   = new OrderStepLog();
                        ot.StepID         = Guid.NewGuid();
                        ot.OrderID        = order.OrderID;
                        ot.StepNo         = step.StepNo;
                        ot.StepName       = step.StepName;
                        ot.Remark         = Remark;
                        args.OrderStepLog = ot;

                        order.Status = OrderStatus.G.ToString();
                        order.StepNo = step.StepNo;
                        args.Order   = order;

                        p.Client.SaveOrder(SenderUser, args);
                        p.Client.UpdatePartnerOrder(args.Order);
                    }

                    #region PartnerTransDetail
                    string Payee     = Request["Payee"].ToString();     //收款人
                    string Amount    = Request["Amount"].ToString();    //收款金额
                    string TransDate = Request["TransDate"].ToString(); //收款日期
                    string VoucherNo = Request["VoucherNo"].ToString(); //凭证号
                    if (!string.IsNullOrEmpty(Payee) && !string.IsNullOrEmpty(Amount) && !string.IsNullOrEmpty(TransDate) && !string.IsNullOrEmpty(VoucherNo))
                    {
                        ReviewDetail model = new ReviewDetail()
                        {
                            TransID   = Guid.NewGuid(),
                            OrderID   = order.OrderID,
                            Payee     = Payee,
                            Amount    = decimal.Parse(Amount),
                            TransDate = Convert.ToDateTime(TransDate),
                            VoucherNo = VoucherNo,
                        };
                        p.Client.SaveReviewDetail(SenderUser, model);
                    }
                    #endregion

                    #region ProductBOM
                    List <OrderProduct> list = p.Client.GetOrderProductByOrderID(SenderUser, order.OrderID);
                    foreach (OrderProduct Item in list)
                    {
                        ProductBOM model = new ProductBOM()
                        {
                            ProductCode = Item.ProductCode,
                            Status      = false,
                        };
                        p.Client.SaveProductBOM(SenderUser, model);
                    }
                    #endregion
                }
                WriteSuccess();
            }
            catch (Exception ex)
            {
                WriteError(ex.Message, ex);
            }
        }
Esempio n. 13
0
        public void OrdersConfirm()
        {
            try
            {
                using (ProxyBE p = new ProxyBE())
                {
                    string remark = Request["Remark"];
                    if (string.IsNullOrEmpty(Request["Remark"]))
                    {
                        throw new Exception("Remark:参数无效");
                    }
                    string OrderID = Request["OrderID"];
                    if (string.IsNullOrEmpty(Request["OrderID"]))
                    {
                        throw new Exception("OrderID:参数无效");
                    }
                    string ConfirmState = Request["ConfirmState"];

                    Order order = p.Client.GetOrder(SenderUser, Guid.Parse(OrderID));

                    if (order.Status.ToUpper() == OrderStatus.C.ToString())
                    {
                        SaveOrderArgs args = new SaveOrderArgs();

                        if (ConfirmState == "true")//审核通过
                        {
                            OrderStep    step = p.Client.GetOrderStepByStepCode(SenderUser, StepCode.ordersconfirm.ToString());
                            OrderStepLog ot   = new OrderStepLog();
                            ot.StepID         = Guid.NewGuid();
                            ot.OrderID        = order.OrderID;
                            ot.StepNo         = step.StepNo;
                            ot.StepName       = step.StepName;
                            ot.Remark         = Request["Remark"];
                            args.OrderStepLog = ot;

                            order.Status = OrderStatus.D.ToString();
                            order.StepNo = step.StepNo;
                            args.Order   = order;
                        }
                        else//审核不通过
                        {
                            OrderStep    step = p.Client.GetOrderStepByStepCode(SenderUser, StepCode.ordersconfirm.ToString());
                            OrderStepLog ot   = new OrderStepLog();
                            ot.StepID         = Guid.NewGuid();
                            ot.OrderID        = order.OrderID;
                            ot.StepNo         = step.StepNo;
                            ot.StepName       = step.StepName;
                            ot.Remark         = Request["Remark"];
                            args.OrderStepLog = ot;

                            order.Status = OrderStatus.Z.ToString();
                            order.StepNo = 0;
                            args.Order   = order;
                        }

                        p.Client.SaveOrder(SenderUser, args);
                        p.Client.UpdatePartnerOrder(args.Order);
                    }

                    WriteSuccess();
                }
            }
            catch (Exception ex)
            {
                WriteError(ex.Message, ex);
            }
        }
Esempio n. 14
0
        public void SaveOrder()
        {
            try
            {
                using (ProxyBE p = new ProxyBE())
                {
                    #region Order
                    var   flag  = "false";
                    Order order = p.Client.GetOrder(SenderUser, parm.OrderID);
                    if (parm.OrderType == "")
                    {
                        throw new Exception("请选择订单类型");
                    }
                    if (order == null)
                    {
                        order         = new Order();
                        order.OrderID = parm.OrderID;
                    }

                    //修改订单保存
                    flag = Request["edit"];
                    if (flag == "true")
                    {
                        order.OrderNo = parm.OrderNo;
                    }
                    else
                    {
                        order.OrderNo = "";
                    }
                    order.PartnerID      = parm.PartnerID;
                    order.CustomerID     = parm.CustomerID;
                    order.OutOrderNo     = parm.OutOrderNo;
                    order.Address        = parm.Address;
                    order.CustomerName   = parm.CustomerName;
                    order.AttachmentFile = HttpUtility.UrlDecode(parm.AttachmentFile, Encoding.UTF8);
                    order.PartnerName    = parm.PartnerName;
                    order.SalesMan       = parm.SalesMan;
                    order.BookingDate    = parm.BookingDate;
                    order.Mobile         = parm.Mobile;
                    order.ShipDate       = parm.ShipDate;
                    order.OrderType      = parm.OrderType;
                    order.Remark         = parm.Remark;
                    order.Status         = OrderStatus.C.ToString();
                    order.StepNo         = p.Client.GetOrderStepByStepCode(SenderUser, StepCode.addorder.ToString()).StepNo;
                    SaveOrderArgs args = new SaveOrderArgs();
                    args.Order = order;
                    #endregion

                    #region OrderProduct
                    List <OrderProduct> list = new List <OrderProduct>();
                    string   Cabinets        = Request["Cabinets"];
                    JsonData sj = JsonMapper.ToObject(Cabinets);
                    if (sj.Count > 0)
                    {
                        foreach (JsonData item in sj)
                        {
                            OrderProduct model = new OrderProduct();
                            model.OrderID          = order.OrderID;
                            model.ProductID        = Guid.Parse(item["ProductID"].ToString());
                            model.ProductName      = item["ProductName"].ToString();
                            model.ProductGroup     = item["ProductGroup"].ToString();
                            model.Qty              = Decimal.Parse(item["Qty"].ToString());
                            model.Price            = Decimal.Parse(item["Price"].ToString());
                            model.Size             = item["Size"].ToString();
                            model.MaterialStyle    = item["MaterialStyle"].ToString();
                            model.Color            = item["Color"].ToString();
                            model.MaterialCategory = item["MaterialCategory"].ToString();
                            model.Unit             = item["Unit"].ToString();
                            model.Remark           = item["Remark"].ToString();
                            model.SalePrice        = 0;
                            model.TotalAreal       = 0;
                            model.TotalLength      = 0;
                            model.ProductStatus    = "N";
                            //Product.ProductCode = ((char)(64 + cabinet.Sequence)).ToString();
                            if (flag == "true")
                            {
                                model.Created   = DateTime.Now;
                                model.CreatedBy = SenderUser.UserCode + "." + SenderUser.UserName;
                            }
                            list.Add(model);
                        }
                    }
                    args.OrderProducts = list;
                    #endregion

                    #region  OrderLog /OrderTask
                    if (flag != "true")
                    {
                        OrderStep    step = p.Client.GetOrderStepByStepCode(SenderUser, StepCode.addorder.ToString());
                        OrderStepLog ot   = new OrderStepLog();
                        ot.StepID         = Guid.NewGuid();
                        ot.OrderID        = order.OrderID;
                        ot.StepNo         = step.StepNo;
                        ot.StepName       = step.StepName;
                        ot.Remark         = string.Empty;
                        args.OrderStepLog = ot;
                    }
                    #endregion

                    #region OrderProcessFile
                    string  filePath    = Config.StorageFolder;
                    Partner partner     = p.Client.GetPartner(SenderUser, order.PartnerID);
                    string  PartnerCode = partner.PartnerCode;
                    filePath = Path.Combine(filePath, DateTime.Now.ToString("yyyyMM"));
                    filePath = Path.Combine(filePath, PartnerCode);
                    filePath = Path.Combine(filePath, DateTime.Now.ToString("yyyyMM"));
                    filePath = Path.Combine(filePath, PartnerCode + "-" + DateTime.Now.ToString("yyyyMM"));
                    if (!Directory.Exists(filePath))
                    {
                        Directory.CreateDirectory(filePath);
                    }

                    List <OrderProcessFile> ProcessFiles = new List <OrderProcessFile>();
                    IList <HttpPostedFile>  SceneFiles   = Request.Files.GetMultiple("SceneFile");
                    foreach (HttpPostedFile file in SceneFiles)
                    {
                        if (file.ContentLength == 0)
                        {
                            continue;
                        }
                        string savepath = Path.Combine(filePath, "SceneFile");
                        if (!Directory.Exists(savepath))
                        {
                            Directory.CreateDirectory(savepath);
                        }
                        savepath = Path.Combine(savepath, file.FileName);
                        if (File.Exists(savepath))
                        {
                            File.Delete(savepath);
                        }
                        file.SaveAs(savepath);
                        OrderProcessFile pf = p.Client.GetOrderProcessFileByOrderID_FileType_FileName(SenderUser, order.OrderID, "SceneFile", Path.GetFileName(savepath));
                        if (pf == null)
                        {
                            pf          = new OrderProcessFile();
                            pf.OrderID  = parm.OrderID;
                            pf.FileID   = Guid.NewGuid();
                            pf.FileName = Path.GetFileName(savepath);
                            pf.FilePath = savepath;
                            pf.FileType = "SceneFile";
                        }
                        ProcessFiles.Add(pf);
                    }


                    if (ProcessFiles.Count > 0)
                    {
                        args.OrderProcessFiles = ProcessFiles;
                    }
                    #endregion

                    p.Client.SaveOrder(SenderUser, args);
                }
                WriteSuccess();
            }
            catch (Exception ex)
            {
                WriteError(ex.Message, ex);
            }
        }