Commit 09d84cbd by guanzhenshan

速卖通增加充值记录报表和导入功能

parent 9fef00df
using System;
using System.Collections.Generic;
using System.Text;
namespace Bailun.DC.Models
{
/// <summary>
/// 速卖通充值记录
/// </summary>
public class dc_base_finance_aliexpress_recharge
{
/// <summary>
///
/// </summary>
public int id { get; set; }
/// <summary>
/// 帐号id
/// </summary>
public int accountid { get; set; }
/// <summary>
/// 帐号名称
/// </summary>
public string accountname { get; set; }
/// <summary>
/// 充值金额RMB
/// </summary>
public decimal amount { get; set; }
/// <summary>
/// 记录时间
/// </summary>
public DateTime record_time { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime createtime { get; set; }
/// <summary>
/// 是否已删除,1:已删除,0:未删除
/// </summary>
public int delstatus { get; set; }
}
}
...@@ -3417,5 +3417,129 @@ group by currency"; ...@@ -3417,5 +3417,129 @@ group by currency";
#endregion #endregion
#region 充值记录
/// <summary>
/// 速卖通充值记录
/// </summary>
/// <param name="parameter">分页信息</param>
/// <param name="account">帐号名称</param>
/// <param name="start">开始时间</param>
/// <param name="end">结束时间</param>
/// <param name="total">符合条件的记录数</param>
/// <returns></returns>
public List<dc_base_finance_aliexpress_recharge> ListAliExpressCharge(BtTableParameter parameter, string account, DateTime? start, DateTime? end,ref int total)
{
var sqlparam = new DynamicParameters();
var sql = $"select * from dc_base_finance_aliexpress_recharge where 1=1 ";
if (!string.IsNullOrEmpty(account))
{
sql += " and accountname=@account";
sqlparam.Add("account", account);
}
if (start.HasValue)
{
sql += " and record_time>=@start";
sqlparam.Add("start", start.Value.ToString("yyyy-MM-dd"));
}
if (end.HasValue)
{
sql += " and record_time<@end";
sqlparam.Add("end", end.Value.AddDays(1).ToString("yyyy-MM-dd"));
}
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
{
if (cn.State == ConnectionState.Closed)
{
cn.Open();
}
var obj = cn.Page<dc_base_finance_aliexpress_recharge>(parameter.pageIndex, parameter.limit, sql, ref total, sqlparam, "", 2 * 60);
return obj.ToList();
}
}
/// <summary>
/// 速卖通充值记录汇总
/// </summary>
/// <param name="account">帐号信息</param>
/// <param name="start">开始时间</param>
/// <param name="end">结束时间</param>
/// <returns></returns>
public dc_base_finance_aliexpress_recharge ListAliExpressChargeCount(string account, DateTime? start, DateTime? end)
{
var sqlparam = new DynamicParameters();
var sql = $"select sum(amount) amount from dc_base_finance_aliexpress_recharge where 1=1 ";
if (!string.IsNullOrEmpty(account))
{
sql += " and accountname=@account";
sqlparam.Add("account", account);
}
if (start.HasValue)
{
sql += " and record_time>=@start";
sqlparam.Add("start", start.Value.ToString("yyyy-MM-dd"));
}
if (end.HasValue)
{
sql += " and record_time<@end";
sqlparam.Add("end", end.Value.AddDays(1).ToString("yyyy-MM-dd"));
}
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
{
if (cn.State == ConnectionState.Closed)
{
cn.Open();
}
var obj = cn.QueryFirstOrDefault<dc_base_finance_aliexpress_recharge>(sql,sqlparam,null, 2 * 60);
return obj;
}
}
/// <summary>
/// 保存速卖通的充值记录
/// </summary>
/// <param name="list"></param>
/// <returns></returns>
public string SaveAliExpressCharge(List<dc_base_finance_aliexpress_recharge> list)
{
try
{
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
{
if (cn.State == ConnectionState.Closed)
{
cn.Open();
}
foreach (var item in list)
{
cn.Insert<dc_base_finance_aliexpress_recharge>(item);
}
}
return "";
}
catch (Exception ex)
{
return ex.Message;
}
}
#endregion
} }
} }
...@@ -5357,6 +5357,164 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers ...@@ -5357,6 +5357,164 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
#endregion #endregion
#region 平台充值记录
/// <summary>
/// 速卖通充值记录
/// </summary>
/// <returns></returns>
public ActionResult AliExpressCharge()
{
return View();
}
public string AliExpressChargeJson(BtTableParameter parameter, string account, DateTime? start, DateTime? end)
{
var total = 0;
var _service = new Services.FinanceReportServices();
var obj = _service.ListAliExpressCharge(parameter, account, start, end,ref total);
var objCount = _service.ListAliExpressChargeCount(account, start, end);
var list = obj.Select(a => new {
a.accountname,
amount = a.amount.ToString("N2"),
record_time = a.record_time.ToString("yyyy-MM-dd"),
createtime = a.createtime.ToString("yyyy-MM-dd HH:mm:ss"),
});
return JsonConvert.SerializeObject(new
{
total = total,
rows = list,
count_row = new
{
accountname = "总计",
amount = objCount.amount.ToString("N2")
}
});
}
/// <summary>
/// 导入速卖通充值记录
/// </summary>
/// <returns></returns>
[HttpPost]
public JsonResult UploadAliExpressCharge()
{
if (Request.Form.Files.Count == 0)
{
return Json(new
{
success = false,
msg = "请上传文件!"
});
}
var file = Request.Form.Files[0];
Dictionary<string, DataTable> dic = Base.NpolHelper.ExcelToDataTable(file.OpenReadStream(), file.FileName, true);
if (dic.Count > 0)
{
var tb = dic.FirstOrDefault();
var list = new List<dc_base_finance_aliexpress_recharge>();
var service = new Services.FinanceReportServices();
var listRate = new List<Tuple<string, decimal>>();
var commonServices = new Services.CommonServices();
for (var i = 0; i < tb.Value.Rows.Count; i++)
{
var row = tb.Value.Rows[i];
try
{
var account = row["帐号名称"].ToString();
if (string.IsNullOrEmpty(account))
{
continue;
}
var amount = decimal.Parse(row["充值金额"].ToString());
var day = DateTime.Parse(row["记录日期"].ToString());
if (string.IsNullOrEmpty(account))
{
return Json(new
{
success = false,
msg = "帐号名称不能为空!",
});
}
if (amount<=0)
{
return Json(new
{
success = false,
msg = "充值金额必须大于0!"
});
}
var objaccount = Services.CommonServices.GetCompanyAccount(account,1);
if (objaccount == null)
{
return Json(new
{
success = false,
msg = "系统找不到该帐号【" + objaccount + "】,请检测帐号名称是否正确。",
});
}
var m = new dc_base_finance_aliexpress_recharge {
accountid = objaccount.account_id,
accountname = objaccount.account_name,
amount = amount,
record_time = day,
createtime = DateTime.Now,
delstatus = 0
};
list.Add(m);
}
catch (Exception ex)
{
return Json(new
{
success = false,
msg = "导入失败,异常信息:" + ex.Message
});
}
}
if (list.Count == 0)
{
return Json(new
{
success = false,
msg = "表格没有数据。",
});
}
var result = service.SaveAliExpressCharge(list);
return Json(new
{
success = string.IsNullOrEmpty(result),
msg = result
});
}
else
{
return Json(new
{
success = false,
msg = "请上传文件"
});
}
}
#endregion
} }
class mHappenAmount { class mHappenAmount {
......

@{
ViewData["Title"] = "速卖通充值记录";
Layout = "~/Pages/Shared/_MainLayout.cshtml";
ViewBag.Nav = new string[] { "分平台利润统计", "速卖通", "速卖通充值记录" };
}
<div class="row">
<div class="col-sm-12">
<div class="alert alert-warning">
说明:差异=期末-期初
</div>
<div class="ibox-content m-b-sm border-bottom">
<form id="toolbar">
<div class="form-inline" style="line-height:40px;">
<div class="form-group">
<label>帐号:</label>
<select id="account" name="account" class="form-control">
<option value="">帐号</option>
</select>
</div>
<div class="form-group">
<label>日期</label>
<input id="start" name="start" class="form-control" style="width:100px" value="@(DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd"))" />至
<input id="end" name="end" class="form-control" style="width:100px" value="@(DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd"))" />
</div>
<div class="form-group">
<label>&nbsp;</label>
<button type="button" class="btn btn-primary" onclick="list();"><i class="fa fa-search"></i>&nbsp;查询</button>
<button id="btn_Upload" class="btn btn-success">导入</button>
<a id="btn_UpdateTemplate" class="btn btn-default" href="@Url.Content("~/templatefile/充值模版.xlsx")" target="_blank">下载导入模版</a>
</div>
</div>
</form>
</div>
<div class="ibox-content m-b-sm border-bottom">
<table id="roletable" style="table-layout:fixed;"></table>
</div>
</div>
</div>
@section css{
<link href="~/js/webuploader-0.1.5/webuploader.css" rel="stylesheet" />
<style>
.webuploader-pick {
position: relative;
display: block;
cursor: pointer;
background: none;
padding: 0px;
color: #fff;
text-align: center;
border-radius: 3px;
overflow: hidden;
}
.webuploader-container {
background-color: cornflowerblue !important;
}
</style>
}
@section scripts{
<script src="~/js/webuploader-0.1.5/webuploader.min.js"></script>
<script type="text/javascript">
var BASE_URL = '@(Url.Content("~/js/webuploader-0.1.5/"))';
var tb;
$(document).ready(function () {
var height = document.body.clientHeight;
$("#roletable").attr("data-height", (height - 160));
laydate.render({ elem: '#start' });
laydate.render({ elem: '#end' });
uploadfile('btn_Upload',
'@Url.Content("~/Reports/Finance/UploadAliExpressCharge")',
function(result){
if(result.success)
{
alert('上传成功!');
}
else
{
alert(result.msg);
}
});
list();
listAccount();
})
function list() {
var columns = [
{
field: 'record_time', title: '记录日期', width: '110'
},
{ field: 'accountname', title: '帐号名称', width: '130', iscount: true },
{ field: 'amount', title: '充值金额', width: '130', iscount: true },
{ field: 'createtime', title: '创建时间', width: '130' }
];
var url = '@Url.Content("~/Reports/Finance/AliExpressChargeJson")' + '?' + $("#toolbar").serialize();
if (tb == undefined) {
tb = OnlyTable("roletable", columns, url, "", {
showfooter: true, showCount: true
});
}
else {
tb.bootstrapTable('refresh', { url: url });
}
}
function listAccount() {
$.submit({
url: '@Url.Content("~/Reports/Orders/ListAccount")',
type:'POST',
paramData: 'platform=AliExpress',
func: function (result) {
if (result != null && result != undefined) {
$('#account').html('<option value="">选择帐号</option>');
for (var i = 0; i < result.length; i++) {
$('#account').append('<option value="' + result[i] + '">' + result[i]+'</option>');
}
}
}
})
}
function uploadfile(id,url,callback)
{
var uploader = new WebUploader.Uploader({
// swf文件路径
swf: BASE_URL + 'Uploader.swf',
// 文件接收服务端。
server: url!=undefined?url:'@Url.Content("~/File/UploadFile")',
// 选择文件的按钮。可选。
// 内部根据当前运行是创建,可能是input元素,也可能是flash.
pick: '#'+id,
// 不压缩image, 默认如果是jpeg,文件上传前会压缩一把再上传!
resize: false,
auto:true
});
uploader.on('uploadSuccess', function (file, response) {
if(callback!=undefined)
{
callback(response);
}
});
uploader.on('uploadError', function (file) {
layer.msg("上传出错");
});
}
</script>
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment