public async Task <IActionResult> Create(TrackingDetail trackingDetail)
        {
            if (ModelState.IsValid)
            {
                TrackingHeader parent = await _context.TrackingHeaders.AsNoTracking().FirstOrDefaultAsync(h => h.TrackingID == trackingDetail.TrackingId);

                Vehiculo vehiculo = await _context.Vehiculos.AsNoTracking().FirstOrDefaultAsync(v => v.VIN == parent.VINVehiculo);

                if (vehiculo != null)
                {
                    vehiculo.PrecioMinimo      += trackingDetail.Costo;
                    vehiculo.PrecioRecomendado += trackingDetail.Costo;
                    _context.Vehiculos.Update(vehiculo);
                }

                _context.Add(trackingDetail);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Edit), "TrackingHeaders", new { @id = trackingDetail.TrackingId }));
            }
            ViewData["TrackingId"]  = new SelectList(_context.TrackingHeaders, "TrackingID", "TrackingID", trackingDetail.TrackingId);
            ViewData["ProveedorId"] = new SelectList(_context.Proveedores, "ID", "NombreEmpresa", trackingDetail.ProveedorId);
            ViewData["TrabajoId"]   = new SelectList(_context.Trabajos, "ID", "Descripcion", trackingDetail.TrabajoId);
            return(View(trackingDetail));
        }
        public ActionResult AddNew(string [] array, Guid exportId)
        {
            try
            {
                List <Result> lst = new List <Result>();
                foreach (var item in array)
                {
                    Guid id = Guid.NewGuid();

                    TrackingDetail detail = db.TrackingDetails.Find(Guid.Parse(item));
                    lst.Add(new Result()
                    {
                        Id = id, TrackingCode = detail.TrackingSubCode
                    });
                    ExportGoodDetail exportDetail = new ExportGoodDetail()
                    {
                        CreatedAt        = DateTime.Now,
                        CreatedBy        = user.Staff.UserName,
                        ExportGoodId     = exportId,
                        Id               = id,
                        Notes            = "",
                        TrackingCode     = detail.TrackingSubCode,
                        TrackingDetailId = detail.Id,
                        UpdatedAt        = DateTime.Now,
                        UpdatedBy        = user.Staff.UserName
                    };
                    db.ExportGoodDetails.Add(exportDetail);
                }
                db.SaveChanges();
                return(Json(new { message = lst, status = true }, JsonRequestBehavior.AllowGet));
            }
            catch { return(Json(new { message = "Đã xảy ra lỗi trong quá trình thêm dữ liệu", status = false }, JsonRequestBehavior.AllowGet)); }
        }
        public async Task <IActionResult> Edit(int id, TrackingDetail trackingDetail)
        {
            if (id != trackingDetail.ID)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    TrackingDetail originalDetail = await _context.TrackinDetails.AsNoTracking().FirstOrDefaultAsync(d => d.ID == id);

                    if (originalDetail != null)
                    {
                        originalDetail.Parent = await _context.TrackingHeaders.AsNoTracking().FirstOrDefaultAsync(h => h.TrackingID == originalDetail.TrackingId);

                        Vehiculo vehiculo = await _context.Vehiculos.AsNoTracking().FirstOrDefaultAsync(v => v.VIN == originalDetail.Parent.VINVehiculo);

                        if (vehiculo != null)
                        {
                            if (originalDetail.Costo > trackingDetail.Costo)
                            {
                                vehiculo.PrecioMinimo      -= originalDetail.Costo - trackingDetail.Costo;
                                vehiculo.PrecioRecomendado -= originalDetail.Costo - trackingDetail.Costo;
                            }
                            else if (trackingDetail.Costo > originalDetail.Costo)
                            {
                                vehiculo.PrecioMinimo      += trackingDetail.Costo - originalDetail.Costo;
                                vehiculo.PrecioRecomendado += trackingDetail.Costo - originalDetail.Costo;
                            }
                            //how to update this vehiculo ?
                            _context.Vehiculos.Update(vehiculo);
                        }
                    }

                    _context.Update(trackingDetail);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!TrackingDetailExists(trackingDetail.ID))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Edit), "TrackingHeaders", new { @id = trackingDetail.TrackingId }));
            }
            ViewData["TrackingId"]  = new SelectList(_context.TrackingHeaders, "TrackingID", "TrackingID", trackingDetail.TrackingId);
            ViewData["ProveedorId"] = new SelectList(_context.Proveedores, "ID", "NombreEmpresa", trackingDetail.ProveedorId);
            ViewData["TrabajoId"]   = new SelectList(_context.Trabajos, "ID", "Descripcion", trackingDetail.TrabajoId);
            return(View(trackingDetail));
        }
        // GET: TrackingDetails/Create
        public IActionResult Create(int trackingId)
        {
            TrackingDetail detail = new TrackingDetail()
            {
                Parent     = this._context.TrackingHeaders.FirstOrDefault(h => h.TrackingID == trackingId),
                TrackingId = trackingId
            };

            ViewData["TrackingId"]  = new SelectList(_context.TrackingHeaders, "TrackingID", "TrackingID");
            ViewData["ProveedorId"] = new SelectList(_context.Proveedores, "ID", "NombreEmpresa");
            ViewData["TrabajoId"]   = new SelectList(_context.Trabajos, "ID", "Descripcion");
            return(View(detail));
        }
        public async Task <IActionResult> DeleteConfirmed(int id)
        {
            var proveedor = await _context.Proveedores.FindAsync(id);

            TrackingDetail trackingDetail = await this._context.TrackinDetails.FirstOrDefaultAsync(t => t.ProveedorId == id);

            if (trackingDetail != null)
            {
                ModelState.AddModelError("ID", "No se puede eliminar este proveedor.");
                return(View(proveedor));
            }
            _context.Proveedores.Remove(proveedor);
            await _context.SaveChangesAsync();

            return(RedirectToAction(nameof(Index)));
        }
        public async Task <IActionResult> DeleteConfirmed(int id)
        {
            TrackingDetail track = this._context.TrackinDetails.FirstOrDefault(t => t.TrabajoId == id);

            var trabajo = await _context.Trabajos.FindAsync(id);

            if (track != null)
            {
                ModelState.AddModelError("ID", "No se puede eliminar, este trabajo está en uso.");
                return(View(trabajo));
            }
            _context.Trabajos.Remove(trabajo);
            await _context.SaveChangesAsync();

            return(RedirectToAction(nameof(Index)));
        }
