using DocumentFormat.OpenXml.Bibliography;
using GZ_LTHPilot_ORDER.Service;
using Kingdee.BOS;
using Kingdee.BOS.Contracts;
using Kingdee.BOS.Core;
using Kingdee.BOS.Util;
using Kingdee.K3.FIN.App.Core.Match.Object;
using System;
using System.ComponentModel;
namespace GZ_LTHPilot_ORDER.ScheduleService
{
[Description("定时刷新销售订单累计开票金额#"), HotUpdate]
public class SaleOrderSumSicsAmountRefresh : IScheduleService
{
public void Run(Context ctx, Schedule schedule)
{
var advanceAays = GetAdvanceAays(schedule);
// 提前天的日期
var approvedDate = DateTime.Now.Date.AddDays(-advanceAays - 1);
// 销售发票服务
SaleSicsService saleSicsService = new SaleSicsService(ctx);
// TODO 获取前一天的发票数据
var sicsList = saleSicsService.GetSaleSiceListByApprovedDate(approvedDate);
SaleOrderService saleOrderService = new SaleOrderService(ctx);
foreach (var sice in sicsList)
{
var saleOrgId = sice["FSALEORGID"].ToString();
var contractNo = sice["contractNo"].ToString();
var saleOrderList = saleOrderService.GetSaleOrderByOrgIdAndContractNo(saleOrgId, contractNo);
if (saleOrderList.Count == 0)
{
continue;
}
var saleOrder = saleOrderList[0];
saleSicsService.UpdateSaleOrderSumSicsamountBySaleOrder(saleOrder);
}
}
///
/// 参数获取提前天
///
///
///
private int GetAdvanceAays(Schedule schedule)
{
// 参数获取提前天
var advanceAaysStr = schedule.Parameters;
int advanceAays;
try
{
advanceAays = Convert.ToInt32(advanceAaysStr);
if (advanceAays < 0)
{
throw new Exception();
}
}
catch (Exception)
{
throw new Exception("获取参数提前天失败,参数格式为整数,且大于等于0");
}
return advanceAays;
}
}
}