Browse Source

更新版本

master
赵新宇 1 year ago
parent
commit
3595b13324
  1. 9
      code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BQ/Dtos/INVOICE_GRP_DTO.cs
  2. 14
      code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/HBPO_CAN_SA_SERVICE.cs
  3. 6
      code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/INVOICE_SERVICE.cs
  4. 34
      code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/Syncs/GenerateJisInvoiceService.cs
  5. 1
      code/src/Modules/SettleAccount/src/SettleAccount.Application/SettleAccountApplicationAutoMapperProfile.cs
  6. 2
      code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/INVOICE_GRP.cs
  7. 86
      code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/INV_MNG.cs

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

@ -159,6 +159,11 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Dtos
//public decimal TaxDiff { get; set; }
[ExporterHeader(DisplayName = "客户代码")]
public string ClientCode { get; set; }
[ExporterHeader(DisplayName = "发票日期")]
public string CreationTime { get; set; }
}
@ -198,7 +203,9 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Dtos
public decimal PreTaxDiff { get; set; }
[ImporterHeader(Name = "发票日期", FixAllSpace = true)]
[Required(ErrorMessage = "{0}是必填项")]
public DateTime InvoiceDate { get; set; }
//[ImporterHeader(Name = "税后金额", FixAllSpace = true)]
//[Required(ErrorMessage = "{0}是必填项")]

14
code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/HBPO_CAN_SA_SERVICE.cs

@ -45,7 +45,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
private readonly INormalEfCoreRepository<PriceList, Guid> _priceRepository;
private readonly HBPO_CAN_SA_MNG _hbpoMng;
private readonly TaskJobService _service;
private readonly INormalEfCoreRepository<HBPO_SA, Guid> _saRepository;
public HBPO_CAN_SA_SERVICE(IExcelImportAppService excelImportService,
@ -56,12 +56,13 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
INV_MNG invmng,
INormalEfCoreRepository<HBPO_NOT_SA_DETAIL, Guid> notRepository,
INormalEfCoreRepository<PriceList, Guid> priceRepository,
INormalEfCoreRepository<HBPO_SA, Guid> saRepository,
HBPO_CAN_SA_MNG hbpoMng,
BaseDomainService baseservice,
TaskJobService service
) : base(excelImportService, snowflakeIdGenerator, commonManager, repository, detailRepository, invmng, baseservice)
{
_saRepository = saRepository;
_priceRepository = priceRepository;
_notRepository = notRepository;
_hbpoMng = hbpoMng;
@ -86,6 +87,15 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
return new JsonResult(new { Code = 400, Message = "已创建发票不能重复创建" });
}
var entitys = await _hbpoMng.GetDetalListAsync(invbillnum).ConfigureAwait(false);
var settleBillList= entitys.Select(p => p.SettleBillNum).Distinct();
//_saRepository.Where(p=>settleBillList.Contains(p.BillNum) && p.State==0)
var priceList = _priceRepository.Where(p => p.IsCancel == false).ToList(); //价格单
var errorList = await CheckInvoiceGenerationRules(entitys, main.Site, priceList, main.BusinessType).ConfigureAwait(false);//校验生成规则
if (errorList.Count > 0)

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

@ -948,6 +948,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
var first = ls.FirstOrDefault();
foreach (var inv in invlist)
{
var newinv1= result.Where(p => p.InvbillNum == inv.InvbillNum).FirstOrDefault();
var newinv = ls.Where(p => p.InvbillNum == inv.InvbillNum).FirstOrDefault();
inv.Tax = 0.13m;
//inv.RealAmt = Math.Round(inv.Amt * newinv.Tax, 2);
@ -955,8 +956,13 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
inv.RealnvBillNum = newinv.RealnvBillNum;
// inv.RealAmt = newinv.RealAmt;
inv.TaxDiff = newinv.PreTaxDiff;
inv.CreationTime = newinv1.InvoiceDate;
// inv.ClientCode = newinv.ClientCode;
}
//foreach (var detail in invdetail)//明细EXTEND1字段BBAC不能占用
//{
// detail.Extend1 = Math.Round(detail.Amt * first.Tax, 2).ToString();

34
code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/Syncs/GenerateJisInvoiceService.cs

