Пример #1
0
        public Box GetCurrentBox(DirectLine directLine, int warehouseID, int methodID = 0)
        {
            MyHelp.Log("Box", null, string.Format("取得當前未出貨的{0} Box", directLine.Abbreviation), Session);

            boxData = db.Box.Where(b => b.IsEnable && !b.IsReserved && b.DirectLine.Equals(directLine.ID) && b.WarehouseFrom.Equals(warehouseID) && b.FirstMileMethod.Equals(methodID) && b.ShippingStatus.Equals((byte)EnumData.DirectLineStatus.未發貨))
                      .OrderByDescending(b => b.Create_at).FirstOrDefault();
            if (boxData == null)
            {
                MyHelp.Log("Box", null, string.Format("開始建立【{0}】新Box", directLine.Abbreviation), Session);

                string boxID = string.Format("{0}-{1}", directLine.Abbreviation, TimeZoneConvert.Utc.ToString("yyyyMMdd"));
                int    count = db.Box.AsNoTracking().Where(b => b.IsEnable && b.DirectLine.Equals(directLine.ID) && b.BoxID.Contains(boxID)).Select(b => b.MainBox).Distinct().Count() + 1;
                byte[] Byte  = BitConverter.GetBytes(count);
                Byte[0] += 64;
                boxData  = new Box()
                {
                    IsEnable        = true,
                    BoxID           = string.Format("{0}-{1}", boxID, System.Text.Encoding.ASCII.GetString(Byte.Take(1).ToArray())),
                    DirectLine      = directLine.ID,
                    FirstMileMethod = methodID,
                    WarehouseFrom   = warehouseID,
                    BoxType         = (byte)EnumData.DirectLineBoxType.DirectLine,
                    Create_at       = TimeZoneConvert.Utc
                };
                boxData.MainBox         = boxData.BoxID;
                db.Entry(boxData).State = System.Data.Entity.EntityState.Added;
                db.SaveChanges();

                MyHelp.Log("Box", boxData.BoxID, string.Format("Box【{0}】建立完成", boxData.BoxID), Session);
            }

            return(boxData);
        }
Пример #2
0
        private void Sendle_Test(int OrderID)
        {
            var packageList = db.Box.Where(b => b.BoxID.Contains("ECOF-")).SelectMany(b => b.Packages.Where(p => p.IsEnable.Value)).ToList();

            foreach (var package in packageList)
            {
                Sendle_API Sendle = new Sendle_API(package.Method.Carriers.CarrierAPI);
                var        order  = Sendle.Order(package.TagNo);
                package.TrackingNumber  = order.sendle_reference;
                db.Entry(package).State = System.Data.Entity.EntityState.Modified;
            }
            db.SaveChanges();
            //Packages package = db.Packages.First(p => p.IsEnable.Value && p.OrderID.Value.Equals(OrderID));
            //Sendle_API Sendle = new Sendle_API(package.Method.Carriers.CarrierAPI);

            //TrackOrder track = new TrackOrder();
            //track.SetOrder(package.Orders, package);
            //var result = track.Track();
            //var result = Sendle.Create(package);
            //var order = Sendle.Order(result.order_id);
            //Sendle.Label(result.order_id, string.Format("{0}-{1}-{2}", package.Items.First().ProductID, package.OrderID.Value, result.sendle_reference), @"C:\Users\qdtuk\Downloads");
            //var track = Sendle.Track(package.TrackingNumber);
            //var cancel = Sendle.Cancel(result.order_id);
        }
Пример #3
0
 public void Update(TEntity entity)
 {
     db.Entry(entity).State = EntityState.Modified;
 }