Exemple #7
0
        protected void AppendVariable(string name, TrackingDetail value, bool alwaysinclude, ref string output)
        {
            string body = null;

            if (value != null)
            {
                AppendVariable(name + "[datetime]", value.datetime, false, ref body);
                AppendVariable(name + "[message]", value.message, false, ref body);
                AppendVariable(name + "[source]", value.source, false, ref body);
                AppendVariable(name + "[status]", value.status, false, ref body);
            }
            else if (alwaysinclude)
            {
                body = name + "=";
            }
            if (body != null)
            {
                if (output != null && output.Length > 0)
                {
                    output += "&";
                }
                output += body;
            }
        }
        public ActionResult StorageJPFull(string fileName = "")
        {
            //upload file
            HttpPostedFileBase file = Request.Files[0];

            fileName = file.FileName.DoiTenFile();
            file.SaveAs(Server.MapPath("~/Uploads/StorageJP/" + fileName));
            // Opening the Excel template...
            FileStream fs = new FileStream(Server.MapPath("~/Uploads/StorageJP/" + fileName), FileMode.Open, FileAccess.Read);
            // Getting the complete workbook...
            ISheet sheet = null;

            if (fileName.Contains(".xlsx"))
            {
                XSSFWorkbook templateWorkbook = new XSSFWorkbook(Server.MapPath("~/Uploads/StorageJP/" + fileName));
                sheet = templateWorkbook.GetSheet("例");
            }
            else if (fileName.Contains(".xls"))
            {
                HSSFWorkbook templateWorkbook = new HSSFWorkbook(fs, true);
                sheet = templateWorkbook.GetSheet("例");
            }
            //read excel
            WebsiteHelpers        websiteHelper     = new WebsiteHelpers();
            List <StorageJP>      lstStorageJP      = new List <StorageJP>();
            List <StorageItemJP>  lstStorageItemJP  = new List <StorageItemJP>();
            List <TrackingDetail> lstTrackingDetail = new List <TrackingDetail>();
            Guid IdTracking = Guid.NewGuid();

            #region read excel

            //check column
            string nameJP       = "";
            string trackingCode = "";
            string urlReport    = ConfigurationManager.AppSettings["url_report_storejp"];
            Guid   storeId      = Guid.NewGuid();
            for (int row = 3; row <= sheet.LastRowNum; row++)
            {
                nameJP       = sheet.GetRow(row).GetCell(getIndexColumn(sheet, "Tên Hàng Jp(*)")).StringCellValue;
                trackingCode = sheet.GetRow(row).GetCell(getIndexColumn(sheet, "Mã Tracking(*)")).StringCellValue;
                if (nameJP == "" && trackingCode == "")
                {
                    break;
                }
                if (trackingCode != "" && trackingCode != null)
                {
                    IdTracking = Guid.NewGuid();
                    string size = sheet.GetRow(row).GetCell(getIndexColumn(sheet, "Size")).StringCellValue;
                    size = size.Replace("cm", "").Trim();
                    double sizeInput = double.Parse(size) / 3;
                    sizeInput = sizeInput - Math.Round(sizeInput / 3);
                    double   dai    = double.Parse(size) - 2 * sizeInput;
                    DateTime revice = new DateTime();
                    try
                    {
                        revice = sheet.GetRow(row).GetCell(getIndexColumn(sheet, "Ngày nhận")).DateCellValue;
                    }
                    catch {
                        try
                        {
                            revice = DateTime.ParseExact(sheet.GetRow(row).GetCell(getIndexColumn(sheet, "Ngày nhận")).StringCellValue, "yyyy-MM-dd", null);
                        }
                        catch { }
                    }
                    if (lstStorageJP.Where(n => n.TrackingCode == trackingCode.Trim()).Count() == 0)
                    {
                        storeId = Guid.NewGuid();
                        StorageJP store = new Models.StorageJP()
                        {
                            Id              = storeId,
                            AgencyId        = user.Agency.Id,
                            CreatedAt       = DateTime.Now,
                            CreatedBy       = user.Staff.UserName,
                            DeliveryAddress = "",
                            StatusId        = 6,
                            TrackingCode    = trackingCode.Trim(),
                            ReceivedDate    = revice,
                            Size            = "size-input",
                            SizeInput       = dai + " " + sizeInput + " " + sizeInput,
                            Notes           = sheet.GetRow(row).GetCell(getIndexColumn(sheet, "Ghi chú")).StringCellValue,
                            ReceivedHour    = sheet.GetRow(row).GetCell(getIndexColumn(sheet, "Giờ nhận")).StringCellValue,
                            Weigh           = sheet.GetRow(row).GetCell(getIndexColumn(sheet, "Số Kg")).NumericCellValue
                        };
                        lstStorageJP.Add(store);
                    }
                    TrackingDetail detail = new TrackingDetail()
                    {
                        CreatedAt       = DateTime.Now,
                        CreatedBy       = user.Staff.UserName,
                        Id              = IdTracking,
                        StoregeJPId     = storeId,
                        UpdatedAt       = DateTime.Now,
                        UpdatedBy       = user.Staff.UserName,
                        TrackingSubCode = sheet.GetRow(row).GetCell(getIndexColumn(sheet, "Mã Tách Kiện(*)")).StringCellValue
                    };
                    lstTrackingDetail.Add(detail);
                }
                else
                {
                    double price = 0;
                    try
                    {
                        price = sheet.GetRow(row).GetCell(getIndexColumn(sheet, "Giá(*)")).NumericCellValue;
                    }
                    catch { }
                    string        namejp      = sheet.GetRow(row).GetCell(getIndexColumn(sheet, "Tên Hàng Jp(*)")).StringCellValue;
                    string        nameen      = sheet.GetRow(row).GetCell(getIndexColumn(sheet, "Tên Hàng En")).StringCellValue;
                    string        linkweb     = sheet.GetRow(row).GetCell(getIndexColumn(sheet, "Weblink")).StringCellValue;
                    string        Image       = sheet.GetRow(row).GetCell(getIndexColumn(sheet, "Hình ảnh")).StringCellValue;
                    string        base64Image = "";
                    StorageItemJP storejpItem = new StorageItemJP()
                    {
                        Amount           = sheet.GetRow(row).GetCell(getIndexColumn(sheet, "Thành tiền")).NumericCellValue,
                        CategoryId       = getCategory(sheet.GetRow(row).GetCell(getIndexColumn(sheet, "Loại Hàng")).StringCellValue).Id,
                        CategoryName     = getCategory(sheet.GetRow(row).GetCell(getIndexColumn(sheet, "Loại Hàng")).StringCellValue).Name,
                        Component        = sheet.GetRow(row).GetCell(getIndexColumn(sheet, "Thành Phần")).StringCellValue,
                        Id               = Guid.NewGuid(),
                        CreatedAt        = DateTime.Now,
                        CreatedBy        = user.Staff.UserName,
                        ImageBase64      = base64Image,
                        Image            = Image,
                        ImageLinkWeb     = Image,
                        JanCode          = sheet.GetRow(row).GetCell(getIndexColumn(sheet, "Jan Code")).StringCellValue,
                        Material         = sheet.GetRow(row).GetCell(getIndexColumn(sheet, "Chất liệu")).StringCellValue,
                        LinkWeb          = linkweb,
                        MadeIn           = getMadeIn(sheet.GetRow(row).GetCell(getIndexColumn(sheet, "Xuất xứ(*)")).StringCellValue).Id + "",
                        NameEN           = nameen,
                        NameJP           = namejp,
                        PriceTax         = sheet.GetRow(row).GetCell(getIndexColumn(sheet, "Giá(*)")).NumericCellValue,
                        ProductCode      = "",
                        Quantity         = sheet.GetRow(row).GetCell(getIndexColumn(sheet, "Số Lượng(*)")).NumericCellValue,
                        UpdatedAt        = DateTime.Now,
                        StoregeJPId      = storeId,
                        UpdatedBy        = user.Staff.UserName,
                        TrackingDetailId = IdTracking
                    };
                    lstStorageItemJP.Add(storejpItem);
                }
            }
            #endregion

            //delete all data form db
            var stores = db.StorageJPs.Where(n => n.AgencyId == user.Agency.Id);
            foreach (var items in stores)
            {
                if (PageUtils.Status(items.Id).Value == "1")
                {
                    var details = items.TrackingDetails.ToList();
                    foreach (var item in details)
                    {
                        var storeItems = item.StorageItemJPs.ToList();
                        foreach (var st in storeItems)
                        {
                            db.StorageItemJPs.Remove(st);
                        }
                        db.TrackingDetails.Remove(item);
                    }
                    db.StorageJPs.Remove(items);
                }
            }
            db.SaveChanges();
            //Insert database
            foreach (var items in lstStorageJP)
            {
                db.StorageJPs.Add(items);
                var details = lstTrackingDetail.Where(n => n.StoregeJPId == items.Id);
                foreach (var item in details)
                {
                    db.TrackingDetails.Add(item);
                    var itemstores = lstStorageItemJP.Where(n => n.TrackingDetailId == item.Id);
                    foreach (var store in itemstores)
                    {
                        db.StorageItemJPs.Add(store);
                    }
                }
            }
            db.SaveChanges();
            return(View());
        }
        public ActionResult StorageJP(Guid id, string fileName = "")
        {
            var StorageJP = db.StorageJPs.Find(id);
            //upload file
            HttpPostedFileBase file = Request.Files[0];

            fileName = file.FileName.DoiTenFile();
            file.SaveAs(Server.MapPath("~/Uploads/StorageJP/" + fileName));
            //read file

            // Opening the Excel template...
            FileStream fs = new FileStream(Server.MapPath("~/Uploads/StorageJP/" + fileName), FileMode.Open, FileAccess.Read);
            // Getting the complete workbook...
            ISheet sheet = null;

            if (fileName.Contains(".xlsx"))
            {
                XSSFWorkbook templateWorkbook = new XSSFWorkbook(Server.MapPath("~/Uploads/StorageJP/" + fileName));
                sheet = templateWorkbook.GetSheet("例");
            }
            else if (fileName.Contains(".xls"))
            {
                HSSFWorkbook templateWorkbook = new HSSFWorkbook(fs, true);
                sheet = templateWorkbook.GetSheet("例");
            }
            //read excel
            WebsiteHelpers        websiteHelper     = new WebsiteHelpers();
            List <StorageItemJP>  lstStorageItemJP  = new List <StorageItemJP>();
            List <TrackingDetail> lstTrackingDetail = new List <TrackingDetail>();
            Guid IdTracking = Guid.NewGuid();

            #region read excel

            //check column

            string urlReport = ConfigurationManager.AppSettings["url_report_storejp"];
            for (int row = 4; row <= sheet.LastRowNum; row++)
            {
                double price = 0;
                try
                {
                    price = sheet.GetRow(row).GetCell(getIndexColumn(sheet, "GIA")).NumericCellValue;
                }
                catch (Exception ex) {  }
                string subcode = "";
                try
                {
                    subcode = sheet.GetRow(row).GetCell(getIndexColumn(sheet, "SO KIEN")).StringCellValue;
                    try
                    {
                        subcode = int.Parse(subcode).ToString("00");
                    }
                    catch (Exception ex) { }
                }
                catch (Exception ex) { subcode = sheet.GetRow(row).GetCell(getIndexColumn(sheet, "SO KIEN")).NumericCellValue.ToString("00"); }
                if (price == 0 && subcode != "")
                {
                    IdTracking = Guid.NewGuid();
                    TrackingDetail detail = new TrackingDetail()
                    {
                        CreatedAt       = DateTime.Now,
                        CreatedBy       = user.Staff.UserName,
                        Id              = IdTracking,
                        StoregeJPId     = StorageJP.Id,
                        Weigh           = sheet.GetRow(row).GetCell(getIndexColumn(sheet, "KG")).NumericCellValue,
                        UpdatedAt       = DateTime.Now,
                        UpdatedBy       = user.Staff.UserName,
                        StatusId        = StorageJP.StatusId,
                        TrackingSubCode = subcode
                    };
                    lstTrackingDetail.Add(detail);
                }
                else if (price != 0)
                {
                    string namejp = "";
                    string linkweb = ""; string ImageUrl = "";
                    string ImageBase64 = null;
                    try
                    {
                        namejp  = sheet.GetRow(row).GetCell(getIndexColumn(sheet, "TEN HANG_JP")).CellFormula;
                        namejp  = namejp.Replace("HYPERLINK(", "").Replace(")", "").Replace("\"", "");
                        linkweb = namejp.Split(',')[0];
                        namejp  = namejp.Split(',')[1];
                    }
                    catch (Exception ex)
                    {
                        namejp  = sheet.GetRow(row).GetCell(getIndexColumn(sheet, "TEN HANG_JP")).StringCellValue;
                        linkweb = sheet.GetRow(row).GetCell(getIndexColumn(sheet, "WEBLINK")).StringCellValue;
                    }
                    if (linkweb.ToLower().Contains(urlReport.ToLower()))
                    {
                        string idItem = linkweb.Split('/')[linkweb.Split('/').Length - 1];
                        try
                        {
                            var item = db.StorageItemJPs.Find(Guid.Parse(idItem));
                            ImageBase64 = item.ImageBase64;
                            linkweb     = item.LinkWeb;
                            ImageUrl    = item.ImageLinkWeb;
                        }
                        catch (Exception ex) { }
                    }
                    else
                    {
                        try
                        {
                            ImageUrl    = websiteHelper.GetImage(linkweb);
                            ImageBase64 = ImageUtils.Images(ImageUrl);
                        }
                        catch (Exception ex) { }
                    }
                    string component = "", material = "", JanCode = "";
                    try
                    {
                        component = sheet.GetRow(row).GetCell(getIndexColumn(sheet, "THANH PHAN")).StringCellValue;
                    }
                    catch (Exception ex) { }
                    try
                    {
                        material = sheet.GetRow(row).GetCell(getIndexColumn(sheet, "CHAT LIEU")).StringCellValue;
                    }
                    catch (Exception ex) { }
                    try
                    {
                        JanCode = sheet.GetRow(row).GetCell(getIndexColumn(sheet, "Jancode,mavach")).StringCellValue;
                    }
                    catch (Exception ex) { JanCode = sheet.GetRow(row).GetCell(getIndexColumn(sheet, "Jancode,mavach")).NumericCellValue + ""; }
                    StorageItemJP storejpItem = new StorageItemJP()
                    {
                        Amount           = sheet.GetRow(row).GetCell(getIndexColumn(sheet, "THANH TIEN")).NumericCellValue,
                        CategoryId       = getCategory(sheet.GetRow(row).GetCell(getIndexColumn(sheet, "LOAI HANG")).StringCellValue).Id,
                        CategoryName     = getCategory(sheet.GetRow(row).GetCell(getIndexColumn(sheet, "LOAI HANG")).StringCellValue).Name,
                        Component        = component,
                        Id               = Guid.NewGuid(),
                        CreatedAt        = DateTime.Now,
                        CreatedBy        = user.Staff.UserName,
                        ImageBase64      = ImageBase64,
                        ImageLinkWeb     = ImageUrl,
                        JanCode          = JanCode,
                        Material         = material,
                        LinkWeb          = linkweb,
                        MadeIn           = getMadeIn(sheet.GetRow(row).GetCell(getIndexColumn(sheet, "XUAT XU")).StringCellValue).Id + "",
                        NameEN           = sheet.GetRow(row).GetCell(getIndexColumn(sheet, "TEN HANG_EN")).StringCellValue,
                        NameJP           = namejp,
                        PriceTax         = sheet.GetRow(row).GetCell(getIndexColumn(sheet, "GIA")).NumericCellValue,
                        ProductCode      = "",
                        Quantity         = sheet.GetRow(row).GetCell(getIndexColumn(sheet, "SO LUONG")).NumericCellValue,
                        UpdatedAt        = DateTime.Now,
                        StoregeJPId      = StorageJP.Id,
                        UpdatedBy        = user.Staff.UserName,
                        TrackingDetailId = IdTracking
                    };
                    lstStorageItemJP.Add(storejpItem);
                }
            }
            #endregion

            //delete all data form db
            var details = StorageJP.TrackingDetails.ToList();
            foreach (var item in details)
            {
                var stores = item.StorageItemJPs.ToList();
                foreach (var st in stores)
                {
                    db.StorageItemJPs.Remove(st);
                }
                db.TrackingDetails.Remove(item);
            }
            //Insert database
            foreach (var item in lstTrackingDetail)
            {
                db.TrackingDetails.Add(item);
                foreach (var store in lstStorageItemJP.Where(n => n.TrackingDetailId == item.Id))
                {
                    db.StorageItemJPs.Add(store); db.SaveChanges();
                }
            }
            db.SaveChanges();
            return(View());
        }