@ -29,6 +29,15 @@ using Win.Sfs.Shared.RepositoryBase;
namespace Win.Sfs.SettleAccount.Entities.BQ.Syncs
{
public class tempAmt
{
public decimal Amt { set; get; }
public decimal TaxAmt { set; get; }
public decimal Tax { set; get;}
}
public class GenerateJisInvoiceService : ApplicationService, ITransientDependency, IExportJob
{
@ -346,9 +355,20 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Syncs
{
detailList.AddRange(_entityDetailList);
}
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 readAmt = Math.Round(detailList.Sum(k => k.Amt) * 0.13m, 2);//税额
List<tempAmt> amtList = new List<tempAmt>();
foreach (var itm in detailList)
{
amtList.Add(new tempAmt() {
Amt=itm.Amt,
Tax=Math.Round(itm.Amt*0.13m,2),
TaxAmt=itm.Amt+ Math.Round(itm.Amt * 0.13m, 2)
});
}
decimal amt = amtList.Sum(k => k.Amt);//金额
decimal txtAmt = amtList.Sum(k => k.TaxAmt) ;//税后金额
decimal readAmt = amtList.Sum(k=>k.Tax);//税额
//decimal amt = detailList.Sum(k => k.Amt);
//decimal txtAmt = Math.Round(detailList.Sum(k => k.Amt), 2);
@ -570,14 +590,16 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Syncs
LU = itm.Key.LU,
ContactDocID = itm.Key.ContractDocID,
Price = itm.Key.Price,
Amt = Math.Round(itm.Sum(k => k.Qty) * itm.Key.Price, 2),
Amt = Math.Round(itm.Sum(k => k.Qty) * itm.Key.Price, 2),//税前
Tax = Math.Round(Math.Round(itm.Sum(k => k.Qty) * itm.Key.Price, 2) * 0.13m, 2),//税
TaxAmt = Math.Round(Math.Round(itm.Sum(k => k.Qty) * itm.Key.Price, 2) * 0.13m, 2)+ Math.Round(itm.Sum(k => k.Qty) * itm.Key.Price, 2),//税后进
Qty = itm.Sum(k => k.Qty),
BeginDate = itm.Key.BeginDate,
EndDate = itm.Key.EndDate
}).ToList();
decimal amt = detailDtos.Sum(k => k.Amt);//金额
decimal txtAmt = detailDtos.Sum(k => k.Amt) + Math.Round(detailDtos.Sum(k => k.Amt) * 0.13m, 2);//税后金额
decimal realAmt = Math.Round(detailDtos.Sum(k => k.Amt) * 0.13m, 2);//税额
decimal txtAmt = detailDtos.Sum(k => k.TaxAmt);//税后金额
decimal realAmt =detailDtos.Sum(k => k.Tax);//税额
var mapList = new List<INVOICE_MAP_GROUP>();
foreach (var groupnum in ls)

1
code/src/Modules/SettleAccount/src/SettleAccount.Application/SettleAccountApplicationAutoMapperProfile.cs

@ -286,7 +286,6 @@ namespace Win.Sfs.SettleAccount
{
CreateMap<PUB_NOT_SA_DETAIL, PUB_NOT_SA_DETAIL_DTO>().ReverseMap();
CreateMap<PUB_NOT_SA_DETAIL, PUB_NOT_SA_DETAIL_REQ_DTO>().ReverseMap();
CreateMap<PUB_NOT_SA_DETAIL, PUB_NOT_SA_DETAIL_EXP_DTO>().ReverseMap();
}

2
code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/INVOICE_GRP.cs

