public async Task <List <PurchaseHistoryModel> > GetPurchaseHistory(string username) { List <PurchaseHistoryModel> history = new List <PurchaseHistoryModel>(); List <Order> listOrders = await _context.Orders.Where(order => order.Username.Equals(username)).OrderByDescending(order => order.DateOrder).ToListAsync(); for (int i = 0; i < listOrders.Count; i++) { int idOrder = listOrders[i].OrderId; List <ToyInOrder> toys = await _context.ToyInOrders.Where(toys => toys.OrderId == idOrder) .Include(t => t.Toy) .ToListAsync(); List <ToyModel> list = new List <ToyModel>(); for (int k = 0; k < toys.Count; k++) { Toy toy = toys[k].Toy; toy.Quantity = toys[k].Quantity; toy.Price = toys[k].Price; ToyModel toyModel = _mapper.Map <ToyModel>(toy); list.Add(toyModel); } PurchaseHistoryModel model = new PurchaseHistoryModel(idOrder, listOrders[i].Username, listOrders[i].DateOrder, list); history.Add(model); } return(history); }
public static PurchaseHistory Map(this PurchaseHistoryModel source) { return(new PurchaseHistory { Id = source.Id, ProductId = source.ProductId, CreatedOn = source.CreatedOn, Quantity = source.Quantity, UserId = source.UserId }); }
private void datagrid_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e) { log.Debug("Datagrid selected."); try { //History Purchase string sqlVendorHis = "SELECT PRODUCT_CODE,PURCHASE_DATE,VENDOR_CODE,VENDOR_NAME,QTY,PRICE,DISCOUNT_STR,VAT_RATE FROM V_PURCHASE_HISTORY_ATF where 1=1 "; string cond = ""; string groupby = " GROUP BY PRODUCT_CODE,PURCHASE_DATE,VENDOR_CODE,VENDOR_NAME,QTY,PRICE,DISCOUNT_STR,VAT_RATE "; string orderBy = " ORDER BY PURCHASE_DATE DESC "; //History Order string sqlHisOrder = "select a.CreateDate,b.* from Product_Order_Report a" + " INNER JOIN Product_Order_Report_Details b " + " ON a.Order_ID = b.Order_ID" + " where 1=1 AND b.Product_Code = @Product_Code " + " ORDER BY CreateDate DESC,b.List_Num_Order DESC"; if (DataGridPrducts.SelectedItem != null) { if (DataGridPrducts.SelectedItem is ProductsModel) { var row = (ProductsModel)DataGridPrducts.SelectedItem; if (row != null) { txtDatailSelect.Text = row.Product_Name; txtUseDetail.Text = row.Use; log.Debug("Insert data to Text box Success."); cond = " AND PRODUCT_CODE = '" + (row.Product_Code.ToLower()) + "'"; sqlVendorHis += cond + groupby + orderBy; log.Debug("Sql Vendor History : " + sqlVendorHis); List <PurchaseHistoryModel> lsPurchaseHis = new List <PurchaseHistoryModel>(); List <OrderHistoryStock> lsOrderHisStock = new List <OrderHistoryStock>(); using (SqlConnection cnn = new SqlConnection(Utility.ConnectionDb.connectString)) { cnn.Open(); using (SqlCommand cmd = new SqlCommand(sqlVendorHis, cnn), cmd2 = new SqlCommand(sqlHisOrder, cnn)) { cmd2.Parameters.AddWithValue("@Product_Code", row.Product_Code.Trim()); using (SqlDataReader dataReader = cmd.ExecuteReader(), dataReader2 = cmd2.ExecuteReader()) { int i = 0; while (dataReader.Read()) { PurchaseHistoryModel pch = new PurchaseHistoryModel(); pch.RowNum = ++i; pch.PRODUCT_CODE = dataReader["PRODUCT_CODE"].ToString().Trim(); pch.PURCHASE_DATE = comm.convertIntToShortDate(dataReader["PURCHASE_DATE"].ToString().Trim()); pch.VENDOR_CODE = dataReader["VENDOR_CODE"].ToString().Trim(); pch.VENDOR_NAME = dataReader["VENDOR_NAME"].ToString().Trim(); pch.QTY = comm.convertShowNumber2Point(dataReader["QTY"].ToString()); pch.PRICE = comm.convertShowNumber2Point(dataReader["PRICE"].ToString()); pch.VAT_RATE = comm.convertShowNumber2Point(dataReader["VAT_RATE"].ToString().Trim()); pch.DISCOUNT_STR = dataReader["DISCOUNT_STR"].ToString().Trim(); lsPurchaseHis.Add(pch); } while (dataReader2.Read()) { OrderHistoryStock ohs = new OrderHistoryStock(); ohs.docDate = comm.convertIntToShortDate(dataReader2["CreateDate"].ToString()); ohs.orderId = dataReader2["Order_ID"].ToString(); ohs.list_Num_Order = dataReader2["List_Num_Order"].ToString().PadLeft(4, '0'); ohs.topic = dataReader2["Vendor"].ToString(); ohs.suggestOrder = comm.convertShowNumber2Point(dataReader2["Suggest_Order"].ToString()); ohs.orderStatus = (dataReader2["Order_Status"].ToString().Equals("1")) ? "ปิดงาน" : "รอปิดงาน"; lsOrderHisStock.Add(ohs); } } } } dataGridHistoryOrder.ItemsSource = lsOrderHisStock; dataGridPurHis.ItemsSource = lsPurchaseHis; log.Debug("Insert List Vendor History to Datagrid success."); } } } } catch (Exception ex) { log.Error(ex); throw ex; } }
public ActionResult List(int?locationId, int?organizationId, PurchaseHistoryModel model, [ModelBinder(typeof(DataTablesRequestModelBinder))] DataTablesRequestModel dtRequestModel) { if (Request.HttpMethod == "POST" && ModelState.IsValid) { var user = Membership.GetUser().GetUserEntity(); var transaction = new Transaction(IsolationLevel.ReadCommitted, "purchase transfer"); try { var fromDevice = model.FromDevice; var toDevice = model.ToDevice; var from = new PurchaseHistoryEntity { DeviceId = model.FromDeviceId, LocationId = fromDevice.LocationId, UserId = user.UserId, PurchaseTime = DateTime.UtcNow, ScansPurchased = -model.Quantity, AmountPaid = 0, TransactionId = string.Empty, PurchaseNotes = String.Format(Purchase.TransferFrom, SharedRes.Formats.Device.FormatWith(fromDevice), SharedRes.Formats.Device.FormatWith(toDevice)) }; transaction.Add(from); from.Save(); var to = new PurchaseHistoryEntity { DeviceId = model.ToDeviceId, LocationId = toDevice.LocationId, UserId = user.UserId, PurchaseTime = DateTime.UtcNow, ScansPurchased = model.Quantity, AmountPaid = 0, TransactionId = string.Empty, PurchaseNotes = String.Format(Purchase.TransferFrom, SharedRes.Formats.Device.FormatWith(fromDevice), SharedRes.Formats.Device.FormatWith(toDevice)) }; transaction.Add(to); to.Save(); transaction.Add(fromDevice); fromDevice.ScansAvailable -= model.Quantity; fromDevice.Save(); transaction.Add(toDevice); toDevice.ScansAvailable += model.Quantity; toDevice.Save(); transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); ModelState.AddModelError("", Purchase.TransferFailed); Log.Error(Purchase.TransferFailed, ex); } finally { transaction.Dispose(); } } if (!organizationId.HasValue) { if (!locationId.HasValue) { model.Puchases = new LinqMetaData().PurchaseHistory.WithPermissions(); } else { var location = new LocationEntity(locationId.Value); if (location.IsNew) { throw new HttpException(404, SharedRes.Error.NotFound_Location); } if (!Permissions.UserHasPermission("View", location)) { throw new HttpException(401, SharedRes.Error.Unauthorized_Location); } model.Puchases = new LinqMetaData().PurchaseHistory.Where(x => x.LocationId == locationId.Value); } } else { var organization = new OrganizationEntity(organizationId.Value); if (organization.IsNew) { throw new HttpException(404, SharedRes.Error.NotFound_Organization); } if (!locationId.HasValue) { if (!Permissions.UserHasPermission("View", organization)) { throw new HttpException(401, SharedRes.Error.Unauthorized_Organization); } model.Puchases = new LinqMetaData().PurchaseHistory.Where(x => x.Location.OrganizationId == organizationId); } else { // do the same thing as above but check if the location is assigned to the organization var location = new LocationEntity(locationId.Value); if (location.IsNew && location.OrganizationId == organizationId) { throw new HttpException(404, SharedRes.Error.NotFound_Location); } if (!Permissions.UserHasPermission("View", location)) { throw new HttpException(401, SharedRes.Error.Unauthorized_Location); } model.Puchases = new LinqMetaData().PurchaseHistory.Where(x => x.LocationId == locationId.Value); } } var result = View(model); if (dtRequestModel == null) { return(result); } return(Query(result, dtRequestModel)); }