|
@ -301,153 +301,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//[HttpPost]
|
|
|
|
|
|
//[UnitOfWork(false)]
|
|
|
|
|
|
///// <summary>
|
|
|
|
|
|
///// 发票重开列表
|
|
|
|
|
|
///// </summary>
|
|
|
|
|
|
///// <param name="input"></param>
|
|
|
|
|
|
///// <returns></returns>
|
|
|
|
|
|
//public virtual async Task<IActionResult> ReissueInvoiceList(List<PUB_ADJ_DETAIL_DTO> p_list)
|
|
|
|
|
|
//{
|
|
|
|
|
|
|
|
|
|
|
|
// var result = await _adjservice.CheckImport(p_list);
|
|
|
|
|
|
// if (result != "OK")
|
|
|
|
|
|
// {
|
|
|
|
|
|
// return new JsonResult(new { Code = 400, Message = "请下载错误模版", fileName = result });
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
// var invBilllist = new List<INVOICE_WAIT_DETAIL_DTO>();
|
|
|
|
|
|
// var adjlist = ObjectMapper.Map<List<PUB_ADJ_DETAIL_DTO>, List<PUB_ADJ_DETAIL>>(p_list);
|
|
|
|
|
|
// if (adjlist == null && adjlist.Count == 0)
|
|
|
|
|
|
// {
|
|
|
|
|
|
// throw new UserFriendlyException($"调整表无数据!");
|
|
|
|
|
|
// }
|
|
|
|
|
|
// var first = p_list.FirstOrDefault();
|
|
|
|
|
|
// var invbillnum = first.InvBillNum;
|
|
|
|
|
|
// //var mappingList = await GetMapGroupAsync(invbillnum);//发票对应结算分组
|
|
|
|
|
|
// //if (mappingList != null && mappingList.Count() > 0)
|
|
|
|
|
|
// //{
|
|
|
|
|
|
// var version = int.Parse(DateTime.Now.ToString("yyyymm"));
|
|
|
|
|
|
// //var gList = mappingList.Select(p => p.SettleGroupNum).ToList();//获取发票所有结算分组
|
|
|
|
|
|
// var inv = await GetInvoiceGroupByInvBillNum(invbillnum);
|
|
|
|
|
|
|
|
|
|
|
|
// var settle = await _bbacMng.GetMainAsync(inv.InvGroupNum);
|
|
|
|
|
|
|
|
|
|
|
|
// if (settle == null)
|
|
|
|
|
|
// {
|
|
|
|
|
|
// throw new UserFriendlyException($"选择发票:{invbillnum}对应的可结算单不在请检查!");
|
|
|
|
|
|
// }
|
|
|
|
|
|
// version = settle.Version;
|
|
|
|
|
|
// if (inv != null)
|
|
|
|
|
|
// {
|
|
|
|
|
|
// if (inv.InvoiceState == InvoiceBillState.报废)
|
|
|
|
|
|
// {
|
|
|
|
|
|
// throw new UserFriendlyException($"选择发票:{invbillnum}状态为报废状态不能重开!");
|
|
|
|
|
|
// }
|
|
|
|
|
|
// if (inv.State == SettleBillState.商务已审核 || inv.State == SettleBillState.已开票)
|
|
|
|
|
|
// {
|
|
|
|
|
|
// throw new UserFriendlyException($"选择发票:{invbillnum}状态在财务审核后可以报废重开,之前请退回重开!");
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
// var bbaclist = await _bbacMng.GetContainsAsync(inv.InvbillNum);//结算分组对应结算零件
|
|
|
|
|
|
// //var adjlist = await _adjRepository.Where(p => p.OldInvBillNum == inv.InvbillNum).ToListAsync();//调整表明细
|
|
|
|
|
|
// if (adjlist != null && adjlist.Count() > 0)
|
|
|
|
|
|
// {
|
|
|
|
|
|
// foreach (var itm in adjlist)
|
|
|
|
|
|
// {
|
|
|
|
|
|
// bbaclist.Add(new BBAC_CAN_SA_DETAIL(
|
|
|
|
|
|
// guid: itm.Id,
|
|
|
|
|
|
// keyCode: itm.KeyCode,
|
|
|
|
|
|
// version: itm.Version,
|
|
|
|
|
|
// billNum: itm.InvGroupNum,
|
|
|
|
|
|
// settleBillNum: itm.SettleBillNum,
|
|
|
|
|
|
// lU: itm.LU,
|
|
|
|
|
|
// pN: itm.PN,
|
|
|
|
|
|
// site: itm.Site,
|
|
|
|
|
|
// qty: itm.Qty,
|
|
|
|
|
|
// price: itm.Price,
|
|
|
|
|
|
// category: itm.BusinessType,
|
|
|
|
|
|
// isReturn: itm.Qty > 0 ? false : true,
|
|
|
|
|
|
// settleDate: itm.SettleDate,
|
|
|
|
|
|
// groupNum: itm.GroupNum,
|
|
|
|
|
|
// invGroupNum: itm.InvGroupNum,
|
|
|
|
|
|
// contactid: itm.Extend1,//生产号
|
|
|
|
|
|
// invbillnum: string.Empty,
|
|
|
|
|
|
// partcode: itm.PartCode
|
|
|
|
|
|
// ));
|
|
|
|
|
|
// }
|
|
|
|
|
|
// }
|
|
|
|
|
|
// var entitys = bbaclist;//合并库存调整单和就发票可结算明细数据
|
|
|
|
|
|
// var gNumList = entitys.Select(p => p.GroupNum).Distinct().ToList();
|
|
|
|
|
|
// var priceList = _priceRepository.ToList();//价格单
|
|
|
|
|
|
|
|
|
|
|
|
// var dto1s = ObjectMapper.Map<List<BBAC_CAN_SA_DETAIL>, List<BBAC_CAN_SA_DETAIL_DTO>>(entitys);
|
|
|
|
|
|
// var q = from d in dto1s
|
|
|
|
|
|
// 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//客户零件号
|
|
|
|
|
|
// select new TEMP_CAN_SA_DETAIL
|
|
|
|
|
|
// {
|
|
|
|
|
|
// Id = d.Id,
|
|
|
|
|
|
// SettleBillNum = d.SettleBillNum,
|
|
|
|
|
|
// Site = d.Site,
|
|
|
|
|
|
// Version = d.Version,
|
|
|
|
|
|
// Price = p.Price,
|
|
|
|
|
|
// BillNum = d.BillNum,
|
|
|
|
|
|
// SettleDate = d.SettleDate,
|
|
|
|
|
|
// InvGroupNum = d.InvGroupNum,
|
|
|
|
|
|
// LU = d.LU,
|
|
|
|
|
|
// MaterialDesc = d.MaterialDesc,
|
|
|
|
|
|
// PN = d.PN,
|
|
|
|
|
|
// Qty = d.Qty,
|
|
|
|
|
|
// GroupNum = d.GroupNum,
|
|
|
|
|
|
// Amt = Math.Round(d.Qty * p.Price, 2),
|
|
|
|
|
|
// ContractDocID = d.ContractDocID,
|
|
|
|
|
|
// BeginDate = p.BeginTime,
|
|
|
|
|
|
// EndDate = p.EndTime,
|
|
|
|
|
|
// PartCode = d.PartCode
|
|
|
|
|
|
|
|
|
|
|
|
// };
|
|
|
|
|
|
// var dtos = q.ToList();
|
|
|
|
|
|
// if (dtos != null && dtos.Count > 0)
|
|
|
|
|
|
// {
|
|
|
|
|
|
// if (invbillnum.Substring(0, 3) == "INV")//一次开票重开
|
|
|
|
|
|
// {
|
|
|
|
|
|
// var entities = await ReissueFirstInvoiceExtend(bbaclist, adjlist, dtos, version, invbillnum);
|
|
|
|
|
|
// var ls = ObjectMapper.Map<List<INVOICE_WAIT_DETAIL>, List<INVOICE_WAIT_DETAIL_DTO>>(entities);
|
|
|
|
|
|
// invBilllist.AddRange(ls);
|
|
|
|
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
// else//二次开票
|
|
|
|
|
|
// {
|
|
|
|
|
|
// var entities = await ReissueSecInvoiceExtend(bbaclist, adjlist, dtos, version, invbillnum);
|
|
|
|
|
|
// var ls = ObjectMapper.Map<List<INVOICE_WAIT_DETAIL>, List<INVOICE_WAIT_DETAIL_DTO>>(entities);
|
|
|
|
|
|
// invBilllist.AddRange(ls);
|
|
|
|
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
// else
|
|
|
|
|
|
// {
|
|
|
|
|
|
// throw new UserFriendlyException($"不存发票号为:{invbillnum}发票");
|
|
|
|
|
|
// }
|
|
|
|
|
|
// }
|
|
|
|
|
|
// var invlist = invBilllist.OrderBy(p => p.PartCode);
|
|
|
|
|
|
// return new JsonResult(new { Code = 200, Data = invlist });
|
|
|
|
|
|
|
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[HttpPost] |
|
|
[HttpPost] |
|
|
/// 发票重开列表
|
|
|
/// 发票重开列表
|
|
|
/// </summary>
|
|
|
/// </summary>
|
|
@ -569,52 +422,14 @@ namespace Win.Sfs.SettleAccount.Entities.BQ |
|
|
{ |
|
|
{ |
|
|
var entities = await ReissueFirstInvoiceExtend(bbaclist, adjlist, dtos, version, invbillnum); |
|
|
var entities = await ReissueFirstInvoiceExtend(bbaclist, adjlist, dtos, version, invbillnum); |
|
|
var ls = ObjectMapper.Map<List<INVOICE_WAIT_DETAIL>, List<INVOICE_WAIT_DETAIL_DTO>>(entities); |
|
|
var ls = ObjectMapper.Map<List<INVOICE_WAIT_DETAIL>, List<INVOICE_WAIT_DETAIL_DTO>>(entities); |
|
|
|
|
|
|
|
|
invBilllist.AddRange(ls); |
|
|
invBilllist.AddRange(ls); |
|
|
//var invlist = ls.Select(p => p.InvbillNum).Distinct();
|
|
|
|
|
|
//foreach (var itm in invlist)
|
|
|
|
|
|
//{
|
|
|
|
|
|
// var invBill = new INVOICE_REPEAT_DTO();
|
|
|
|
|
|
// var invls = ls.Where(p => p.InvbillNum == itm).ToList();
|
|
|
|
|
|
// var entitylist = entities.Where(p => p.InvbillNum == itm).ToList();
|
|
|
|
|
|
// var tax = inv.Tax;//税率
|
|
|
|
|
|
// var amt = entitylist.Sum(p => p.Amt);//税前
|
|
|
|
|
|
// var taxamt = amt + Math.Round(amt * tax, 2);//税后
|
|
|
|
|
|
// var realamt = Math.Round(amt * tax, 2);//税额
|
|
|
|
|
|
// invBill.Amt = amt;
|
|
|
|
|
|
// invBill.TaxAmt = taxamt;
|
|
|
|
|
|
// invBill.Tax = tax;
|
|
|
|
|
|
// invBill.BusinessType = inv.BusinessType;
|
|
|
|
|
|
// invBill.DETAIL = invls;
|
|
|
|
|
|
// invBill.RealAmt = realamt;
|
|
|
|
|
|
// invBilllist.Add(invBill);
|
|
|
|
|
|
//}
|
|
|
|
|
|
} |
|
|
} |
|
|
else//二次开票
|
|
|
else//二次开票
|
|
|
{ |
|
|
{ |
|
|
var entities = await ReissueSecInvoiceExtend(bbaclist, adjlist, dtos, version, invbillnum); |
|
|
var entities = await ReissueSecInvoiceExtend(bbaclist, adjlist, dtos, version, invbillnum); |
|
|
var ls = ObjectMapper.Map<List<INVOICE_WAIT_DETAIL>, List<INVOICE_WAIT_DETAIL_DTO>>(entities); |
|
|
var ls = ObjectMapper.Map<List<INVOICE_WAIT_DETAIL>, List<INVOICE_WAIT_DETAIL_DTO>>(entities); |
|
|
invBilllist.AddRange(ls); |
|
|
invBilllist.AddRange(ls); |
|
|
|
|
|
|
|
|
//var invlist = ls.Select(p => p.InvbillNum).Distinct();
|
|
|
|
|
|
//foreach (var itm in invlist)
|
|
|
|
|
|
//{
|
|
|
|
|
|
// var invBill = new INVOICE_REPEAT_DTO();
|
|
|
|
|
|
// var invls = ls.Where(p => p.InvbillNum == itm).ToList();
|
|
|
|
|
|
// var entitylist = entities.Where(p => p.InvbillNum == itm).ToList();
|
|
|
|
|
|
// var tax = inv.Tax;//税率
|
|
|
|
|
|
// var amt = entitylist.Sum(p => p.Amt);//税前
|
|
|
|
|
|
// var taxamt = amt + Math.Round(amt * tax, 2);//税后
|
|
|
|
|
|
// var realamt = Math.Round(amt * tax, 2);//税额
|
|
|
|
|
|
// invBill.Amt = amt;
|
|
|
|
|
|
// invBill.TaxAmt = taxamt;
|
|
|
|
|
|
// invBill.Tax = tax;
|
|
|
|
|
|
// invBill.BusinessType = inv.BusinessType;
|
|
|
|
|
|
// invBill.DETAIL = invls;
|
|
|
|
|
|
// invBill.RealAmt = realamt;
|
|
|
|
|
|
// invBilllist.Add(invBill);
|
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
@ -762,7 +577,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ |
|
|
var invBill = new INVOICE_REPEAT_DTO(); |
|
|
var invBill = new INVOICE_REPEAT_DTO(); |
|
|
var invls = ls.Where(p => p.InvbillNum == itm).ToList(); |
|
|
var invls = ls.Where(p => p.InvbillNum == itm).ToList(); |
|
|
var entitylist = entities.Where(p => p.InvbillNum == itm).ToList(); |
|
|
var entitylist = entities.Where(p => p.InvbillNum == itm).ToList(); |
|
|
var tax = inv.Tax;//税率
|
|
|
var tax = inv.Tax == 0 ? 0.13m : inv.Tax;//税率
|
|
|
var amt = entitylist.Sum(p => p.Amt);//税前
|
|
|
var amt = entitylist.Sum(p => p.Amt);//税前
|
|
|
var taxamt = amt + Math.Round(amt * tax, 2);//税后
|
|
|
var taxamt = amt + Math.Round(amt * tax, 2);//税后
|
|
|
var realamt = Math.Round(amt * tax, 2);//税额
|
|
|
var realamt = Math.Round(amt * tax, 2);//税额
|
|
@ -785,7 +600,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ |
|
|
var invBill = new INVOICE_REPEAT_DTO(); |
|
|
var invBill = new INVOICE_REPEAT_DTO(); |
|
|
var invls = ls.Where(p => p.InvbillNum == itm).ToList(); |
|
|
var invls = ls.Where(p => p.InvbillNum == itm).ToList(); |
|
|
var entitylist = entities.Where(p => p.InvbillNum == itm).ToList(); |
|
|
var entitylist = entities.Where(p => p.InvbillNum == itm).ToList(); |
|
|
var tax = inv.Tax;//税率
|
|
|
var tax = inv.Tax == 0 ? 0.13m : inv.Tax;//税率
|
|
|
var amt = entitylist.Sum(p => p.Amt);//税前
|
|
|
var amt = entitylist.Sum(p => p.Amt);//税前
|
|
|
var taxamt = amt + Math.Round(amt * tax, 2);//税后
|
|
|
var taxamt = amt + Math.Round(amt * tax, 2);//税后
|
|
|
var realamt = Math.Round(amt * tax, 2);//税额
|
|
|
var realamt = Math.Round(amt * tax, 2);//税额
|
|
|