Commit b6cd1030 by guanzhenshan

解决进销存服务没有正常运行的问题,增加每月销售利润报表

parent f7035f21
......@@ -78,7 +78,7 @@ namespace Bailun.DC.DailyPayAndIncoming
//支出 2、成品采购+半成品采购+百伦(广州、香港)支付给哈倪曼和拉古娜的费用+百伦管理费用
var sql = $@"select sum(cashier_paymoneyrmb) as amount from dc_base_finance_cashier where cashier_status=1 and cashier_type=1 and cashier_time>='{start.ToString("yyyy-MM-dd HH:mm:ss")}' and cashier_time<'{end.ToString("yyyy-MM-dd HH:mm:ss")}' and (sourcecode in ('Buy','SemiFinishedProduct') or (tradeb_bjectname in ('广州哈倪蔓生物科技有限公司','广州拉古娜生物科技有限公司','广州美甲生产仓') and companymain_value_from in (1,2,5,7,8)))";
var sql = $@"select sum(cashier_paymoneyrmb) as amount from dc_base_finance_cashier where cashier_status=1 and cashier_type=1 and cashier_time>='{start.ToString("yyyy-MM-dd HH:mm:ss")}' and cashier_time<'{end.ToString("yyyy-MM-dd HH:mm:ss")}' and ((sourcecode in ('Buy','SemiFinishedProduct') and companymain_value_from !=14 and companymain_value_from!=48) or (tradeb_bjectname in ('广州哈倪蔓生物科技有限公司','广州拉古娜生物科技有限公司','广州美甲生产仓') and companymain_value_from in (1,2,5,7,8) and sourcecode='newCost'))";
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
{
......@@ -137,7 +137,7 @@ namespace Bailun.DC.DailyPayAndIncoming
}
//支出 2、成品采购+半成品采购+百伦(广州、香港)支付给哈倪曼和拉古娜的费用+百伦管理费用
//采购下单
var sql = $"select sum(amount_paid) amount from dc_base_purchase_details where create_time>='{start.ToString("yyyy-MM-dd HH:mm:ss")}' and create_time<'{end.ToString("yyyy-MM-dd HH:mm:ss")}' and `status`>=0";
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
......@@ -150,8 +150,8 @@ namespace Bailun.DC.DailyPayAndIncoming
//采购下单
var objPurchase = cn.QueryFirstOrDefault<decimal?>(sql, null, null, 2 * 60);
//财务付款
sql = $@"select sum(cashier_paymoneyrmb) as amount from dc_base_finance_cashier where cashier_status=1 and cashier_type=1 and cashier_time>='{start.ToString("yyyy-MM-dd HH:mm:ss")}' and cashier_time<'{end.ToString("yyyy-MM-dd HH:mm:ss")}' and (sourcecode in ('Buy','SemiFinishedProduct') or (tradeb_bjectname in ('广州哈倪蔓生物科技有限公司','广州拉古娜生物科技有限公司','广州美甲生产仓') and companymain_value_from in (1,2,5,7,8)))";
//财务付款 支出 2、成品采购+半成品采购+百伦(广州、香港)支付给哈倪曼和拉古娜的费用+百伦管理费用
sql = $@"select sum(cashier_paymoneyrmb) as amount from dc_base_finance_cashier where cashier_status=1 and cashier_type=1 and cashier_time>='{start.ToString("yyyy-MM-dd HH:mm:ss")}' and cashier_time<'{end.ToString("yyyy-MM-dd HH:mm:ss")}' and ((sourcecode in ('Buy','SemiFinishedProduct') and companymain_value_from !=14 and companymain_value_from!=48) or (tradeb_bjectname in ('广州哈倪蔓生物科技有限公司','广州拉古娜生物科技有限公司','广州美甲生产仓') and companymain_value_from in (1,2,5,7,8) and sourcecode='newCost'))";
var objPayed = cn.QueryFirstOrDefault<decimal?>(sql, null, null, 2 * 60);
//到货
......
......@@ -22,11 +22,11 @@ namespace Bailun.DC.DailyPurchaseSellStock
//{
// var _services = new Services();
// var start = DateTime.Parse("2019-10-25");
// var start = DateTime.Parse("2019-10-27");
// while (start.AddDays(1) < DateTime.Now)
// {
// _services.Init(start);
// Console.WriteLine(start);
// _services.Init(start);
// start = start.AddDays(1);
// }
//}
......
......@@ -47,10 +47,6 @@ namespace Bailun.DC.DailyPurchaseSellStock
public void Init(DateTime day)
{
var sql = $@"select t1.bailun_sku,t1.warehouse_code,t2.warehouse_name,sum(t1.usable_stock+t1.occupy_stock) count,sum((t1.usable_stock+t1.occupy_stock)*t1.unit_price) as amount from dc_daily_stock t1
left join dc_base_warehouse t2 on t1.warehouse_code=t2.warehouse_code
where t1.record_time='{day.AddDays(-1).ToString("yyyy-MM-dd")}' group by t1.bailun_sku,t1.warehouse_code";
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString+ "Allow User Variables=True;"))
{
if (cn.State == System.Data.ConnectionState.Closed)
......@@ -58,30 +54,74 @@ namespace Bailun.DC.DailyPurchaseSellStock
cn.Open();
}
var page = 1;
var pagesize = 5000;
//昨日库存
var objPreStock = cn.Query<mStock>(sql, null, null, true, 2 * 60);
var objPreStock = new List<mStock>();
var sql = $@"select t1.bailun_sku,t1.warehouse_code,t2.warehouse_name,sum(t1.usable_stock+t1.occupy_stock) count,sum((t1.usable_stock+t1.occupy_stock)*t1.unit_price) as amount from dc_daily_stock t1
left join dc_base_warehouse t2 on t1.warehouse_code=t2.warehouse_code
where t1.record_time='{day.AddDays(-1).ToString("yyyy-MM-dd")}' group by t1.bailun_sku,t1.warehouse_code";
var temp = cn.Query<mStock>(sql+" limit "+(page-1)*pagesize+","+pagesize, null, null, true, 2 * 60);
while (temp.Count() > 0)
{
objPreStock.AddRange(temp);
page++;
temp = cn.Query<mStock>(sql + " limit " + (page - 1) * pagesize + "," + pagesize, null, null, true, 2 * 60);
}
Console.WriteLine("昨日库存done,"+DateTime.Now);
//在库库存
page = 1;
pagesize = 5000;
var objStock = new List<mStock>();
sql = $@"select t1.bailun_sku,t1.warehouse_code,t2.warehouse_name,sum(t1.usable_stock+t1.occupy_stock) count,sum((t1.usable_stock+t1.occupy_stock)*t3.unit_price) as amount from dc_base_stock t1
left join dc_base_warehouse t2 on t1.warehouse_code=t2.warehouse_code
left join dc_base_sku t3 on t1.bailun_sku=t3.bailun_sku
where t1.usable_stock>0 or t1.occupy_stock>0 group by t1.bailun_sku,t1.warehouse_code";
var objStock = cn.Query<mStock>(sql, null, null, true, 2 * 60);
where t1.usable_stock>0 or t1.occupy_stock>0 group by t1.bailun_sku,t1.warehouse_code order by t1.warehouse_code desc,t1.bailun_sku desc";
temp = cn.Query<mStock>(sql + " limit " + (page - 1) * pagesize + "," + pagesize, null, null, true, 2 * 60);
while (temp.Count() > 0)
{
objStock.AddRange(temp);
page++;
temp = cn.Query<mStock>(sql + " limit " + (page - 1) * pagesize + "," + pagesize, null, null, true, 2 * 60);
}
Console.WriteLine("在库库存done," + DateTime.Now);
//昨日在途库存
var objPreOnWay = new List<mStock>();
page = 1;
sql = $@"select t1.bailun_sku,t1.warehouse_code,t2.warehouse_name,sum(t1.quantity_purchase+t1.quantity_transfer) count,sum((t1.quantity_purchase+t1.quantity_transfer)*t1.unit_price) as amount from dc_daily_transit t1
left join dc_base_warehouse t2 on t1.warehouse_code=t2.warehouse_code
where t1.record_time='{day.AddDays(-1).ToString("yyyy-MM-dd")}' and (t1.quantity_purchase>0 or t1.quantity_transfer>0) group by t1.bailun_sku,t1.warehouse_code";
var objPreOnWay = cn.Query<mStock>(sql, null, null, true, 2 * 60);
temp = cn.Query<mStock>(sql + " limit " + (page - 1) * pagesize + "," + pagesize, null, null, true, 2 * 60);
while (temp.Count() > 0)
{
objPreOnWay.AddRange(temp);
page++;
temp = cn.Query<mStock>(sql + " limit " + (page - 1) * pagesize + "," + pagesize, null, null, true, 2 * 60);
}
Console.WriteLine("昨日在途库存done," + DateTime.Now);
//在途库存
var objOnWay = new List<mStock>();
page = 1;
sql = $@"select t1.bailun_sku,t1.warehouse_code,t2.warehouse_name,sum(t1.quantity_purchase+t1.quantity_transfer) count,sum((t1.quantity_purchase+t1.quantity_transfer)*t3.unit_price) as amount from dc_mid_transit t1
left join dc_base_warehouse t2 on t1.warehouse_code=t2.warehouse_code
left join dc_base_sku t3 on t1.bailun_sku=t3.bailun_sku
where (t1.quantity_purchase>0 or t1.quantity_transfer>0)
group by t1.bailun_sku,t1.warehouse_code
";
var objOnWay = cn.Query<mStock>(sql, null, null, true, 2 * 60);
temp = cn.Query<mStock>(sql + " limit " + (page - 1) * pagesize + "," + pagesize, null, null, true, 2 * 60);
while (temp.Count() > 0)
{
objOnWay.AddRange(temp);
page++;
temp = cn.Query<mStock>(sql + " limit " + (page - 1) * pagesize + "," + pagesize, null, null, true, 2 * 60);
}
Console.WriteLine("在途库存done," + DateTime.Now);
var temparr = new List<Tuple<string, string,string>>();
temparr.AddRange(objPreStock.Select(p => new Tuple<string, string,string>(p.bailun_sku.ToUpper(), p.warehouse_code.ToUpper(), p.warehouse_name)));
......@@ -150,9 +190,9 @@ namespace Bailun.DC.DailyPurchaseSellStock
{
var s = "";
var temp = list.Skip(resultcount).Take(5000);
var temp1 = list.Skip(resultcount).Take(5000);
foreach (var item in temp)
foreach (var item in temp1)
{
s += $"('{item.bailun_sku}','{item.warehouse_code}','{item.warehouse_name}','{item.createtime.ToString("yyyy-MM-dd HH:mm:ss")}','{item.record_time.ToString("yyyy-MM-dd")}',{item.end_onway_amount},{item.end_onway_count},{item.end_stock_amount},{item.end_stock_count},{item.start_onway_amount},{item.start_onway_count},{item.start_stock_amount},{item.start_stock_count}),";
}
......
using System;
using System.Collections.Generic;
using System.Text;
namespace Bailun.DC.Models
{
/// <summary>
/// 月度利润报表
/// </summary>
public class dc_month_sale_profit
{
/// <summary>
/// auto_increment
/// </summary>
public int id { get; set; }
/// <summary>
/// 年月
/// </summary>
public string month { get; set; }
/// <summary>
/// 销售额
/// </summary>
public decimal amount_sale { get; set; }
/// <summary>
/// 成本
/// </summary>
public decimal cost_sale { get; set; }
/// <summary>
/// 平台扣费及退款
/// </summary>
public decimal pt_count { get; set; }
/// <summary>
/// 平台费
/// </summary>
public decimal pt_platformfee { get; set; }
/// <summary>
/// Ebay刊登费
/// </summary>
public decimal pt_ebay_postingfee { get; set; }
/// <summary>
/// Paypal费用
/// </summary>
public decimal pt_paypal_fee { get; set; }
/// <summary>
/// 平台的物流费
/// </summary>
public decimal pt_platform_logistics_fee { get; set; }
/// <summary>
/// 广告及宣传费-订阅费
/// </summary>
public decimal pt_platform_ad_subscribe_fee { get; set; }
/// <summary>
/// 平台的仓储费
/// </summary>
public decimal pt_platform_storage_fee { get; set; }
/// <summary>
/// 退款
/// </summary>
public decimal pt_refund_amount { get; set; }
/// <summary>
/// 回款
/// </summary>
public decimal pt_incoming { get; set; }
/// <summary>
/// 物流仓储费用
/// </summary>
public decimal ls_count { get; set; }
/// <summary>
/// 头程运输
/// </summary>
public decimal ls_head_cost { get; set; }
/// <summary>
/// 尾程运输
/// </summary>
public decimal ls_tail_cost { get; set; }
/// <summary>
/// 海外仓仓储费
/// </summary>
public decimal ls_oversea_storage { get; set; }
/// <summary>
/// 平台操作费
/// </summary>
public decimal ls_platform_operation_fee { get; set; }
/// <summary>
/// 销售费用合计
/// </summary>
public decimal sale_fee_count { get; set; }
/// <summary>
/// 销售利润
/// </summary>
public decimal sale_profit { get; set; }
/// <summary>
/// 销售毛利率
/// </summary>
public decimal sale_profit_rate { get; set; }
/// <summary>
/// 销售相关管理成本
/// </summary>
public decimal sale_manager_cost { get; set; }
/// <summary>
/// 处理费
/// </summary>
public decimal handlingcharges { get; set; }
/// <summary>
/// 直接支付的与销售平台相关费用
/// </summary>
public decimal payfor_platform_related_fee { get; set; }
/// <summary>
/// 直接管理成本
/// </summary>
public decimal direct_manager_cost { get; set; }
/// <summary>
/// 管理成本-香港百伦(不含直接支付的与销售平台相关的费用)
/// </summary>
public decimal manager_cost_hkbailun { get; set; }
/// <summary>
/// 管理成本-广州百伦
/// </summary>
public decimal manager_cost_gzbailun { get; set; }
/// <summary>
/// 管理成本-成品仓(不含直接支付的与销售平台相关的费用)
/// </summary>
public decimal manager_cost_finish_wh { get; set; }
/// <summary>
/// 财务费用
/// </summary>
public decimal finance_fee { get; set; }
/// <summary>
/// 管理成本合计
/// </summary>
public decimal manager_cost_count { get; set; }
/// <summary>
/// 营业利润
/// </summary>
public decimal business_profit { get; set; }
/// <summary>
/// 营业毛利率
/// </summary>
public decimal business_profit_rate { get; set; }
/// <summary>
/// 加:其他收入
/// </summary>
public decimal other_incoming { get; set; }
/// <summary>
/// 加:营业外收入
/// </summary>
public decimal nonbusiness_income { get; set; }
/// <summary>
/// 减:营业外支出
/// </summary>
public decimal nonbusiness_pay { get; set; }
/// <summary>
/// 实际利润
/// </summary>
public decimal actual_profit { get; set; }
/// <summary>
/// 分红
/// </summary>
public decimal participation_in_profit { get; set; }
/// <summary>
/// 利润结余
/// </summary>
public decimal balance_of_profit { 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; }
}
}
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Dapper" Version="2.0.30" />
<PackageReference Include="Microsoft.Extensions.Hosting" Version="3.0.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>
using System;
namespace Bailun.DC.MonthSaleProfit
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
using MySql.Data.MySqlClient;
using Dapper;
using Bailun.DC.Models;
using Bailun.DC.Common;
namespace Bailun.DC.MonthSaleProfit
{
public class Services
{
/// <summary>
/// 每月1日统计
/// </summary>
/// <param name="day"></param>
public void Init(DateTime day)
{
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
{
if (cn.State == System.Data.ConnectionState.Closed)
{
cn.Open();
}
//销售额
var sql = "";
//发货出库产品成本
//平台费
//ebay刊登费
//paypal费用
//平台物流费
//广告费
//退款
//头程费
//尾程费
//平台操作费
}
}
}
}
......@@ -3541,5 +3541,36 @@ group by currency";
#endregion
#region 月度利润报表
/// <summary>
/// 月度利润报表
/// </summary>
/// <param name="start">开始月份</param>
/// <param name="end">结束月份</param>
/// <returns></returns>
public List<dc_month_sale_profit> ListMonthSaleProfit(string start, string end)
{
var sql = $"select * from dc_month_sale_profit where month>='{start}' and month<='{end}' order by month desc";
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
{
if (cn.State == ConnectionState.Closed)
{
if (cn.State == ConnectionState.Closed)
{
cn.Open();
}
}
var obj = cn.Query<dc_month_sale_profit>(sql, null, null, true, 2 * 60);
return obj.ToList();
}
}
#endregion
}
}
......@@ -5515,6 +5515,36 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
#endregion
#region 每月销售利润统计报表
/// <summary>
/// 月度销售利润统计报表
/// </summary>
/// <returns></returns>
public ActionResult MonthSaleProfit()
{
return View();
}
/// <summary>
/// 月度销售利润统计
/// </summary>
/// <param name="start">开始月份</param>
/// <param name="end">结束月份</param>
/// <returns></returns>
[HttpPost]
public JsonResult ListMonthSaleProfit(string start, string end)
{
var obj = new Services.FinanceReportServices().ListMonthSaleProfit(start, end);
return Json("");
}
#endregion
}
class mHappenAmount {
......
......@@ -57,7 +57,7 @@
7、售出的取值:当天销售订单的产品成本<br />
8、应收款的取值:当天各个平台的帐号余额<br />
9、放款在途的取值:统计当前提现未到账的金额<br />
10、银行到账的取值:当天银行卡的余额。
10、银行卡余额的取值:当天银行卡的余额。
</div>
</div>
</div>
......@@ -192,7 +192,7 @@
var row5 = '<tr><td style="width:120px;">售出</td>';
var row6 = '<tr><td style="width:120px;">应收款</td>';
var row7 = '<tr><td style="width:120px;">放款在途</td>';
var row8 = '<tr><td style="width:120px;">银行到账</td>';
var row8 = '<tr><td style="width:120px;">银行卡余额</td>';
for (var i = 0; i < result.list.length; i++) {
var obj = result.list[i];
......
......@@ -33,9 +33,11 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Bailun.DC.HappenAmount", "B
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Bailun.DC.DailyPayAndIncoming", "Bailun.DC.DailyPayAndIncoming\Bailun.DC.DailyPayAndIncoming.csproj", "{D65CA330-DB1E-4B55-AFFA-5CC02518AB28}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bailun.DC.SkuDataWareHouse", "Bailun.DC.SkuDataWareHouse\Bailun.DC.SkuDataWareHouse.csproj", "{8DE8F6DB-679A-4012-B84E-5D317C7388A0}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Bailun.DC.SkuDataWareHouse", "Bailun.DC.SkuDataWareHouse\Bailun.DC.SkuDataWareHouse.csproj", "{8DE8F6DB-679A-4012-B84E-5D317C7388A0}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "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
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bailun.DC.MonthSaleProfit", "Bailun.DC.MonthSaleProfit\Bailun.DC.MonthSaleProfit.csproj", "{85C62851-D6B3-4D6D-B8C5-D02EAA6838B8}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
......@@ -107,6 +109,10 @@ Global
{10552EC1-917C-4A2D-A483-B16E5930D6FA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{10552EC1-917C-4A2D-A483-B16E5930D6FA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{10552EC1-917C-4A2D-A483-B16E5930D6FA}.Release|Any CPU.Build.0 = Release|Any CPU
{85C62851-D6B3-4D6D-B8C5-D02EAA6838B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{85C62851-D6B3-4D6D-B8C5-D02EAA6838B8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{85C62851-D6B3-4D6D-B8C5-D02EAA6838B8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{85C62851-D6B3-4D6D-B8C5-D02EAA6838B8}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
......@@ -122,6 +128,7 @@ Global
{D65CA330-DB1E-4B55-AFFA-5CC02518AB28} = {AE2CE86A-8538-4142-920F-684DCF47C064}
{8DE8F6DB-679A-4012-B84E-5D317C7388A0} = {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}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {6E53AF28-A282-4FB0-A769-EAEA9769C02A}
......
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