Browse Source

更新版本

master
学 赵 1 year ago
parent
commit
d4f771af6a
  1. 112
      code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BQ/Dtos/INVOICE_GRP_DTO.cs
  2. 2
      code/src/Modules/SettleAccount/src/SettleAccount.Application/Bases/BA_SERVICE.cs
  3. 74
      code/src/Modules/SettleAccount/src/SettleAccount.Application/Bases/PD_SERVICE.cs
  4. 28
      code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/BBAC_PD_SERVICE.cs
  5. 7
      code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/HBPO_BA_SERVICE.cs
  6. 29
      code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/HBPO_PD_SERVICE.cs
  7. 96
      code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/INVOICE_SERVICE.cs
  8. 8
      code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PUB_BA_SERVICE.cs
  9. 29
      code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PUB_PD_SERVICE.cs
  10. 10
      code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/Syncs/PendingDeductionService.cs
  11. 5
      code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/HBPO_NOT_SA_MNG.cs
  12. 70
      code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/INV_MNG.cs
  13. 4
      code/src/Modules/SettleAccount/src/SettleAccount.Domain/EnumBillState.cs

112
code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BQ/Dtos/INVOICE_GRP_DTO.cs

@ -246,13 +246,22 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Dtos
public List<INVOICE_WAIT_DETAIL_BBAC_DTO> INVOICE_WAIT_DETAIL_BBAC { get; set; } public List<INVOICE_WAIT_DETAIL_BBAC_DTO> INVOICE_WAIT_DETAIL_BBAC { get; set; }
/// <summary>
/// 发票明细备件
/// </summary>
public List<INVOICE_WAIT_DETAIL_BJ_DTO> INVOICE_WAIT_DETAIL_BJ { get; set; } public List<INVOICE_WAIT_DETAIL_BJ_DTO> INVOICE_WAIT_DETAIL_BJ { get; set; }
/// <summary> /// <summary>
/// 发票和结算分组对应关系 /// 发票和结算分组对应关系
/// </summary> /// </summary>
public List<INVOICE_MAP_GROUP_DTO> INVOICE_MAP_GROUP { get; set; } public List<INVOICE_MAP_GROUP_DTO> INVOICE_MAP_GROUP { get; set; }
/// <summary>
/// 买单发票和结算分组对应关系
/// </summary>
public List<MAIDAN_HBPO_INVOICE_MAP_GROUP_DTO> MAIDAN_HBPO_INVOICE_MAP_GROUP { get; set; }
/// <summary> /// <summary>
/// 已结分组包含不可结算零件 /// 已结分组包含不可结算零件
/// </summary> /// </summary>
@ -261,22 +270,45 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Dtos
/// 发票调整明细 /// 发票调整明细
/// </summary> /// </summary>
public List<PUB_ADJ_DETAIL_DTO> ADJ_DETAIL { get; set; } public List<PUB_ADJ_DETAIL_DTO> ADJ_DETAIL { get; set; }
/// <summary>
/// JIT全部未结明细
/// </summary>
public List<JIT_UNSETTLED_DETAIL_DTO> JIT_UNSETTLED_DETAIL { get; set; }
/// <summary>
/// JIT全部未结明细
/// </summary>
public List<MAIDAN_HBPO_UNSETTLED_DETAIL_DTO> MAIDAN_HBPO_UNSETTLED_DETAIL { get; set; }
/// <summary> /// <summary>
/// 全部未结明细 /// JIT全部未结明细
/// </summary> /// </summary>
public List<UNSETTLED_DETAIL_DTO> UNSETTLED_DETAIL { get; set; } public List<JIT_UNSETTLED_DETAIL_DTO> UNSETTLED_DETAIL { get; set; }
}
public class JIT_UNSETTLED_DETAIL_DTO
{
[Display(Name ="结算分组号")]
public string GroupNum { set; get; }
[Display(Name = "零件号")]
public string LU { set; get; }
[Display(Name = "数量")]
public decimal Qty { set; get; }
} }
public class UNSETTLED_DETAIL_DTO public class MAIDAN_HBPO_UNSETTLED_DETAIL_DTO
{ {
[Display(Name ="结算分组号")] [Display(Name = "五联单号")]
public string GroupNum { set; get; } public string GroupNum { set; get; }
[Display(Name = "生产码")]
public string PN { set; get; }
[Display(Name = "零件号")] [Display(Name = "零件号")]
public string LU { set; get; } public string LU { set; get; }
[Display(Name = "数量")] [Display(Name = "数量")]
@ -287,33 +319,49 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Dtos
public class INVOICE_WAIT_DETAIL_BJ_DTO public class INVOICE_WAIT_DETAIL_BJ_DTO
{ {
///// <summary>
/////期间
///// </summary>
//[Display(Name = "行号")]
//public int LineCode { get; set; }
/// <summary>
///期间
/// </summary>
[Display(Name = "期间")]
public int Version { get; set; } public int Version { get; set; }
[Display(Name = "金税发票号")] [Display(Name = "金税发票号")]
public string RealInvbillNum { get; set; } public string RealInvbillNum { get; set; }
[Display(Name = "发票日期")] [Display(Name = "发票日期")]
public DateTime? InvDate { set; get; } public DateTime? InvDate { set; get; }
/// <summary> /// <summary>
///扩展字段1 ///扩展字段1
/// </summary> /// </summary>
[Display(Name = "凭证号")] [Display(Name = "凭证号")]
public string Extend1 { get; set; } public string Extend1 { get; set; }
[Display(Name = "交货号")]
public string DeliveryNumber { get; set; }
/// <summary> /// <summary>
///发票号 ///发票号
/// </summary> /// </summary>
[Display(Name = "发票号")] [Display(Name = "发票号")]
public string InvbillNum { get; set; } public string InvbillNum { get; set; }
[Display(Name = "供应商代码")]
public string VendorCode { get; set; }
[Display(Name = "供应商名称")]
public string VendorName { get; set; }
[Display(Name = "PurchaseOrderNumber")]
public string PurchaseOrderNumber { get; set; }
[Display(Name = "业务分类")]
public string DeliveryIndexNumber { get; set; }
/// <summary>
///零件号
/// </summary>
[Display(Name = "零件号")]
public string PartCode { get; set; }
[Display(Name = "PartName")]
public string PartName { get; set; }
/// <summary> /// <summary>
///发票分组号 ///发票分组号
/// </summary> /// </summary>
@ -325,15 +373,8 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Dtos
[Display(Name = "客户零件号")] [Display(Name = "客户零件号")]
public string LU { get; set; } public string LU { get; set; }
/// <summary>
///零件号
/// </summary>
[Display(Name = "零件号")]
public string PartCode { get; set; }
[Display(Name = "零件描述")] [Display(Name = "零件描述")]
public string PartDesc { get; set; } public string PartDesc { get; set; }
/// <summary> /// <summary>
///单价 ///单价
/// </summary> /// </summary>
@ -352,9 +393,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Dtos
/// <summary> /// <summary>
///业务分类 ///业务分类
/// </summary> /// </summary>
[Display(Name = "业务分类")]
public string BussiessType { get; set; }
/// <summary> /// <summary>
///扩展字段3 ///扩展字段3
@ -591,6 +629,10 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Dtos
/// </summary> /// </summary>
[Display(Name = "结算分组号")] [Display(Name = "结算分组号")]
public string SettleGroupNum { get; set; } public string SettleGroupNum { get; set; }
/// <summary> /// <summary>
///金额 ///金额
/// </summary> /// </summary>
@ -611,6 +653,26 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Dtos
} }
public class MAIDAN_HBPO_INVOICE_MAP_GROUP_DTO
{
/// <summary>
///发票分组号
/// </summary>
[Display(Name = "发票分组号")]
public string InvGroupNum { get; set; }
/// <summary>
///结算分组号
/// </summary>
[Display(Name = "五联单号")]
public string SettleGroupNum { get; set; }
[Display(Name = "现生产码")]
public string Extend1 { get; set; }
}
public class INVOICE_MAP_GROUP_EXP_DTO public class INVOICE_MAP_GROUP_EXP_DTO
{ {

2
code/src/Modules/SettleAccount/src/SettleAccount.Application/Bases/BA_SERVICE.cs

@ -209,7 +209,7 @@ namespace Win.Sfs.SettleAccount.Bases
PRICE = itm.PRICE, PRICE = itm.PRICE,
Qty = itm.Qty, Qty = itm.Qty,
Amt = itm.Amt, Amt = itm.Amt,
BussiessType = itm.BussiessType,
Extend1 = itm.Extend1, Extend1 = itm.Extend1,
BeginDate = itm.BeginDate, BeginDate = itm.BeginDate,
EndDate = itm.EndDate, EndDate = itm.EndDate,

74
code/src/Modules/SettleAccount/src/SettleAccount.Application/Bases/PD_SERVICE.cs

@ -2,6 +2,7 @@ using AutoMapper;
using DocumentFormat.OpenXml.Bibliography; using DocumentFormat.OpenXml.Bibliography;
using DocumentFormat.OpenXml.Drawing.Charts; using DocumentFormat.OpenXml.Drawing.Charts;
using DocumentFormat.OpenXml.Office2010.Excel; using DocumentFormat.OpenXml.Office2010.Excel;
using EFCore.BulkExtensions;
using Magicodes.ExporterAndImporter.Core; using Magicodes.ExporterAndImporter.Core;
using Magicodes.ExporterAndImporter.Csv; using Magicodes.ExporterAndImporter.Csv;
using Magicodes.ExporterAndImporter.Excel; using Magicodes.ExporterAndImporter.Excel;
@ -11,6 +12,7 @@ using NPOI.HPSF;
using NPOI.OpenXmlFormats.Spreadsheet; using NPOI.OpenXmlFormats.Spreadsheet;
using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime; using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime;
using SettleAccount.Bases; using SettleAccount.Bases;
using SettleAccount.Job.Services;
using Shouldly; using Shouldly;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@ -21,6 +23,7 @@ using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using TaskJob.EventArgs; using TaskJob.EventArgs;
using TaskJob.Services; using TaskJob.Services;
using Volo.Abp;
using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services; using Volo.Abp.Application.Services;
using Volo.Abp.Domain.Entities; using Volo.Abp.Domain.Entities;
@ -32,6 +35,7 @@ using Win.Sfs.SettleAccount.Entities.BQ;
using Win.Sfs.SettleAccount.Entities.BQ.Dtos; using Win.Sfs.SettleAccount.Entities.BQ.Dtos;
using Win.Sfs.SettleAccount.Entities.BQ.Syncs; using Win.Sfs.SettleAccount.Entities.BQ.Syncs;
using Win.Sfs.SettleAccount.Entities.BQ.Vmi; using Win.Sfs.SettleAccount.Entities.BQ.Vmi;
using Win.Sfs.SettleAccount.Entities.TaskJobs;
using Win.Sfs.SettleAccount.ExcelImporter; using Win.Sfs.SettleAccount.ExcelImporter;
using Win.Sfs.SettleAccount.ExportReports; using Win.Sfs.SettleAccount.ExportReports;
using Win.Sfs.Shared.RepositoryBase; using Win.Sfs.Shared.RepositoryBase;
@ -138,8 +142,76 @@ namespace Win.Sfs.SettleAccount.Bases
//[Route("generateinvoice")] //[Route("generateinvoice")]
public virtual async Task<string> ApprovalPassed(List<string> p_list) public virtual async Task<string> ApprovalPassed(List<string> p_list)
{ {
return ApplicationConsts.SuccessStr; return ApplicationConsts.SuccessStr;
} }
protected async Task<string> InvokePD(List<string> p_list, TaskJobService p_service, bool isback=false)
{
var detailist = _detailRepository.Where(p => p_list.Contains(p.BillNum)).ToList();
var first=detailist.FirstOrDefault();
List<CustomCondition> customConditionList = new List<CustomCondition>();
customConditionList.Add(new CustomCondition() { Name = "BillNumList", Value = string.Join(",", p_list) });
customConditionList.Add(new CustomCondition() { Name = "Type", Value =first.BusinessType.ToString() });
if (isback == false)
{
customConditionList.Add(new CustomCondition() { Name = "IsOut", Value = "out" });
}
else
{
customConditionList.Add(new CustomCondition() { Name = "IsOut", Value = "in" });
}
var ls = _repository.Where(p => p_list.Contains(p.BillNum)).ToList();
var lst=new List<TEntity>();
if (isback == false)
{
lst = ls.Where(p => (p.State == SettleBillState. || p.State == SettleBillState.)).ToList();
}
else
{
lst = ls.Where(p => (p.State == SettleBillState.|| p.State == SettleBillState.)).ToList();
}
if (lst.Count() > 0)
{
throw new UserFriendlyException("当前状态是已提交状态,不能重复已提交", "400");
}
foreach (var item in ls)
{
if (isback == false)
{
item.State = SettleBillState.;
}
else
{
item.State = SettleBillState.;
}
}
await _repository.DbContext.BulkUpdateAsync(ls);
var _taskid = await p_service.ExportEnqueueAsync($"{first.BusinessType.ToString()}待扣减任务", ExportExtentsion.Excel, DateTime.Now.ToString("yyyyMM"), string.Empty, CurrentUser, typeof(PendingDeductionService), customConditionList, (rs) =>
{
});
return _taskid;
}
/// <summary> /// <summary>
/// 查询主表 /// 查询主表
/// </summary> /// </summary>
@ -160,7 +232,7 @@ namespace Win.Sfs.SettleAccount.Bases
/// <param name="input"></param> /// <param name="input"></param>
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
public virtual async Task<string> RejectAsync(TRequestMainInput input) public virtual async Task<string> RejectAsync(List<string> p_list)
{ {
return ApplicationConsts.SuccessStr; return ApplicationConsts.SuccessStr;
} }

28
code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/BBAC_PD_SERVICE.cs

@ -50,27 +50,15 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
[UnitOfWork(false)] [UnitOfWork(false)]
public override async Task<string> ApprovalPassed(List<string> p_list) public override async Task<string> ApprovalPassed(List<string> p_list)
{ {
var detailist = _detailRepository.Where(p => p_list.Contains(p.BillNum)).ToList(); return await InvokePD(p_list, _service, false);
List<CustomCondition> customConditionList = new List<CustomCondition>();
customConditionList.Add(new CustomCondition() { Name = "BillNumList", Value =string.Join(",",p_list) }); }
customConditionList.Add(new CustomCondition() { Name = "Type", Value = EnumBusinessType.JisBBAC.ToString() });
customConditionList.Add(new CustomCondition() { Name = "IsOut", Value ="out"}); [UnitOfWork(false)]
var ls = _repository.Where(p => p_list.Contains(p.BillNum)).ToList(); public override async Task<string> RejectAsync(List<string> p_list)
var lst = ls.Where(p => (p.State == SettleBillState. || p.State == SettleBillState.)); {
if (lst.Count() > 0) return await InvokePD(p_list, _service, true);
{
throw new UserFriendlyException("当前状态是已提交状态,不能重复已提交", "400");
}
foreach (var item in ls)
{
item.State = SettleBillState.;
}
await _repository.DbContext.BulkUpdateAsync(ls);
var _taskid = await _service.ExportEnqueueAsync("BBAC待扣减任务", ExportExtentsion.Excel, DateTime.Now.ToString("yyyyMM"), string.Empty, CurrentUser, typeof(PendingDeductionService), customConditionList, (rs) =>
{
});
return _taskid;
} }
//[HttpPost] //[HttpPost]
//public virtual async Task<string> RejectAsync(List<string> p_list) //public virtual async Task<string> RejectAsync(List<string> p_list)

7
code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/HBPO_BA_SERVICE.cs

@ -372,7 +372,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
//} //}
var dto1s = ObjectMapper.Map<List<HBPO_CAN_SA_DETAIL>, List<HBPO_CAN_SA_DETAIL_DTO>>(entitys); var dto1s = ObjectMapper.Map<List<HBPO_CAN_SA_DETAIL>, List<HBPO_CAN_SA_DETAIL_DTO>>(entitys);
var q = from d in dto1s var q = from d in dto1s
join p in priceList on d.PartCode equals p.LU join p in priceList on d.LU equals p.LU
where d.SettleDate >= p.BeginTime && d.SettleDate <= p.EndTime && p.IsCancel == false && p.ClientCode == inv.Site//客户零件号 where d.SettleDate >= p.BeginTime && d.SettleDate <= p.EndTime && p.IsCancel == false && p.ClientCode == inv.Site//客户零件号
select new TEMP_CAN_SA_DETAIL select new TEMP_CAN_SA_DETAIL
{ {
@ -445,9 +445,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
{ {
return new JsonResult(new { Code = 400, Message = "请下载错误模版", fileName = result }); return new JsonResult(new { Code = 400, Message = "请下载错误模版", fileName = result });
} }
var invBilllist = new List<INVOICE_REPEAT_DTO>(); var invBilllist = new List<INVOICE_REPEAT_DTO>();
var adjlist = ObjectMapper.Map<List<PUB_ADJ_DETAIL_DTO>, List<PUB_ADJ_DETAIL>>(p_list); var adjlist = ObjectMapper.Map<List<PUB_ADJ_DETAIL_DTO>, List<PUB_ADJ_DETAIL>>(p_list);
@ -522,7 +519,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
//} //}
var dto1s = ObjectMapper.Map<List<HBPO_CAN_SA_DETAIL>, List<HBPO_CAN_SA_DETAIL_DTO>>(entitys); var dto1s = ObjectMapper.Map<List<HBPO_CAN_SA_DETAIL>, List<HBPO_CAN_SA_DETAIL_DTO>>(entitys);
var q = from d in dto1s var q = from d in dto1s
join p in priceList on d.PartCode equals p.LU join p in priceList on d.LU equals p.LU
where d.SettleDate >= p.BeginTime && d.SettleDate <= p.EndTime && p.IsCancel == false && p.ClientCode == inv.Site//客户零件号 where d.SettleDate >= p.BeginTime && d.SettleDate <= p.EndTime && p.IsCancel == false && p.ClientCode == inv.Site//客户零件号
select new TEMP_CAN_SA_DETAIL select new TEMP_CAN_SA_DETAIL
{ {

29
code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/HBPO_PD_SERVICE.cs

@ -44,31 +44,16 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
[UnitOfWork(false)] [UnitOfWork(false)]
public override async Task<string> ApprovalPassed(List<string> p_list) public override async Task<string> ApprovalPassed(List<string> p_list)
{ {
var detailist = _detailRepository.Where(p => p_list.Contains(p.BillNum)).ToList(); return await InvokePD(p_list, _service, false);
List<CustomCondition> customConditionList = new List<CustomCondition>(); }
customConditionList.Add(new CustomCondition() { Name = "BillNumList", Value = string.Join(",", p_list) }); [UnitOfWork(false)]
customConditionList.Add(new CustomCondition() { Name = "Type", Value = EnumBusinessType.JisHBPO.ToString() }); public override async Task<string> RejectAsync(List<string> p_list)
customConditionList.Add(new CustomCondition() { Name = "IsOut", Value = "out" }); {
var ls = _repository.Where(p => p_list.Contains(p.BillNum)).ToList(); return await InvokePD(p_list, _service, true);
var lst = ls.Where(p => (p.State == SettleBillState. || p.State == SettleBillState.));
if (lst.Count() > 0)
{
throw new UserFriendlyException("当前状态是已提交状态,不能重复已提交","400");
}
foreach (var item in ls)
{
item.State = SettleBillState.;
}
await _repository.DbContext.BulkUpdateAsync(ls);
var _taskid = await _service.ExportEnqueueAsync("HBPO待扣减任务", ExportExtentsion.Excel, DateTime.Now.ToString("yyyyMM"), string.Empty, CurrentUser, typeof(PendingDeductionService), customConditionList, (rs) =>
{
});
return _taskid;
} }
} }
} }

96
code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/INVOICE_SERVICE.cs

@ -13,6 +13,7 @@ using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using NPOI.HPSF; using NPOI.HPSF;
using SettleAccount.Domain.BQ; using SettleAccount.Domain.BQ;
using ShardingCore.Extensions;
using Shouldly; using Shouldly;
using SqlSugar; using SqlSugar;
using System; using System;
@ -25,6 +26,7 @@ using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services; using Volo.Abp.Application.Services;
using Volo.Abp.Data;
using Volo.Abp.Domain.Entities; using Volo.Abp.Domain.Entities;
using Volo.Abp.Uow; using Volo.Abp.Uow;
using Win.Abp.Snowflakes; using Win.Abp.Snowflakes;
@ -165,8 +167,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
var mdtos = ObjectMapper.Map<List<INVOICE_MAP_GROUP>, List<INVOICE_MAP_GROUP_DTO>>(m); var mdtos = ObjectMapper.Map<List<INVOICE_MAP_GROUP>, List<INVOICE_MAP_GROUP_DTO>>(m);
var first = invs.FirstOrDefault(); var first = invs.FirstOrDefault();
if (invs.FirstOrDefault().BusinessType == EnumBusinessType.JisBBAC) if (invs.FirstOrDefault().BusinessType == EnumBusinessType.JisBBAC)
{ {
var A = await _wRepository.GetListByFilterAsync(input.Filters, input.Sorting, int.MaxValue, input.SkipCount); var A = await _wRepository.GetListByFilterAsync(input.Filters, input.Sorting, int.MaxValue, input.SkipCount);
@ -201,8 +201,26 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
var B = await _wRepository.GetListByFilterAsync(input.Filters, input.Sorting, int.MaxValue, input.SkipCount); var B = await _wRepository.GetListByFilterAsync(input.Filters, input.Sorting, int.MaxValue, input.SkipCount);
B.OrderBy(p => p.LineCode); B.OrderBy(p => p.LineCode);
var BMap = ObjectMapper.Map<List<INVOICE_WAIT_DETAIL>, List<INVOICE_WAIT_DETAIL_BJ_DTO>>(B);
List<INVOICE_WAIT_DETAIL_BJ_DTO> BMap = new List<INVOICE_WAIT_DETAIL_BJ_DTO>();
foreach (var itm in B)
{
INVOICE_WAIT_DETAIL_BJ_DTO bj = new INVOICE_WAIT_DETAIL_BJ_DTO();
bj.LU = itm.LU;
bj.PartCode = itm.PartCode;
bj.PRICE = itm.PRICE;
bj.InvGroupNum = itm.InvGroupNum;
bj.DeliveryNumber= itm.GetProperty("DeliveryNumber", "");//交货号
bj.InvbillNum = itm.GetProperty("InvoiceNumber", "");//发票号
bj.VendorCode = itm.GetProperty("VendorCode", "");//供应商代码
bj.VendorName = itm.GetProperty("VendorName", "");//供应商名称
bj.PurchaseOrderNumber = itm.GetProperty("PurchaseOrderNumber", "");//采购订单号
bj.DeliveryIndexNumber = itm.GetProperty("DeliveryIndexNumber", "");//交付索引号
bj.PartName = itm.GetProperty("PartName", "");//零件名称
}
//var BMap = ObjectMapper.Map<List<INVOICE_WAIT_DETAIL>, List<INVOICE_WAIT_DETAIL_BJ_DTO>>(B);
var wquery = from itm in BMap var wquery = from itm in BMap
join itm1 in invs on itm.InvbillNum equals itm1.InvbillNum join itm1 in invs on itm.InvbillNum equals itm1.InvbillNum
join itm2 in materialList on itm.LU equals itm2.SettleMaterialCode into temp join itm2 in materialList on itm.LU equals itm2.SettleMaterialCode into temp
@ -221,7 +239,11 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
PRICE = itm.PRICE, PRICE = itm.PRICE,
Qty = itm.Qty, Qty = itm.Qty,
Amt = itm.Amt, Amt = itm.Amt,
BussiessType = itm.BussiessType, DeliveryNumber = itm.DeliveryNumber ,
VendorCode = itm.VendorCode ,
VendorName = itm.VendorName ,
PurchaseOrderNumber = itm.PurchaseOrderNumber,
DeliveryIndexNumber =itm.DeliveryIndexNumber ,
Extend1 = itm.Extend1, Extend1 = itm.Extend1,
BeginDate = itm.BeginDate, BeginDate = itm.BeginDate,
EndDate = itm.EndDate, EndDate = itm.EndDate,
@ -230,7 +252,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
} }
else else
{ {
var w = await _wRepository.GetListByFilterAsync(input.Filters, input.Sorting, int.MaxValue, input.SkipCount); var w = await _wRepository.GetListByFilterAsync(input.Filters, input.Sorting, int.MaxValue, input.SkipCount);
var wdtos = ObjectMapper.Map<List<INVOICE_WAIT_DETAIL>, List<INVOICE_WAIT_DETAIL_DTO>>(w); var wdtos = ObjectMapper.Map<List<INVOICE_WAIT_DETAIL>, List<INVOICE_WAIT_DETAIL_DTO>>(w);
var wquery = from itm in wdtos var wquery = from itm in wdtos
@ -240,7 +261,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
select select
new INVOICE_WAIT_DETAIL_DTO() new INVOICE_WAIT_DETAIL_DTO()
{ {
PartDesc = tm == null ? string.Empty : itm.PartDesc, PartDesc = tm == null ? string.Empty : itm.PartDesc,
InvDate = itm1.CreationTime, InvDate = itm1.CreationTime,
RealInvbillNum = string.IsNullOrEmpty(itm1.RealnvBillNum) ? string.Empty : itm1.RealnvBillNum, RealInvbillNum = string.IsNullOrEmpty(itm1.RealnvBillNum) ? string.Empty : itm1.RealnvBillNum,
@ -318,26 +338,46 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
SettleGroupNum = p.FirstOrDefault().SettleGroupNum, SettleGroupNum = p.FirstOrDefault().SettleGroupNum,
} }
); );
if (first.BusinessType == EnumBusinessType.ZhiGongJianBBAC) if (first.BusinessType == EnumBusinessType.ZhiGongJianBBAC)//BBAC直供未结
{ {
//var all = entity.INVOICE_NOT_SETTLE.Select(p => p.SettleGroupNum).Distinct().ToList();//全部分组号 //var all = entity.INVOICE_NOT_SETTLE.Select(p => p.SettleGroupNum).Distinct().ToList();//全部分组号
//var part = mquery.ToList().Select(p => p.SettleGroupNum).Distinct().ToList();//发票对应分组号 //var part = mquery.ToList().Select(p => p.SettleGroupNum).Distinct().ToList();//发票对应分组号
//var unsettled = all.Where(p => !part.Contains(p));//排除发票对应分组号,都为不可结 //var unsettled = all.Where(p => !part.Contains(p));//排除发票对应分组号,都为不可结
var unsettledList = sdtos var unsettledList = sdtos
.GroupBy(p => new { p.LU, p.SettleGroupNum }) .GroupBy(p => new { p.LU, p.SettleGroupNum })
.Select(p => new UNSETTLED_DETAIL_DTO { LU = p.Key.LU, GroupNum = p.Key.SettleGroupNum, Qty = p.Sum(itm => itm.Qty.Value) }); .Select(p => new JIT_UNSETTLED_DETAIL_DTO { LU = p.Key.LU, GroupNum = p.Key.SettleGroupNum, Qty = p.Sum(itm => itm.Qty.Value) });
entity.UNSETTLED_DETAIL = unsettledList.ToList().OrderBy(p => p.GroupNum).ThenBy(p => p.LU).ToList(); entity.JIT_UNSETTLED_DETAIL = unsettledList.ToList().OrderBy(p => p.GroupNum).ThenBy(p => p.LU).ToList();
} }
if (first.BusinessType == EnumBusinessType.JisHBPO)
if (first.BusinessType == EnumBusinessType.JisHBPO || first.BusinessType == EnumBusinessType.JisBBAC)
{ {
entity.INVOICE_MAP_GROUP = lscompare.ToList().OrderBy(p => p.SettleGroupNum).ToList();//包含不可结结算分组号 entity.INVOICE_MAP_GROUP = lscompare.ToList().OrderBy(p => p.SettleGroupNum).ToList();//包含不可结结算分组号
} }
if (first.BusinessType == EnumBusinessType.MaiDanJianHBPO)
if (first.BusinessType == EnumBusinessType.MaiDanJianHBPO)//hbpo买单未结
{ {
entity.INVOICE_MAP_GROUP = mdtos; List<MAIDAN_HBPO_INVOICE_MAP_GROUP_DTO> hbpomaplist = new List<MAIDAN_HBPO_INVOICE_MAP_GROUP_DTO>();
} foreach (var itm in m)
{
hbpomaplist.Add(new MAIDAN_HBPO_INVOICE_MAP_GROUP_DTO()
{
InvGroupNum = itm.InvGroupNum,
SettleGroupNum = itm.SettleGroupNum,
Extend1 = itm.Extend1,
});
}
entity.MAIDAN_HBPO_INVOICE_MAP_GROUP = hbpomaplist;
if (sdtos != null && sdtos.Count > 0)
{
var hbpo=sdtos.Select(p => new MAIDAN_HBPO_UNSETTLED_DETAIL_DTO(){
GroupNum = p.SettleGroupNum,//五联单号
LU=p.LU,
PN=p.Extend1,//生产码
});
entity.MAIDAN_HBPO_UNSETTLED_DETAIL = hbpo.ToList();
}
}
entity.ADJ_DETAIL = adjQuery.ToList().OrderBy(p=>p.GroupNum).ThenBy(p=>p.LU).ToList(); entity.ADJ_DETAIL = adjQuery.ToList().OrderBy(p=>p.GroupNum).ThenBy(p=>p.LU).ToList();
return entity; return entity;
} }
@ -403,6 +443,10 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
var unsettle = invdetail.UNSETTLED_DETAIL;//全部未结明细 var unsettle = invdetail.UNSETTLED_DETAIL;//全部未结明细
var jitunsettle = invdetail.JIT_UNSETTLED_DETAIL;
var maidanunsettle = invdetail.MAIDAN_HBPO_UNSETTLED_DETAIL;
var maidangroup = invdetail.MAIDAN_HBPO_INVOICE_MAP_GROUP;
var classDisplayName = typeof(INVOICE_GRP_DTO).GetCustomAttribute<DisplayAttribute>()?.Name ?? typeof(INVOICE_GRP_DTO).Name; var classDisplayName = typeof(INVOICE_GRP_DTO).GetCustomAttribute<DisplayAttribute>()?.Name ?? typeof(INVOICE_GRP_DTO).Name;
string _fileName = $"{classDisplayName}_{Guid.NewGuid().ToString()}.xlsx"; string _fileName = $"{classDisplayName}_{Guid.NewGuid().ToString()}.xlsx";
@ -425,18 +469,27 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
{ {
_excel.Append(m, "发票结算分组对应");//发票分组对应结算号 _excel.Append(m, "发票结算分组对应");//发票分组对应结算号
} }
if (first.BusinessType == EnumBusinessType.ZhiGongJianBBAC ) if (first.BusinessType == EnumBusinessType.ZhiGongJianBBAC )
{ {
_excel.Append(unsettle, "未结零件结算汇总"); if(jitunsettle != null)
{
_excel.Append(jitunsettle, "未结零件结算汇总");
}
//_excel.Append(m, "发票结算分组对应");
} }
if (first.BusinessType == EnumBusinessType.JisHBPO) if (first.BusinessType == EnumBusinessType.MaiDanJianHBPO)
{ {
_excel.Append(unsettle, "未结零件列表"); if(maidangroup != null)
{
_excel.Append(maidangroup, "结算对应关系");
}
if (maidanunsettle != null)
{
_excel.Append(maidanunsettle, "未结零件结算汇总");
}
} }
foreach (var itm in entities) foreach (var itm in entities)
{ {
var mgroup = m.Where(p => p.InvbillNum == itm.InvbillNum).ToList(); var mgroup = m.Where(p => p.InvbillNum == itm.InvbillNum).ToList();
@ -530,6 +583,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
_excel.Append(adjp, "发票调整数据" + itm.InvbillNum).SeparateBySheet(); _excel.Append(adjp, "发票调整数据" + itm.InvbillNum).SeparateBySheet();
} }
var result = _excel.ExportAppendDataAsByteArray(); var result = _excel.ExportAppendDataAsByteArray();
result.ShouldNotBeNull(); result.ShouldNotBeNull();
//保存导出文件到服务器存成二进制 //保存导出文件到服务器存成二进制

8
code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PUB_BA_SERVICE.cs

@ -63,14 +63,10 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
var errorlist = await CheckRepeat(p_list); var errorlist = await CheckRepeat(p_list);
if (errorlist.Count > 0) if (errorlist.Count > 0)
{ {
return new JsonResult(new { Code = ApplicationConsts.ImportFailCode, Message = "错误提示文件已下载,请打开文件查看", fileName = await ExportErrorReportAsync(errorlist) }); return new JsonResult(new { Code = ApplicationConsts.ImportFailCode, Message = "错误提示文件已下载,请打开文件查看", fileName = await ExportErrorReportAsync(errorlist) });
} }
var first = p_list.FirstOrDefault(); var first = p_list.FirstOrDefault();
var invbillnum = first.InvBillNum; var invbillnum = first.InvBillNum;
List<INVOICE_WAIT_DETAIL_DTO> ls = new List<INVOICE_WAIT_DETAIL_DTO>(); List<INVOICE_WAIT_DETAIL_DTO> ls = new List<INVOICE_WAIT_DETAIL_DTO>();
var adjlist = ObjectMapper.Map<List<PUB_ADJ_DETAIL_DTO>, List<PUB_ADJ_DETAIL>>(p_list); var adjlist = ObjectMapper.Map<List<PUB_ADJ_DETAIL_DTO>, List<PUB_ADJ_DETAIL>>(p_list);
if (adjlist == null && adjlist.Count == 0) if (adjlist == null && adjlist.Count == 0)
@ -271,7 +267,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
} }
// var dto1s = ObjectMapper.Map<List<HBPO_CAN_SA_DETAIL>, List<HBPO_CAN_SA_DETAIL_DTO>>(entitys); // var dto1s = ObjectMapper.Map<List<HBPO_CAN_SA_DETAIL>, List<HBPO_CAN_SA_DETAIL_DTO>>(entitys);
var q = from d in entitys var q = from d in entitys
join p in priceList on d.PartCode equals p.LU join p in priceList on d.LU equals p.LU
where d.SettleDate >= p.BeginTime && d.SettleDate <= p.EndTime && p.IsCancel == false && p.ClientCode == inv.Site where d.SettleDate >= p.BeginTime && d.SettleDate <= p.EndTime && p.IsCancel == false && p.ClientCode == inv.Site
select new TEMP_CAN_SA_DETAIL select new TEMP_CAN_SA_DETAIL
{ {
@ -404,7 +400,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
//} //}
var dto1s = ObjectMapper.Map<List<PUB_CAN_SA_DETAIL>, List<PUB_CAN_SA_DETAIL_DTO>>(entitys); var dto1s = ObjectMapper.Map<List<PUB_CAN_SA_DETAIL>, List<PUB_CAN_SA_DETAIL_DTO>>(entitys);
var q = from d in dto1s var q = from d in dto1s
join p in priceList on d.PartCode equals p.LU join p in priceList on d.LU equals p.LU
where d.SettleDate >= p.BeginTime && d.SettleDate <= p.EndTime && p.IsCancel == false && p.ClientCode == inv.Site//客户零件号 where d.SettleDate >= p.BeginTime && d.SettleDate <= p.EndTime && p.IsCancel == false && p.ClientCode == inv.Site//客户零件号
select new TEMP_CAN_SA_DETAIL select new TEMP_CAN_SA_DETAIL
{ {

29
code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PUB_PD_SERVICE.cs

@ -40,30 +40,15 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
[UnitOfWork(false)] [UnitOfWork(false)]
public override async Task<string> ApprovalPassed(List<string> p_list) public override async Task<string> ApprovalPassed(List<string> p_list)
{ {
var detailist = _detailRepository.Where(p => p_list.Contains(p.BillNum)).ToList(); return await InvokePD(p_list, _service, false);
List<CustomCondition> customConditionList = new List<CustomCondition>(); }
customConditionList.Add(new CustomCondition() { Name = "BillNumList", Value = string.Join(",", p_list) }); [UnitOfWork(false)]
var first=detailist.FirstOrDefault(); public override async Task<string> RejectAsync(List<string> p_list)
customConditionList.Add(new CustomCondition() { Name = "Type", Value = first.BusinessType.ToString()}); {
customConditionList.Add(new CustomCondition() { Name = "IsOut", Value = "out" }); return await InvokePD(p_list, _service, true);
var ls = _repository.Where(p => p_list.Contains(p.BillNum)).ToList(); }
var lst = ls.Where(p => (p.State == SettleBillState. || p.State == SettleBillState.));
if (lst.Count() > 0)
{
throw new UserFriendlyException("当前状态是已提交状态,不能重复已提交", "400");
}
foreach (var item in ls)
{
item.State = SettleBillState.;
}
await _repository.DbContext.BulkUpdateAsync(ls);
var _taskid = await _service.ExportEnqueueAsync("PUB待扣减任务", ExportExtentsion.Excel, DateTime.Now.ToString("yyyyMM"), string.Empty, CurrentUser, typeof(PendingDeductionService), customConditionList, (rs) =>
{
});
return _taskid;
}
} }
} }

