protected void btnAddSales_Click(object sender, EventArgs e) { DailySalesData dailySale = new DailySalesData(); dailySale.DateTime = DateTime.Now.ToString(); dailySale.DaySales = txtDaySales.Text; dailySale.MonthlySales = txtMonthlySales.Text; dailySale.NetSales = txtNetSales.Text; dailySale.Refunds = txtRefunds.Text; dailySale.Tier1 = txtTier1.Text; dailySale.Tier2 = txtTier2.Text; dailySale.Tier3 = txtTier3.Text; dailySale.Tier4 = txtTier4.Text; dailySale.Bonus = txtBonus.Text; dailySale.MonthlyDrawsTaken = txtMonthlyDrawsTaken.Text; dailySale.QBTotalPay = txtQBTotalPay.Text; dailySale.UserID = Convert.ToInt32(Request.Cookies["UserID"].Value); dailySale.CashBonus = txtCashBonus.Text; dailySale.MonthlyOfficeRent = txtMonthlyOfficeRent.Text; dailySale.ActualPayoutTotal = txtActualPayout.Text; bool isSalesAdded = dailySalesHelper.AddSales(dailySale); if (isSalesAdded) { Response.Write("<script>alert('Sales record added Successfully.');</script>"); } else { Response.Write("<script>alert('Some error occured.');</script>"); } }
public static void SaveDailyData(string date, DailySalesData newinfo) { string year = date.Substring(0, 4); string month = date.Substring(4, 2); string day = date.Substring(6, 2); string persistPath = string.Format("{0}/{1}/{2}/{3}/{4}.txt", Application.persistentDataPath, "HistoryData", year, month, day); Utility.CreateDir(persistPath); string info = JsonUtility.ToJson(newinfo); File.WriteAllText(persistPath, info); }
public int GetLastDayMonthEnterCustomerNumber(string date, int storeID) { DailySalesData lastDayData = LoadLastDailyData(date); if (lastDayData == null) { return(0); } StoreDailyInfo storeinfo = lastDayData.GetStoreDailyInfo(storeID); return(storeinfo.MonthEnterCustomerNubmer); }
private void dailyReport() { DailySalesData reportDetails = new DailySalesData(); DataTable dtTable = reportDetails.CompanyDetails; DailySalesReport Report = new DailySalesReport(); readCompanyDetails(); DataRow drr = dtTable.NewRow(); drr["CompanyName"] = companyName; drr["CompanyDetails"] = companyDetails; dtTable.Rows.Add(drr); Report.Database.Tables["CompanyDetails"].SetDataSource((DataTable)dtTable); addList(); DataTable dataTable = reportDetails.DailySaleData; for (int i = 0; i < saleDateList.Count; i++) { DataRow drow = dataTable.NewRow(); string[] fDate = Regex.Split(fromDate.ToString(), " "); drow["DateFrom"] = fDate[0]; string[] tDate = Regex.Split(toDate.ToString(), " "); drow["DateTo"] = tDate[0]; drow["BillNoFrom"] = bnoFromList[i]; drow["BillNoTo"] = bnoToList[i]; string[] sDate = Regex.Split(saleDateList[i], " "); drow["SaleDate"] = sDate[0]; drow["GrossValue"] = totalPriceList[i]; drow["Discount"] = discountList[i]; drow["Gst"] = netGstList[i]; drow["SalesReturn"] = salesReturnList[i]; drow["GrandTotal"] = grandTotalList[i]; drow["Credit"] = creditList[i]; drow["CashPaid"] = cashPaidList[i]; dataTable.Rows.Add(drow); } DataRow droww = dataTable.NewRow(); droww["TotalGross"] = totalPriceList.Sum(); droww["TotalDiscount"] = discountList.Sum(); droww["TotalGst"] = netGstList.Sum(); droww["TotalSalesReturn"] = salesReturnList.Sum(); droww["TotalGrand"] = grandTotalList.Sum(); droww["TotalCredit"] = creditList.Sum(); droww["TotalCashPaid"] = cashPaidList.Sum(); dataTable.Rows.Add(droww); Report.Database.Tables["DailySaleData"].SetDataSource((DataTable)dataTable); sales_Reporter_Viewer.ViewerCore.ReportSource = Report; Report.Refresh(); }
public static DailySalesData LoadDailyData(string date) { string year = date.Substring(0, 4); string month = date.Substring(4, 2); string day = date.Substring(6, 2); string persistPath = string.Format("{0}/{1}/{2}/{3}/{4}.txt", Application.persistentDataPath, "HistoryData", year, month, day); if (File.Exists(persistPath)) { string info = File.ReadAllText(persistPath); DailySalesData dailydata = JsonUtility.FromJson <DailySalesData>(info); return(dailydata); } else { return(null); } }
/// <summary> /// 加载每日数据 /// </summary> /// <param name="date"></param> /// <returns></returns> private DailySalesData LoadDailyData(string date) { if (!allDailydataSaleDataDict.ContainsKey(date)) { bool isCreate = false; DailySalesData dailySalesData = ConfigDataManager.LoadDailyData(date); if (dailySalesData == null) { dailySalesData = new DailySalesData(); dailySalesData.Date = date; isCreate = true; } allDailydataSaleDataDict[date] = dailySalesData; if (isCreate) { CalculateData(date); SaveChange(date); } } return(allDailydataSaleDataDict[date]); }
public bool AddSales(DailySalesData dailySales) { bool isSalesAdded = false; using (uow = new UnitOfWork.UnitOfWork()) { try { DailySalesRecord dailySalesdb = new DailySalesRecord(); dailySalesdb.DateTime = DateTime.Now.ToString(); dailySalesdb.DaySales = dailySales.DaySales; dailySalesdb.MonthlySales = dailySales.MonthlySales; dailySalesdb.NetSales = dailySales.NetSales; dailySalesdb.Refunds = dailySales.Refunds; dailySalesdb.Tier1 = dailySales.Tier1; dailySalesdb.Tier2 = dailySales.Tier2; dailySalesdb.Tier3 = dailySales.Tier3; dailySalesdb.Tier4 = dailySales.Tier4; dailySalesdb.UserID = dailySales.UserID; dailySalesdb.MonthlyDrawsTaken = dailySales.MonthlyDrawsTaken; dailySalesdb.QBTotalPay = dailySales.QBTotalPay; dailySalesdb.Bonus = dailySales.Bonus; dailySalesdb.ActualPayoutTotal = dailySales.ActualPayoutTotal; dailySalesdb.CashBonus = dailySales.CashBonus; dailySalesdb.MonthlyOfficeRent = dailySales.MonthlyOfficeRent; uow.DailySalesRecordRepository.Insert(dailySalesdb); uow.Save(); isSalesAdded = true; } catch { isSalesAdded = false; } } return(isSalesAdded); }
/// <summary> /// 根据输入的数据计算每日销售信息 /// 门店销售信息,月销售信息 /// </summary> /// <param name="date"></param> public void CalculateData(string date) { string day = date.Substring(6, 2); DailySalesData thisDayData = LoadDailyData(date); if (int.Parse(day) == 1) { thisDayData.Reset(); } else { DailySalesData lastDayData = LoadLastDailyData(date); thisDayData.TotalSales = 0; thisDayData.MonthSaleDataToDate = lastDayData.MonthSaleDataToDate.Clone(); thisDayData.ProductTransactionInfos.Clear(); #region storeDailyDate for (int i = 0; i < lastDayData.AllStoreDailySaleData.Count; i++) { StoreDailyInfo lastStoreDayInfo = lastDayData.AllStoreDailySaleData[i]; StoreDailyInfo todaystoreDayinfo = thisDayData.GetStoreDailyInfo(lastStoreDayInfo.StoreID); todaystoreDayinfo.MonthEnterCustomerNubmer = lastStoreDayInfo.MonthEnterCustomerNubmer + todaystoreDayinfo.TodayEnterCustomerNumber; todaystoreDayinfo.MonthTransaction = lastStoreDayInfo.MonthTransaction; todaystoreDayinfo.MonthTotalSales = lastStoreDayInfo.MonthTotalSales; todaystoreDayinfo.OldCustomerCount = lastStoreDayInfo.OldCustomerCount;; todaystoreDayinfo.OldCustomerSales = lastStoreDayInfo.OldCustomerSales; todaystoreDayinfo.NewCustomerCount = lastStoreDayInfo.NewCustomerCount; todaystoreDayinfo.NewCustomerSales = lastStoreDayInfo.NewCustomerSales; todaystoreDayinfo.CompletionRate = lastStoreDayInfo.CompletionRate; } for (int i = 0; i < thisDayData.AllStoreDailySaleData.Count; i++) { StoreDailyInfo todayStoreDayInfo = thisDayData.AllStoreDailySaleData[i]; todayStoreDayInfo.TodaySales = 0; todayStoreDayInfo.TodyTransaction = 0; todayStoreDayInfo.TodayProductTransactions.Clear(); } #endregion #region RankingInfo for (int i = 0; i < lastDayData.AllSalesPersonRankInfos.Count; i++) { SalesPersonRankInfo lastRankingInfo = lastDayData.AllSalesPersonRankInfos[i]; SalesPersonRankInfo todayRankingInfo = thisDayData.GetSalePersonRankInfo(lastRankingInfo.SalePersonID); if (todayRankingInfo == null) { continue; } todayRankingInfo.Ranking = lastRankingInfo.Ranking; todayRankingInfo.PerformanceSales = lastRankingInfo.PerformanceSales; todayRankingInfo.CompleteRate = lastRankingInfo.CompleteRate; } for (int i = 0; i < thisDayData.AllSalesPersonRankInfos.Count; i++) { SalesPersonRankInfo todayRankinfo = thisDayData.AllSalesPersonRankInfos[i]; SalesPersonRankInfo lastRankingInfo = lastDayData.GetSalePersonRankInfo(todayRankinfo.SalePersonID); todayRankinfo.Ranking = lastRankingInfo.Ranking; todayRankinfo.PerformanceSales = lastRankingInfo.PerformanceSales; todayRankinfo.CompleteRate = lastRankingInfo.CompleteRate; } #endregion } for (int i = 0; i < thisDayData.AllSingleSalesData.Count; i++) { SingleSalesData singleSaleData = thisDayData.AllSingleSalesData[i]; thisDayData.TotalSales += singleSaleData.TotalPrice; ProductTransactionInfo trans = thisDayData.GetTransactionInfo(singleSaleData.ProductID, singleSaleData.ProductName); trans.TransactionCount += singleSaleData.SaleCount; #region 计算门店每日数据 StoreDailyInfo storeDayInfo = thisDayData.GetStoreDailyInfo(singleSaleData.StoreID); if (singleSaleData.TransactionPercent > 0) { storeDayInfo.TodyTransaction += 1; } if (singleSaleData.TransactionPercent > 0) { storeDayInfo.MonthTransaction += 1; } storeDayInfo.TodaySales += singleSaleData.TotalPrice; ProductTransactionInfo transaction = storeDayInfo.GetTransactionInfo(singleSaleData.ProductID, singleSaleData.ProductName); transaction.TransactionCount += singleSaleData.SaleCount; storeDayInfo.MonthTotalSales += singleSaleData.TotalPrice; storeDayInfo.CompletionRate = storeDayInfo.MonthTotalSales / storeDayInfo.TargetSales; if (singleSaleData.IsNewCustomer) { if (singleSaleData.TransactionPercent > 0) { storeDayInfo.NewCustomerCount += 1; } storeDayInfo.NewCustomerSales += singleSaleData.TotalPrice; } else { if (singleSaleData.TransactionPercent > 0) { storeDayInfo.OldCustomerCount += 1; } storeDayInfo.OldCustomerSales += singleSaleData.TotalPrice; } #endregion #region 计算本月数据 thisDayData.MonthSaleDataToDate.TotalSales += singleSaleData.TotalPrice; if (singleSaleData.IsNewCustomer) { thisDayData.MonthSaleDataToDate.NewCustomerTransactions += (1 * singleSaleData.TransactionPercent); thisDayData.MonthSaleDataToDate.NewCustomerSales += singleSaleData.TotalPrice; } else { thisDayData.MonthSaleDataToDate.OldCustomerTransactions += (1 * singleSaleData.TransactionPercent); thisDayData.MonthSaleDataToDate.OldCustomerSales += singleSaleData.TotalPrice; } #endregion #region int salesPersonId = SalesDataSystem.SystemDatas.SalesPersonData.GetSalesPersonIdByName(singleSaleData.SalesPerson1); SalesPersonRankInfo salesPersonRankingInfo = thisDayData.GetSalePersonRankInfo(salesPersonId); salesPersonRankingInfo.PerformanceSales += singleSaleData.TotalPrice; #endregion } for (int i = 0; i < thisDayData.AllStoreDailySaleData.Count; i++) { StoreDailyInfo todayStoreDayInfo = thisDayData.AllStoreDailySaleData[i]; todayStoreDayInfo.CompletionRate = todayStoreDayInfo.MonthTotalSales / todayStoreDayInfo.TargetSales; } thisDayData.AllSalesPersonRankInfos.Sort((a, b) => { if (a.PerformanceSales > b.PerformanceSales) { return(-1); } else if (a.PerformanceSales == b.PerformanceSales) { return(0); } else { return(1); } }); for (int i = 0; i < thisDayData.AllSalesPersonRankInfos.Count; i++) { SalesPersonRankInfo rankinginfo = thisDayData.AllSalesPersonRankInfos[i]; rankinginfo.Ranking = i + 1; rankinginfo.CompleteRate = rankinginfo.PerformanceSales / rankinginfo.TargetSales; } }
public void ExportData(string date) { DailySalesData dailydata = LoadDailyData(date); ConfigDataManager.ExportDailyData(date, dailydata); }
/// <summary> /// 格式化销售产品数据 /// </summary> /// <param name="newinfo"></param> /// <returns></returns> private static string GetMonthProductTransactionInfo(DailySalesData newinfo) { string productTransactionInfo = string.Empty; Dictionary <string, string> productTransactionDict = new Dictionary <string, string>(); for (int i = 0; i < newinfo.ProductTransactionInfos.Count; i++) { ProductTransactionInfo trans = newinfo.ProductTransactionInfos[i]; eProductType productType = SalesDataSystem.SystemDatas.ProductSysData.GetProductTypeByID(trans.ProductId); string exportName = SalesDataSystem.SystemDatas.ProductSysData.GetProductExportNameByID(trans.ProductId); string exportSuffix = SalesDataSystem.SystemDatas.ProductSysData.GetProductExportSuffixByID(trans.ProductId); string key = null; string addValue = null; switch (productType) { case eProductType.Classic: key = "经典款:"; addValue = string.Format("{0} * {1}{2}、", exportName, trans.TransactionCount, exportSuffix); break; case eProductType.Glory: key = "荣耀款:"; addValue = string.Format("{0} * {1}{2}、", exportName, trans.TransactionCount, exportSuffix); break; case eProductType.Exclusive: key = "尊享款:"; addValue = string.Format("{0} * {1}{2}、", exportName, trans.TransactionCount, exportSuffix); break; case eProductType.DrySwallow: key = "干燕盏:"; addValue = string.Format("{0} * {1}{2}、", exportName, trans.TransactionCount, exportSuffix); break; case eProductType.Single: key = trans.ProductName + ":"; addValue = string.Format("{0} * {1}{2}、", exportName, trans.TransactionCount, exportSuffix); break; case eProductType.None: break; case eProductType.GuanYan: key = "冰糖官燕:"; addValue = string.Format("{0} * {1}{2}、", exportName, trans.TransactionCount, exportSuffix); break; default: break; } if (!string.IsNullOrEmpty(key)) { if (!productTransactionDict.ContainsKey(key)) { productTransactionDict[key] = ""; } productTransactionDict[key] += (addValue); } } System.Text.StringBuilder strb = new System.Text.StringBuilder(100); foreach (var p in productTransactionDict) { strb.Append(p.Key); strb.Append(p.Value); strb.Append(Environment.NewLine); } productTransactionInfo = strb.ToString(); return(productTransactionInfo); }
public static void ExportDailyData(string date, DailySalesData newinfo) { string year = date.Substring(0, 4); string month = date.Substring(4, 2); string day = date.Substring(6, 2); string persistPath = string.Format("{0}/{1}/{2}/{3}/{4}ExportData.txt", Application.persistentDataPath, "ExportData", year, month, day); string folder = Path.GetDirectoryName(persistPath); Utility.CreateDir(persistPath); string DailySalesDataMonthPart = (Resources.Load("Configs/DailySalesDataMonthPart") as TextAsset).text; string DailySalesDataStorePart = (Resources.Load("Configs/DailySalesDataStorePart") as TextAsset).text; string DailySalesDataCustomerServicePart = (Resources.Load("Configs/DailySalesDataCustomerServicePart") as TextAsset).text; string DailySalesDataDejiStorePart = (Resources.Load("Configs/DailySalesDataDejiStorePart") as TextAsset).text; string DailySalesDataCustomerServiceStorePart = (Resources.Load("Configs/DailySalesDataCustomersServiceStorePart") as TextAsset).text; string productTransactionInfo = GetMonthProductTransactionInfo(newinfo); MonthSalesData thisMonthData = newinfo.MonthSaleDataToDate; System.Text.StringBuilder strb = new System.Text.StringBuilder(500); string exportInfo = null; string exportmonthInfo = string.Format(DailySalesDataMonthPart, year, month, day, newinfo.TotalSales, productTransactionInfo, thisMonthData.TotalSales, thisMonthData.NewCustomerTransactions, thisMonthData.NewCustomerSales, thisMonthData.OldCustomerTransactions, thisMonthData.OldCustomerSales); strb.Append(exportmonthInfo); int index = 1; #region 一般的店面处理 for (int i = 0; i < newinfo.AllStoreDailySaleData.Count; i++) { StoreDailyInfo sdi = newinfo.AllStoreDailySaleData[i]; if (sdi.StoreName == "德基广场店" || sdi.StoreName == "德基BHG店" || sdi.StoreName == "广播进线" || sdi.StoreName == "售后维护") { continue; } string storeproductInfo = GetStoreProductTransactionInfo(sdi); string exportStoreDailyInfo = string.Format(DailySalesDataStorePart, index, sdi.StoreName, month, sdi.LeastSales / 10000f, sdi.TargetSales / 10000f, year, month, day, sdi.TodayEnterCustomerNumber, sdi.MonthEnterCustomerNubmer, sdi.TodyTransaction, sdi.MonthTransaction, sdi.TodaySales, storeproductInfo, sdi.MonthTotalSales, (sdi.CompletionRate * 100).ToString("F2"), sdi.OldCustomerSales, sdi.OldCustomerCount, sdi.NewCustomerSales, sdi.NewCustomerCount); strb.Append(exportStoreDailyInfo); index++; } #endregion #region 德基广场店处理 int dejistoreId = SalesDataSystem.SystemDatas.StoreSysData.GetStoreIDByName("德基广场店"); StoreDailyInfo dejiStoreInfo = newinfo.GetStoreDailyInfo(dejistoreId); string dejiStoreProductInfo = GetStoreProductTransactionInfo(dejiStoreInfo); int dejiBHGstoreId = SalesDataSystem.SystemDatas.StoreSysData.GetStoreIDByName("德基BHG店"); StoreDailyInfo dejiBhgStoreInfo = newinfo.GetStoreDailyInfo(dejiBHGstoreId); string dejiBhgProductInfo = GetStoreProductTransactionInfo(dejiBhgStoreInfo); string dejiStoreDailyInfo = string.Format(DailySalesDataDejiStorePart, index, month, dejiStoreInfo.LeastSales / 10000f, dejiStoreInfo.TargetSales / 10000f, year, month, day, (dejiStoreInfo.TodayEnterCustomerNumber + dejiBhgStoreInfo.TodayEnterCustomerNumber), (dejiBhgStoreInfo.MonthEnterCustomerNubmer + dejiBhgStoreInfo.MonthEnterCustomerNubmer), (dejiStoreInfo.TodyTransaction + dejiBhgStoreInfo.TodyTransaction), (dejiStoreInfo.MonthTransaction + dejiBhgStoreInfo.MonthTransaction) , (dejiStoreInfo.TodaySales + dejiBhgStoreInfo.TodaySales), dejiStoreProductInfo, dejiBhgProductInfo, (dejiStoreInfo.MonthTotalSales + dejiBhgStoreInfo.MonthTotalSales), ((dejiStoreInfo.CompletionRate + dejiBhgStoreInfo.CompletionRate) * 100).ToString("F2"), (dejiStoreInfo.OldCustomerSales), (dejiStoreInfo.OldCustomerCount), (dejiStoreInfo.NewCustomerSales), (dejiStoreInfo.NewCustomerCount), dejiBhgStoreInfo.MonthTotalSales, (dejiBhgStoreInfo.NewCustomerCount + dejiBhgStoreInfo.OldCustomerCount)); strb.Append(dejiStoreDailyInfo); index++; #endregion strb.Append(Environment.NewLine); #region 客服部处理 int broadcastStoreId = SalesDataSystem.SystemDatas.StoreSysData.GetStoreIDByName("广播进线"); StoreDailyInfo broadCastStoreInfo = newinfo.GetStoreDailyInfo(broadcastStoreId); string broadCastProductInfo = GetStoreProductTransactionInfo(broadCastStoreInfo); int afterSaleStoreId = SalesDataSystem.SystemDatas.StoreSysData.GetStoreIDByName("售后维护"); StoreDailyInfo afterSaleStoreInfo = newinfo.GetStoreDailyInfo(afterSaleStoreId); string afterSaleProductInfo = GetStoreProductTransactionInfo(afterSaleStoreInfo); string customerServiceDailyInfo = string.Format(DailySalesDataCustomerServiceStorePart, index, month, broadCastStoreInfo.LeastSales / 10000f, broadCastStoreInfo.TargetSales / 10000f, year, month, day, broadCastStoreInfo.TodyTransaction, broadCastStoreInfo.TodaySales, broadCastProductInfo, broadCastStoreInfo.MonthTotalSales, afterSaleStoreInfo.TodyTransaction, afterSaleStoreInfo.TodaySales, afterSaleProductInfo, afterSaleStoreInfo.MonthTotalSales, (broadCastStoreInfo.MonthTotalSales + afterSaleStoreInfo.MonthTotalSales), (broadCastStoreInfo.NewCustomerSales + afterSaleStoreInfo.NewCustomerSales), (broadCastStoreInfo.NewCustomerCount + afterSaleStoreInfo.NewCustomerCount), (broadCastStoreInfo.OldCustomerSales + afterSaleStoreInfo.OldCustomerSales), (broadCastStoreInfo.OldCustomerCount + afterSaleStoreInfo.OldCustomerCount), (((broadCastStoreInfo.CompletionRate + afterSaleStoreInfo.CompletionRate) * 100).ToString("F2"))); strb.Append(customerServiceDailyInfo); #endregion exportInfo = strb.ToString(); File.WriteAllText(persistPath, exportInfo); string rankingPersistPath = string.Format("{0}/{1}/{2}/{3}/{4}ExportData_Ranking.txt", Application.persistentDataPath, "ExportData", year, month, day); System.Text.StringBuilder rankstrb = new System.Text.StringBuilder(500); string rankingheadtitle = "门店,姓名,保底(万),目标(万),排名,业绩(元),完成率(100%)" + Environment.NewLine; rankstrb.Append(rankingheadtitle); string rankinfoformat = "{0},{1},{2},{3},{4},{5},{6}%" + Environment.NewLine; for (int i = 0; i < newinfo.AllSalesPersonRankInfos.Count; i++) { SalesPersonRankInfo rankinginfo = newinfo.AllSalesPersonRankInfos[i]; string singleinfo = string.Format(rankinfoformat, rankinginfo.StoreName, rankinginfo.SalesPsersonName, rankinginfo.LeastSales / 10000, rankinginfo.TargetSales / 10000, rankinginfo.Ranking, rankinginfo.PerformanceSales, (int)(rankinginfo.CompleteRate * 100)); rankstrb.Append(singleinfo); } exportInfo = rankstrb.ToString(); File.WriteAllText(rankingPersistPath, exportInfo); OpenFolder(folder); }