Commit 9c5f0284 by guanzhenshan

增加平台应收款服务和页面

parent fa7743e0
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework>
<LangVersion>latest</LangVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Dapper" Version="2.0.30" />
<PackageReference Include="Microsoft.Extensions.Hosting" Version="3.1.0" />
<PackageReference Include="MySql.Data" Version="8.0.18" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Bailun.DC.Common\Bailun.DC.Common.csproj" />
<ProjectReference Include="..\Bailun.DC.Models\Bailun.DC.Models.csproj" />
</ItemGroup>
</Project>
FROM microsoft/dotnet:2.1-runtime AS base
WORKDIR /app
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /src
COPY Bailun.DC.DailyPlatformReceivable/Bailun.DC.DailyPlatformReceivable.csproj Bailun.DC.DailyPlatformReceivable/
COPY Bailun.DC.Common/Bailun.DC.Common.csproj Bailun.DC.Common/
COPY Bailun.DC.Models/Bailun.DC.Models.csproj Bailun.DC.Models/
RUN dotnet restore Bailun.DC.DailyPlatformReceivable/Bailun.DC.DailyPlatformReceivable.csproj
COPY . .
WORKDIR /src/Bailun.DC.DailyPlatformReceivable
RUN dotnet build Bailun.DC.DailyPlatformReceivable.csproj -c Release -o /app
FROM build AS publish
RUN dotnet publish Bailun.DC.DailyPlatformReceivable.csproj -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "Bailun.DC.DailyPlatformReceivable.dll"]
using System;
namespace Bailun.DC.DailyPlatformReceivable
{
class Program
{
static void Main(string[] args)
{
//Console.WriteLine("Hello World!");
var _services = new Services();
var start = DateTime.Parse("2019-11-01");
while (start.AddDays(1) < DateTime.Now)
{
Console.WriteLine(start);
_services.Init(start);
start = start.AddDays(1);
}
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace Bailun.DC.Models
{
/// <summary>
/// 应收账款明细
/// </summary>
public class dc_daily_receivable
{
public int id { get; set; }
/// <summary>
/// 平台类型
/// </summary>
public string platform { get; set; }
/// <summary>
/// 记录日期
/// </summary>
public DateTime day { get; set; }
/// <summary>
/// 期初应收
/// </summary>
public decimal amount_start { get; set; }
/// <summary>
/// 付款维度的销售额
/// </summary>
public decimal amount_sale_pay { get; set; }
/// <summary>
/// 发货金额
/// </summary>
public decimal amount_shipping { get; set; }
/// <summary>
/// 退款金额
/// </summary>
public decimal amount_refund { get; set; }
/// <summary>
/// 发货维度的销售额
/// </summary>
public decimal amount_sale_shipping { get; set; }
/// <summary>
/// 平台费(佣金+FBA)
/// </summary>
public decimal amount_platformfee { get; set; }
/// <summary>
/// 放款金额
/// </summary>
public decimal amount_incoming { get; set; }
/// <summary>
/// 其他金额(手工调整金额)
/// </summary>
public decimal amount_other { get; set; }
/// <summary>
/// 期末金额
/// </summary>
public decimal amount_end { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime createtime { get; set; }
/// <summary>
/// 最后更新时间
/// </summary>
public DateTime lastupdatetime { get; set; }
/// <summary>
/// 更新人id
/// </summary>
public int lastupdateuserid { get; set; }
/// <summary>
/// 更新人名称
/// </summary>
public string lastupdateusername { get; set; }
}
}
...@@ -4479,5 +4479,113 @@ group by currency"; ...@@ -4479,5 +4479,113 @@ group by currency";
#endregion #endregion
#region 应收账款
/// <summary>
/// 平台应收账款明细
/// </summary>
/// <param name="parameter">分页信息</param>
/// <param name="platform">平台类型</param>
/// <param name="start">开始时间</param>
/// <param name="end">结束时间</param>
/// <param name="total">符合条件的记录数</param>
/// <returns></returns>
public List<dc_daily_receivable> ListReceivable(BtTableParameter parameter,string platform,DateTime start, DateTime end,ref int total)
{
var sql = $"select * from dc_base_receivable where day>='{start.ToString("yyyy-MM-dd")}' and day<'{end.AddDays(1).ToString("yyyy-MM-dd")}'";
var sqlparam = new DynamicParameters();
if (!string.IsNullOrEmpty(platform))
{
sql += " and platform=@platform";
sqlparam.Add("platform", platform);
}
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
{
if (cn.State == ConnectionState.Closed)
{
cn.Open();
}
var obj = cn.Page<dc_daily_receivable>(parameter.pageIndex, parameter.limit, sql, ref total, sqlparam).ToList();
return obj;
}
}
/// <summary>
/// 平台应收账款汇总
/// </summary>
/// <param name="platform">平台类型</param>
/// <param name="start">开始时间</param>
/// <param name="end">结束时间</param>
/// <returns></returns>
public dc_daily_receivable ListReceivableCount(string platform, DateTime start, DateTime end)
{
var sql = $"select sum(amount_sale_pay) amount_sale_pay,sum(amount_shipping) amount_shipping,sum(amount_refund) amount_refund,sum(amount_sale_shipping) amount_sale_shipping,sum(amount_platformfee) amount_platformfee,sum(amount_incoming) amount_incoming,sum(amount_other) amount_other from dc_base_receivable where day>='{start.ToString("yyyy-MM-dd")}' and day<'{end.AddDays(1).ToString("yyyy-MM-dd")}'";
var sqlparam = new DynamicParameters();
if (!string.IsNullOrEmpty(platform))
{
sql += " and platform=@platform";
sqlparam.Add("platform", platform);
}
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
{
if (cn.State == ConnectionState.Closed)
{
cn.Open();
}
var obj = cn.QueryFirstOrDefault<dc_daily_receivable>(sql, sqlparam);
return obj;
}
}
/// <summary>
/// 修改应收款其他金额
/// </summary>
/// <param name="id"></param>
/// <param name="otheramount">其他金额</param>
/// <param name="uid">当前用户id</param>
/// <param name="username">当前用户名称</param>
/// <returns></returns>
public string UpdateReceivable(int id,decimal otheramount,int uid,string username)
{
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
{
if(cn.State== ConnectionState.Closed)
{
cn.Open();
}
var obj = cn.QueryFirstOrDefault<dc_daily_receivable>("select * from dc_base_receivable where id="+id);
if (obj == null)
{
return "找不到该记录。";
}
if (obj.platform.ToLower() == "ebay")
{
return "ebay平台不能修改数据。";
}
obj.amount_other = otheramount;
obj.amount_end = obj.amount_start + obj.amount_sale_shipping - obj.amount_platformfee - obj.amount_incoming - obj.amount_refund + obj.amount_other;
obj.lastupdatetime = DateTime.Now;
obj.lastupdateuserid = uid;
obj.lastupdateusername = username;
return cn.Update(obj)>0?"":"更新失败,请重试!";
}
}
#endregion
} }
} }
...@@ -6053,6 +6053,92 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers ...@@ -6053,6 +6053,92 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
#endregion #endregion
#region 平台应收账款
/// <summary>
/// 平台应收款列表
/// </summary>
/// <returns></returns>
public ActionResult PlatformReceivable()
{
ViewBag.start = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd");
ViewBag.end = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd");
return View();
}
/// <summary>
/// 平台应收款
/// </summary>
/// <param name="parameter">分页信息</param>
/// <param name="start">开始时间</param>
/// <param name="end">结束时间</param>
/// <param name="platform">平台类型</param>
/// <returns></returns>
public string PlatformReceivableJson(BtTableParameter parameter, DateTime start, DateTime end, string platform)
{
var total = 0;
var _service = new Services.FinanceReportServices();
var obj = _service.ListReceivable(parameter, platform, start, end, ref total);
var list = obj.Select(a => new {
a.platform,
day = a.day.ToString("yyyy-MM-dd"),
amount_end = a.amount_end.ToString("N2"),
amount_incoming = a.amount_incoming.ToString("N2"),
amount_other = a.amount_other.ToString("N2"),
amount_platformfee = a.amount_platformfee.ToString("N2"),
amount_refund = a.amount_refund.ToString("N2"),
amount_sale_pay = a.amount_sale_pay.ToString("N2"),
amount_sale_shipping = a.amount_sale_shipping.ToString("N2"),
amount_shipping = a.amount_shipping.ToString("N2"),
amount_start = a.amount_start.ToString("N2"),
lastupdatetime = a.lastupdatetime.ToString("yyyy-MM-dd HH:mm:ss")
});
var objCount = _service.ListReceivableCount(platform, start, end);
return JsonConvert.SerializeObject(new {
total = list.Count(),
rows = list,
count_row = new
{
amount_end = objCount.amount_end.ToString("N2"),
amount_incoming = objCount.amount_incoming.ToString("N2"),
amount_other = objCount.amount_other.ToString("N2"),
amount_platformfee = objCount.amount_platformfee.ToString("N2"),
amount_refund = objCount.amount_refund.ToString("N2"),
amount_sale_pay = objCount.amount_sale_pay.ToString("N2"),
amount_sale_shipping = objCount.amount_sale_shipping.ToString("N2"),
amount_shipping = objCount.amount_shipping.ToString("N2"),
amount_start = objCount.amount_start.ToString("N2"),
}
});
}
/// <summary>
/// 更新平台应收款其他金额
/// </summary>
/// <param name="id">应收款id</param>
/// <param name="amount">金额</param>
/// <returns></returns>
[HttpPost]
public JsonResult UpdatePlatformReceivable(int id, decimal amount)
{
var user = HttpContextHelper.Current.User;
var result = new Services.FinanceReportServices().UpdateReceivable(id, amount,(user!=null? user.GetUid():0),(user!=null? user.GetUserName():""));
return Json(new {
success = string.IsNullOrEmpty(result),
msg = result
});
}
#endregion
} }
class mHappenAmount { class mHappenAmount {
......

@{
ViewData["Title"] = "平台应收款";
Layout = "~/Pages/Shared/_MainLayout.cshtml";
}
<div class="row">
<div class="col-sm-12">
<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>
<input id="start" name="start" type="text" class="form-control" style="width:130px;" value="@(ViewBag.start)" />
<span>至</span>
<input id="end" name="end" type="text" class="form-control" style="width:130px;" value="@(ViewBag.end)" />
</div>
<div class="form-group">
<label>平台类型</label>
<select id="platform" name="platform" class="form-control" style="width:130px">
<option value="">请选择平台</option>
</select>
</div>
<div class="form-group">
<label>&nbsp;</label>
<button type="button" class="btn btn-success" onclick="list();">搜索</button>
</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{
<style>
.mules {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
</style>
}
@section scripts{
<script type="text/javascript">
var tb;
$(document).ready(function () {
laydate.render({ elem: '#start' });
laydate.render({ elem: '#end' });
var height = document.body.clientHeight;
$("#roletable").attr("data-height", (height - 170));
list();
})
function list() {
var start = $('#start').val();
var end = $('#end').val();
if (start == '') {
alert('请选择开始日期');
return false;
}
if (end == '') {
alert('请选择结束日期');
return false;
}
var columns = [
{ field: 'day', title: '统计日期', width: '110' },
{ field: 'platform', title: '平台类型', width: '110' },
{ field: 'amount_start', title: '期初应收余额', width: '130' },
{ field: 'amount_sale_pay', title: '本期收款', width: '110', iscount: true },
{ field: 'amount_shipping', title: '发货发生额', width: '110',iscount: true },
{ field: 'amount_refund', title: '退款金额', width: '100', iscount: true },
{ field: 'amount_sale_shipping', title:'发货收款',width:'110',iscount:true},
{ field: 'amount_platformfee', title: '平台费', width: '110' },
{ field: 'amount_incoming', title: '放款金额', width: '110' },
{ field: 'amount_other', title: '其他金额', width: '110' },
{ field: 'amount_end', title: '期末应收账款', width: '130' }
];
var url = '@Url.Content("~/Reports/Finance/PlatformReceivableJson")' + '?' + $("#toolbar").serialize();
if (tb == undefined) {
tb = OnlyTable("roletable", columns, url, "", {
showfooter: true, showCount: true, loadsuccess: function (d) {
//替换汇总行的相关列值
}
});
}
else {
tb.bootstrapTable('refresh', { url: url });
}
}
</script>
}
...@@ -37,9 +37,11 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Bailun.DC.SkuDataWareHouse" ...@@ -37,9 +37,11 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Bailun.DC.SkuDataWareHouse"
EndProject EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Bailun.DC.DailyPurchaseSellStock", "Bailun.DC.DailyPurchaseSellStock\Bailun.DC.DailyPurchaseSellStock.csproj", "{10552EC1-917C-4A2D-A483-B16E5930D6FA}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Bailun.DC.DailyPurchaseSellStock", "Bailun.DC.DailyPurchaseSellStock\Bailun.DC.DailyPurchaseSellStock.csproj", "{10552EC1-917C-4A2D-A483-B16E5930D6FA}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bailun.DC.MonthSaleProfit", "Bailun.DC.MonthSaleProfit\Bailun.DC.MonthSaleProfit.csproj", "{85C62851-D6B3-4D6D-B8C5-D02EAA6838B8}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Bailun.DC.MonthSaleProfit", "Bailun.DC.MonthSaleProfit\Bailun.DC.MonthSaleProfit.csproj", "{85C62851-D6B3-4D6D-B8C5-D02EAA6838B8}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bailun.DC.DailySemiPurchaseSellStock", "Bailun.DC.DailySemiPurchaseSellStock\Bailun.DC.DailySemiPurchaseSellStock.csproj", "{BA2836C9-40CD-41FE-9BAD-7D897BB62AF8}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Bailun.DC.DailySemiPurchaseSellStock", "Bailun.DC.DailySemiPurchaseSellStock\Bailun.DC.DailySemiPurchaseSellStock.csproj", "{BA2836C9-40CD-41FE-9BAD-7D897BB62AF8}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bailun.DC.DailyPlatformReceivable", "Bailun.DC.DailyPlatformReceivable\Bailun.DC.DailyPlatformReceivable.csproj", "{BFD01F3A-DEF2-4DEC-BC7C-3AAB7FBE3188}"
EndProject EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
...@@ -119,6 +121,10 @@ Global ...@@ -119,6 +121,10 @@ Global
{BA2836C9-40CD-41FE-9BAD-7D897BB62AF8}.Debug|Any CPU.Build.0 = Debug|Any CPU {BA2836C9-40CD-41FE-9BAD-7D897BB62AF8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BA2836C9-40CD-41FE-9BAD-7D897BB62AF8}.Release|Any CPU.ActiveCfg = Release|Any CPU {BA2836C9-40CD-41FE-9BAD-7D897BB62AF8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BA2836C9-40CD-41FE-9BAD-7D897BB62AF8}.Release|Any CPU.Build.0 = Release|Any CPU {BA2836C9-40CD-41FE-9BAD-7D897BB62AF8}.Release|Any CPU.Build.0 = Release|Any CPU
{BFD01F3A-DEF2-4DEC-BC7C-3AAB7FBE3188}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BFD01F3A-DEF2-4DEC-BC7C-3AAB7FBE3188}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BFD01F3A-DEF2-4DEC-BC7C-3AAB7FBE3188}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BFD01F3A-DEF2-4DEC-BC7C-3AAB7FBE3188}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
...@@ -136,6 +142,7 @@ Global ...@@ -136,6 +142,7 @@ Global
{10552EC1-917C-4A2D-A483-B16E5930D6FA} = {AE2CE86A-8538-4142-920F-684DCF47C064} {10552EC1-917C-4A2D-A483-B16E5930D6FA} = {AE2CE86A-8538-4142-920F-684DCF47C064}
{85C62851-D6B3-4D6D-B8C5-D02EAA6838B8} = {AE2CE86A-8538-4142-920F-684DCF47C064} {85C62851-D6B3-4D6D-B8C5-D02EAA6838B8} = {AE2CE86A-8538-4142-920F-684DCF47C064}
{BA2836C9-40CD-41FE-9BAD-7D897BB62AF8} = {AE2CE86A-8538-4142-920F-684DCF47C064} {BA2836C9-40CD-41FE-9BAD-7D897BB62AF8} = {AE2CE86A-8538-4142-920F-684DCF47C064}
{BFD01F3A-DEF2-4DEC-BC7C-3AAB7FBE3188} = {AE2CE86A-8538-4142-920F-684DCF47C064}
EndGlobalSection EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {6E53AF28-A282-4FB0-A769-EAEA9769C02A} SolutionGuid = {6E53AF28-A282-4FB0-A769-EAEA9769C02A}
......
...@@ -83,3 +83,10 @@ services: ...@@ -83,3 +83,10 @@ services:
context: . context: .
dockerfile: Bailun.DC.DailySemiPurchaseSellStock/Dockerfile dockerfile: Bailun.DC.DailySemiPurchaseSellStock/Dockerfile
bailun.dc.dailyplatformreceivable:
image: ${DOCKER_REGISTRY}bailundcdailyplatformreceivable
build:
context: .
dockerfile: Bailun.DC.DailyPlatformReceivable/Dockerfile
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