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))); }
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()); }
/// <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); }