10
code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/Syncs/PendingDeductionService.cs

@ -65,7 +65,7 @@ public class PendingDeductionService : ApplicationService, ITransientDependency,
{ {
if (itm.Site == "1040" && string.IsNullOrEmpty(itm.Extend2)) if (itm.Site == "1040" && string.IsNullOrEmpty(itm.Extend2))
{ {
itm.Extend2 = projectList.FirstOrDefault(p => p.Value == "JisBBAC").Description; itm.Extend2 = projectList.FirstOrDefault(p => p.Value == "JisBBAC").Description;//通用表读取
} }
else else
{ {
@ -213,9 +213,7 @@ public class PendingDeductionService : ApplicationService, ITransientDependency,
itm.SetId(GuidGenerator.Create()); itm.SetId(GuidGenerator.Create());
} }
var _first = p_ls.FirstOrDefault(); var _first = p_ls.FirstOrDefault();
bool issucess = true; bool issucess = true;
using (var transaction = _dbcontext.Database.BeginTransaction()) using (var transaction = _dbcontext.Database.BeginTransaction())
{ {
try try
@ -248,7 +246,6 @@ public class PendingDeductionService : ApplicationService, ITransientDependency,
{ {
item.State = SettleBillState.; item.State = SettleBillState.;
} }
} }
_dbcontext.BulkUpdate(pdList); _dbcontext.BulkUpdate(pdList);
} }
@ -306,12 +303,10 @@ public class PendingDeductionService : ApplicationService, ITransientDependency,
issucess = false; issucess = false;
// 回滚事务 // 回滚事务
transaction.Rollback(); transaction.Rollback();
} }
} }
if (issucess ==false) if (issucess ==false)
{ {
var billList = p_ls.Select(p => p.BillNum).Distinct().ToList(); var billList = p_ls.Select(p => p.BillNum).Distinct().ToList();
var pdList = _dbcontext.Set<PUB_PD>().Where(p => billList.Contains(p.BillNum)).ToList(); var pdList = _dbcontext.Set<PUB_PD>().Where(p => billList.Contains(p.BillNum)).ToList();
if (pdList.Count > 0) if (pdList.Count > 0)
@ -327,7 +322,6 @@ public class PendingDeductionService : ApplicationService, ITransientDependency,
item.State = SettleBillState.; item.State = SettleBillState.;
} }
} }
_dbcontext.BulkUpdate(pdList); _dbcontext.BulkUpdate(pdList);
} }
@ -343,7 +337,6 @@ public class PendingDeductionService : ApplicationService, ITransientDependency,
else else
{ {
item.State = SettleBillState.; item.State = SettleBillState.;
} }
} }
_dbcontext.BulkUpdate(bbacList); _dbcontext.BulkUpdate(bbacList);
@ -360,7 +353,6 @@ public class PendingDeductionService : ApplicationService, ITransientDependency,
else else
{ {
item.State = SettleBillState.; item.State = SettleBillState.;
} }
} }
_dbcontext.BulkUpdate(hbpoList); _dbcontext.BulkUpdate(hbpoList);