Exemple #10
0
        /// <summary>
        /// 택배의 상태를 추적합니다
        /// </summary>
        /// <param name="invoice">송장번호</param>
        /// <param name="Code">택배사번호</param>
        /// <returns></returns>
        public Trackinginfo Tracking(long invoice, int Code)
        {
            if (APIKEY == null)
            {
                throw new Exception("APIKEY NOT SET");
            }
            XmlDocument xml = new XmlDocument(); // XmlDocument 생성

            xml.LoadXml(RequsetHTTP(RequestType.TrackingInfo, invoice, Code));
            XmlNodeList           xnList  = xml.GetElementsByTagName("tracking_details"); //접근할 노드
            List <TrackingDetail> Details = new List <TrackingDetail>();

            foreach (XmlNode xn in xnList)
            {
                TrackingDetail trackingDetail = new TrackingDetail();
                Type           type_info      = typeof(TrackingDetail);

                System.Reflection.FieldInfo[] f =
                    type_info.GetFields();
                foreach (System.Reflection.FieldInfo _f in f)
                {
                    if (xn[_f.Name] != null)
                    {
                        if (_f.Name == "level")
                        {
                            if (xn["level"].InnerText == "3")
                            {
                                _f.SetValue(trackingDetail, DeliveryLevel.Delivering);
                            }
                            else
                            {
                                _f.SetValue(trackingDetail, (DeliveryLevel)Convert.ToInt32(xn["level"].InnerText));
                            }
                        }
                        else if (_f.Name == "trans_time")
                        {
                            _f.SetValue(trackingDetail, DateTime.Parse(xn["trans_time"].InnerText));
                        }
                        else
                        {
                            _f.SetValue(trackingDetail, xn[_f.Name].InnerText);
                        }
                    }
                }
                Details.Add(trackingDetail);
            }
            xnList = xml.GetElementsByTagName("tracking_info"); //접근할 노드
            Trackinginfo Result       = new Trackinginfo();
            XmlNode      xn_info      = xnList[0];
            Trackinginfo trackinginfo = new Trackinginfo();
            Type         type         = typeof(Trackinginfo);

            System.Reflection.FieldInfo[] f_info =
                type.GetFields();
            foreach (System.Reflection.FieldInfo _f in f_info)
            {
                if (xn_info[_f.Name] != null)
                {
                    if (_f.Name == "level")
                    {
                        if (xn_info["level"].InnerText == "3")
                        {
                            _f.SetValue(trackinginfo, DeliveryLevel.Delivering);
                        }
                        else
                        {
                            _f.SetValue(trackinginfo, (DeliveryLevel)Convert.ToInt32(xn_info["level"].InnerText));
                        }
                    }
                    else if (_f.Name == "trans_time")
                    {
                        _f.SetValue(trackinginfo, DateTime.Parse(xn_info["trans_time"].InnerText));
                    }
                    else
                    {
                        if (_f.Name == "complete")
                        {
                            if (xn_info["complete"].InnerText == "Y")
                            {
                                trackinginfo.complete = true;
                            }
                        }
                        else if (_f.Name == "invoice_no")
                        {
                            trackinginfo.invoice_no = Convert.ToInt64(xn_info["invoice_no"].InnerText);
                        }
                        else
                        {
                            _f.SetValue(trackinginfo, xn_info[_f.Name].InnerText);
                        }
                    }
                }
            }
            trackinginfo.TrackingDetails = Details;
            return(trackinginfo);
        }