@ -57,6 +57,8 @@ namespace SettleAccount.Domain.BQ
[Display(Name = "地点")]
public string Site { get; set; }
public INVOICE_GRP(Guid guid, string realnvBillNum, string invbillNum, decimal amt, decimal taxAmt,
string invGroupNum,
string fileName,

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

@ -19,6 +19,19 @@ using Win.Sfs.Shared.RepositoryBase;
namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
{
public class tempAmt1
{
public decimal Amt { set; get; }
public decimal TaxAmt { set; get; }
public decimal Tax { set; get; }
}
public partial class INV_MNG : DomainService
{
//private readonly INormalEfCoreRepository<TCAN_SA, Guid> _canRepository;
@ -521,7 +534,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
await _repository.DbContext.BulkUpdateAsync(invList).ConfigureAwait(false);
return true;
}
else if (inv.BusinessType == EnumBusinessType.JisHBPO || inv.BusinessType == EnumBusinessType.MaiDanJianHBPO)
{
var pdlist = _pdhbpoRepository.Where(p => p_invs.Contains(p.BillNum)).ToList();//包含发票号的代扣减单
@ -545,7 +557,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
oldlist = pdoldlist.Select(p => p.BillNum).ToList();//已经存在扣减记录,的发票号
}
newlist = p_invs.Where(p => !oldlist.Contains(p)).ToList();//不存在扣减记录的发票号
List<HBPO_CAN_SA_DETAIL> entityList = new List<HBPO_CAN_SA_DETAIL>();//结算明细
var namelist = invList.Select(p => p.InvbillNum).ToList();
if (oldlist.Count > 0)
@ -1092,18 +1103,28 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
{
detailList.AddRange(_entityDetailList);
}
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 readAmt = Math.Round(detailList.Sum(k => k.Amt) * 0.13m, 2);//税额
//decimal amt = detailList.Sum(k => k.Amt);
//decimal txtAmt = Math.Round(detailList.Sum(k => k.Amt), 2);
List<tempAmt1> amtList = new List<tempAmt1>();
foreach (var itm in detailList)
{
amtList.Add(new tempAmt1()
{
Amt = itm.Amt,
Tax = Math.Round(itm.Amt * 0.13m, 2),
TaxAmt = itm.Amt + Math.Round(itm.Amt * 0.13m, 2)
});
}
decimal amt = amtList.Sum(k => k.Amt);//金额
decimal txtAmt = amtList.Sum(k => k.TaxAmt);//税后金额
decimal readAmt = amtList.Sum(k => k.Tax);//税额
//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 readAmt = Math.Round(detailList.Sum(k => k.Amt) * 0.13m, 2);//税额
var contractList = ls.Select(p => p.ContractDocID).Distinct();
var _groupList = dtos.Where(p => contractList.Contains(p.ContractDocID)).GroupBy(p => new { p.GroupNum })
.Select(p => new { GroupNum = p.Key.GroupNum, Amt = p.Sum(itm => itm.Amt) }).Distinct();
//var _groupList = dtos.GroupBy(p => new { p.GroupNum })
// .Select(p => new { GroupNum = p.Key.GroupNum, Amt = p.Sum(itm => itm.Amt) }).Distinct();
List<INVOICE_MAP_GROUP> group1 = new List<INVOICE_MAP_GROUP>();
foreach (var en in _groupList)
@ -1317,13 +1338,16 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
ContactDocID = itm.Key.ContractDocID,
Price = itm.Key.Price,
Amt = Math.Round(itm.Sum(k => k.Qty) * itm.Key.Price, 2),
Tax = Math.Round(Math.Round(itm.Sum(k => k.Qty) * itm.Key.Price, 2) * 0.13m, 2),//税
TaxAmt = Math.Round(Math.Round(itm.Sum(k => k.Qty) * itm.Key.Price, 2) * 0.13m, 2) + Math.Round(itm.Sum(k => k.Qty) * itm.Key.Price, 2),//税后进
Qty = itm.Sum(k => k.Qty),
BeginDate = itm.Key.BeginDate,
EndDate = itm.Key.EndDate
}).ToList();
decimal amt = detailDtos.Sum(k => k.Amt);//金额
decimal txtAmt = detailDtos.Sum(k => k.Amt) + Math.Round(detailDtos.Sum(k => k.Amt) * 0.13m, 2);//税后金额
decimal realAmt = Math.Round(detailDtos.Sum(k => k.Amt) * 0.13m, 2);//税额
decimal txtAmt = detailDtos.Sum(k => k.TaxAmt);//税后金额
decimal realAmt = detailDtos.Sum(k => k.Tax);//税额
var mapList = new List<INVOICE_MAP_GROUP>();
foreach (var groupnum in ls)
@ -1770,9 +1794,21 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
}
}
}
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 realAmt = Math.Round(detailList.Sum(k => k.Amt) * 0.13m, 2);//税额
List<tempAmt1> templs = new List<tempAmt1>();
foreach (var itm in _entityDetailList)
{
templs.Add(new tempAmt1()
{
Amt = itm.Amt,
Tax = Math.Round(itm.Amt * 0.13m, 2),
TaxAmt = itm.Amt + Math.Round(itm.Amt * 0.13m, 2)
});
}
decimal amt = templs.Sum(k => k.Amt);//金额
decimal txtAmt = templs.Sum(k => k.TaxAmt);//税后金额
decimal realAmt = templs.Sum(k => k.Tax);
var invbill = new INVOICE_GRP
(guid: GuidGenerator.Create(),
realnvBillNum: string.Empty,
@ -1918,14 +1954,16 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
ContactDocID = itm.Key.ContractDocID,
Price = itm.Key.Price,
Amt = Math.Round(itm.Sum(k => k.Qty) * itm.Key.Price, 2),
Tax = Math.Round(Math.Round(itm.Sum(k => k.Qty) * itm.Key.Price, 2) * 0.13m, 2),//税
TaxAmt = Math.Round(Math.Round(itm.Sum(k => k.Qty) * itm.Key.Price, 2) * 0.13m, 2) + Math.Round(itm.Sum(k => k.Qty) * itm.Key.Price, 2),//税后进
Qty = itm.Sum(k => k.Qty),
BeginDate = itm.Key.BeginDate,
EndDate = itm.Key.EndDate
})
.ToList();
decimal amt = detailDtos.Sum(k => k.Amt);//金额
decimal txtAmt = detailDtos.Sum(k => k.Amt) + Math.Round(detailDtos.Sum(k => k.Amt) * 0.13m, 2);//税后金额
decimal realAmt = Math.Round(detailDtos.Sum(k => k.Amt) * 0.13m, 2);//税额
decimal txtAmt = detailDtos.Sum(k => k.TaxAmt) ;//税后金额
decimal realAmt = detailDtos.Sum(k => k.Tax);//税额
var mapList = new List<INVOICE_MAP_GROUP>();
foreach (var groupnum in ls)
{
@ -2212,7 +2250,9 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
LU = itm.Key.PartCode,
ContactDocID = itm.Key.ContractDocID,
Price = itm.Key.Price,
Amt = Math.Round(itm.Sum(k => k.Qty) * itm.Key.Price, 2),
Amt = Math.Round(itm.Sum(k => k.Qty) * itm.Key.Price, 2),//税前
Tax = Math.Round(Math.Round(itm.Sum(k => k.Qty) * itm.Key.Price, 2) * 0.13m, 2),//税
TaxAmt = Math.Round(Math.Round(itm.Sum(k => k.Qty) * itm.Key.Price, 2) * 0.13m, 2) + Math.Round(itm.Sum(k => k.Qty) * itm.Key.Price, 2),//税后
Qty = itm.Sum(k => k.Qty),
BeginDate = itm.Key.BeginDate,
EndDate = itm.Key.EndDate
@ -2254,8 +2294,8 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
};
decimal amt = detailDtos.Sum(k => k.Amt);//金额
decimal txtAmt = detailDtos.Sum(k => k.Amt) + Math.Round(detailDtos.Sum(k => k.Amt) * 0.13m, 2);//税后金额
decimal readAmt = Math.Round(detailDtos.Sum(k => k.Amt) * 0.13m, 2);//税额
decimal txtAmt = detailDtos.Sum(k => k.TaxAmt);//税后金额
decimal realAmt = detailDtos.Sum(k => k.Tax);//税额
var mapList = new List<INVOICE_MAP_GROUP>();
foreach (var groupnum in ls)
@ -2323,12 +2363,12 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
invGroupNum: p_InvGroupNum,
state: SettleBillState.,
invoiceBillState: InvoiceBillState.,
tax: 0.13m,
parent: !string.IsNullOrEmpty(p_parentInvBillNum) ? p_parentInvBillNum : string.Empty,
preTaxDiff: 0,
tax: 0.13m,
parent: !string.IsNullOrEmpty(p_parentInvBillNum) ? p_parentInvBillNum : string.Empty,
preTaxDiff: 0,
taxDiff: 0,
clientCode: string.Empty,
realAmt: readAmt
realAmt: realAmt
);
invbill.Site = "1049";
invbill.CreationTime = DateTime.Now;

Loading…
Cancel
Save