5
code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/HBPO_NOT_SA_MNG.cs

@ -58,9 +58,8 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
errors.Add($"生产号{itm.PN}零件{itm.LU}结算日期{itm.SettleDate}无价格区间数据"); errors.Add($"生产号{itm.PN}零件{itm.LU}结算日期{itm.SettleDate}无价格区间数据");
} }
} }
if (first.BusinessType == EnumBusinessType.JisHBPO) if (first.BusinessType == EnumBusinessType.JisHBPO || first.BusinessType == EnumBusinessType.MaiDanJianHBPO)
{ {
var ls = p_list.Select(p => p.Site.Substring(0, 3)).Distinct().ToList(); var ls = p_list.Select(p => p.Site.Substring(0, 3)).Distinct().ToList();
if (ls.Count > 1) if (ls.Count > 1)
{ {
@ -70,8 +69,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
{ {
return errors; return errors;
} }
} }
var billNumber = OrderNumberGenerator.GenerateOrderNumber("N"); var billNumber = OrderNumberGenerator.GenerateOrderNumber("N");
var _entity = new HBPO_CAN_SA(); var _entity = new HBPO_CAN_SA();

70
code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/INV_MNG.cs

@ -435,7 +435,9 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
/// <returns></returns> /// <returns></returns>
public virtual async Task<bool> ReceivedAsync(List<string> p_invs) public virtual async Task<bool> ReceivedAsync(List<string> p_invs)
{ {
var invList = _repository.Where(p => p_invs.Contains(p.InvbillNum)).ToList();//所有提交发票信息 var invList = _repository.Where(p => p_invs.Contains(p.InvbillNum)).ToList();//所有提交发票信息
int count = invList.Select(p => p.InvGroupNum).Distinct().Count(); int count = invList.Select(p => p.InvGroupNum).Distinct().Count();
if (count > 1) if (count > 1)
{ {
@ -912,7 +914,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
/// <returns></returns> /// <returns></returns>
public virtual async Task<bool> Reject(string groupbillNum) public virtual async Task<bool> Reject(string groupbillNum)
{ {
var ls = await _repository.Where(p => p.InvGroupNum == groupbillNum).ToListAsync(); var ls = await _repository.Where(p => p.InvGroupNum == groupbillNum).ToListAsync();
if (ls != null && ls.Count > 0) if (ls != null && ls.Count > 0)
{ {
@ -953,7 +954,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
} }
//await _repository.DbContext.BulkUpdateAsync(canList); //await _repository.DbContext.BulkUpdateAsync(canList);
} }
} }
} }
else else
@ -970,7 +970,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
/// <returns></returns> /// <returns></returns>
public virtual async Task<bool> BackAsync(string billNum) public virtual async Task<bool> BackAsync(string billNum)
{ {
var _ls = await _repository.Where(p => p.InvGroupNum == billNum).ToListAsync(); var _ls = await _repository.Where(p => p.InvGroupNum == billNum).ToListAsync();
if (_ls != null && _ls.Count > 0) if (_ls != null && _ls.Count > 0)
{ {
@ -978,7 +977,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
{ {
} }
} }
//if (_ls != null && _ls.Count > 0) //if (_ls != null && _ls.Count > 0)
//{ //{
@ -1022,7 +1020,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
[UnitOfWork(false)] [UnitOfWork(false)]
public async Task<List<string>> SecInvoice<TDetail>(List<TDetail> p_list, List<PUB_ADJ_DETAIL> p_ajdlist, List<TEMP_CAN_SA_DETAIL> dtos, int p_version, string p_InvGroupNum, string p_parentInvBillNum, EnumBusinessType businessType) public async Task<List<string>> SecInvoice<TDetail>(List<TDetail> p_list, List<PUB_ADJ_DETAIL> p_ajdlist, List<TEMP_CAN_SA_DETAIL> dtos, int p_version, string p_InvGroupNum, string p_parentInvBillNum, EnumBusinessType businessType)
where TDetail : SA_CAN_BASE where TDetail : SA_CAN_BASE
{ {
List<string> _invls = new List<string>(); List<string> _invls = new List<string>();
var groups1 = dtos.GroupBy(p => new { p.PartCode, p.LU, p.Price, p.BeginDate, p.EndDate, p.ContractDocID }).Select(p => new TMEP_INV var groups1 = dtos.GroupBy(p => new { p.PartCode, p.LU, p.Price, p.BeginDate, p.EndDate, p.ContractDocID }).Select(p => new TMEP_INV
@ -1237,9 +1234,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
); );
invbill.ClientCode = clientCode; invbill.ClientCode = clientCode;
invbill.Site = dtos.FirstOrDefault().Site; invbill.Site = dtos.FirstOrDefault().Site;
invlist.Add(invbill); invlist.Add(invbill);
} }
@ -1536,8 +1530,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
//} //}
_invls = invlist.Select(p => p.InvbillNum).ToList(); _invls = invlist.Select(p => p.InvbillNum).ToList();
} }
return _invls; return _invls;
} }
@ -1697,7 +1689,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
invGroupNum: p_InvGroupNum, invGroupNum: p_InvGroupNum,
settleGroupNum: groupnum.GroupNum, settleGroupNum: groupnum.GroupNum,
amt: 0, amt: 0,
extend1: groupnum.PN, extend1: groupnum.PN,//生产码
extend2: string.Empty extend2: string.Empty
) )
); );
@ -1706,32 +1698,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
{ {
groupList.AddRange(mapList); groupList.AddRange(mapList);
} }
var notsettle= _nothbpoRepository.Where(p => p.SettleBillNum == p_InvGroupNum);//一次开票时查找不可结数据,追加需求
if (notsettle != null && notsettle.Count() > 0)
{
var innotls = new List<INVOICE_NOT_SETTLE>();
foreach (var nitm in notsettle)
{
innotls.Add(new INVOICE_NOT_SETTLE(
guid: GuidGenerator.Create(),
version: p_version,
invGroupNum: p_InvGroupNum,
settleGroupNum: nitm.GroupNum,
lU: nitm.LU,
lU1: nitm.LU,
extend1: "不可结算",
extend2: string.Empty,
qty: nitm.Qty,
p_invbillnum: string.Empty
));
}
if (innotls.Count > 0)
{
notDetialList.AddRange(innotls);
}
}
//invoiceBillNum = OrderNumberGenerator.GenerateOrderNumber("INV"); //invoiceBillNum = OrderNumberGenerator.GenerateOrderNumber("INV");
} }
@ -1760,6 +1727,37 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
{ {
detailList.AddRange(_entityDetailList); detailList.AddRange(_entityDetailList);
} }
if (p_first == true)
{
var notsettle = _nothbpoRepository.Where(p => p.SettleBillNum == p_InvGroupNum);//一次开票时查找不可结数据,追加需求
if (notsettle != null && notsettle.Count() > 0)
{
var innotls = new List<INVOICE_NOT_SETTLE>();
foreach (var nitm in notsettle)
{
innotls.Add(new INVOICE_NOT_SETTLE(
guid: GuidGenerator.Create(),
version: p_version,
invGroupNum: p_InvGroupNum,
settleGroupNum: nitm.GroupNum,
lU: nitm.LU,
lU1: nitm.LU,
extend1: nitm.PN,
extend2: string.Empty,
qty: nitm.Qty,
p_invbillnum: string.Empty
));
}
if (innotls.Count > 0)
{
notDetialList.AddRange(innotls);
}
}
}
decimal amt = detailList.Sum(k => k.Amt);//金额 decimal amt = detailList.Sum(k => k.Amt);//金额
decimal txtAmt = detailList.Sum(k => k.Amt) + Math.Round(detailList.Sum(k => k.Amt) * 0.13m, 2);//税后金额 decimal txtAmt = detailList.Sum(k => k.Amt) + Math.Round(detailList.Sum(k => k.Amt) * 0.13m, 2);//税后金额
decimal realAmt = Math.Round(detailList.Sum(k => k.Amt) * 0.13m, 2);//税额 decimal realAmt = Math.Round(detailList.Sum(k => k.Amt) * 0.13m, 2);//税额

4
code/src/Modules/SettleAccount/src/SettleAccount.Domain/EnumBillState.cs

@ -31,7 +31,9 @@ namespace Win.Sfs.SettleAccount
[Description("客户已收票")] [Description("客户已收票")]
= 4, = 4,
[Description("已提交扣减")] [Description("已提交扣减")]
= 6 = 6,
[Description("已提交撤销扣减")]
= 7
} }
public enum PDBillState public enum PDBillState

Loading…
Cancel
Save