...
This commit is contained in:
@@ -31,7 +31,7 @@ namespace Back.Controllers
|
||||
private readonly WarehouseService _warehouseService;
|
||||
private readonly ReceiptService _receiptService;
|
||||
|
||||
public InvoiceController(IConfiguration configuration, servInvoice servInvoice, servUser servUser, AddOrUpdateInvoiceValidation validationInvoice, servTaxPayer servTaxPayer, servReport servReport, IAsyncRepository<rptQueue> rptQueueRepository, RemittanceService remittanceService, WarehouseService warehouseService)
|
||||
public InvoiceController(IConfiguration configuration, servInvoice servInvoice, servUser servUser, AddOrUpdateInvoiceValidation validationInvoice, servTaxPayer servTaxPayer, servReport servReport, IAsyncRepository<rptQueue> rptQueueRepository, RemittanceService remittanceService, WarehouseService warehouseService, ReceiptService receiptService)
|
||||
{
|
||||
_configuration = configuration;
|
||||
_servInvoice = servInvoice;
|
||||
@@ -42,6 +42,7 @@ namespace Back.Controllers
|
||||
_rptQueueRepository = rptQueueRepository;
|
||||
_remittanceService = remittanceService;
|
||||
_warehouseService = warehouseService;
|
||||
_receiptService = receiptService;
|
||||
}
|
||||
|
||||
[HttpPost("GetAll")]
|
||||
@@ -233,7 +234,41 @@ namespace Back.Controllers
|
||||
//{
|
||||
// return BadRequest(new List<string> { $"صورتحساب در حالت {invoice.invoiceType.GetEnumDisplayName()} نمی تواند ویرایش شود" });
|
||||
//}
|
||||
if (invoice.invoiceType!=InvoiceType.Cancellation)
|
||||
{
|
||||
bool InvoiceHasaRemittanceBillReference = invoice.BillReference.HasValue && await _remittanceService.HasaRemittance(invoice.BillReference.Value);
|
||||
foreach (var item in invoice.invoiceDetails)
|
||||
{
|
||||
if (await _remittanceService.HasaRemittance(invoice.ID, item.CODID))
|
||||
{
|
||||
await _receiptService.ADD(new Shared.DTOs.Warehouse.ReceiptDto()
|
||||
{
|
||||
CODID = item.CODID,
|
||||
Count = item.am.GetValueOrDefault(),
|
||||
Date = DateTime.Now.ConvertMiladiToShamsi(),
|
||||
ForSale = true,
|
||||
InvoiceID = item.InvoiceID,
|
||||
Type = TypeReceipt.Shopping,
|
||||
info = $"حذف صورتحساب {item.InvoiceID}",
|
||||
|
||||
}, user.RolUsers.First().CompanyID, true);
|
||||
|
||||
//if (invoice.BillReference.HasValue && InvoiceHasaRemittanceBillReference)
|
||||
//{
|
||||
// await _remittanceService.ADD(new Shared.DTOs.Warehouse.RemittanceDto()
|
||||
// {
|
||||
// CODID = item.CODID,
|
||||
// Count = item.am.GetValueOrDefault(),
|
||||
// Date = DateTime.Now.ConvertMiladiToShamsi(),
|
||||
// InvoiceID = invoice.BillReference.Value,
|
||||
// Type = TypeRemittance.Sale,
|
||||
// info = $"حواله خودکار از صورتحساب {invoice.BillReference.Value}",
|
||||
// });
|
||||
//}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
invoice.LastChangeUserID = Convert.ToInt32(UserID);
|
||||
//----Update and sendResult
|
||||
return Ok(await _servInvoice.DeleteInvoice(invoice));
|
||||
@@ -359,7 +394,29 @@ namespace Back.Controllers
|
||||
foreach (var item in Invoice.invoiceDetails)
|
||||
{
|
||||
if (await _remittanceService.HasaRemittance(Invoice.ID, item.CODID))
|
||||
await _remittanceService.ChangeRemittance(Invoice.ID, item.CODID, result);
|
||||
{
|
||||
await _remittanceService.DeleteByCODIDAndInvoiceID(Invoice.ID,item.CODID, user.RolUsers.First().CompanyID);
|
||||
//await _receiptService.ADD(new Shared.DTOs.Warehouse.ReceiptDto()
|
||||
//{
|
||||
// CODID = item.CODID,
|
||||
// Count = item.am.GetValueOrDefault(),
|
||||
// Date = DateTime.Now.ConvertMiladiToShamsi(),
|
||||
// ForSale = true,
|
||||
// InvoiceID = item.InvoiceID,
|
||||
// Type = TypeReceipt.Shopping,
|
||||
// info = $"رسید خودکار: صورتحساب {item.InvoiceID} از {Invoice.invoiceType.GetEnumDisplayName()} به {((InvoiceType)invoiceType).GetEnumDisplayName()}",
|
||||
|
||||
//}, user.RolUsers.First().CompanyID, true);
|
||||
await _remittanceService.ADD(new Shared.DTOs.Warehouse.RemittanceDto()
|
||||
{
|
||||
CODID = item.CODID,
|
||||
Count = item.am.GetValueOrDefault(),
|
||||
Date = DateTime.Now.ConvertMiladiToShamsi(),
|
||||
InvoiceID = result,
|
||||
Type = TypeRemittance.Sale,
|
||||
info = $"حواله خودکار: از صورتحساب {result}"
|
||||
});
|
||||
}
|
||||
}
|
||||
return Ok(await _servInvoice.GetInvoice(user.RolUsers.First().CompanyID, result));
|
||||
}
|
||||
@@ -434,7 +491,29 @@ namespace Back.Controllers
|
||||
foreach (var item in Invoice.invoiceDetails)
|
||||
{
|
||||
if (await _remittanceService.HasaRemittance(Invoice.ID, item.CODID))
|
||||
await _remittanceService.ChangeRemittance(Invoice.ID, item.CODID, result1);
|
||||
{
|
||||
await _remittanceService.DeleteByCODIDAndInvoiceID(Invoice.ID, item.CODID, user.RolUsers.First().CompanyID);
|
||||
//await _receiptService.ADD(new Shared.DTOs.Warehouse.ReceiptDto()
|
||||
//{
|
||||
// CODID = item.CODID,
|
||||
// Count = item.am.GetValueOrDefault(),
|
||||
// Date = DateTime.Now.ConvertMiladiToShamsi(),
|
||||
// ForSale = true,
|
||||
// InvoiceID = item.InvoiceID,
|
||||
// Type = TypeReceipt.Shopping,
|
||||
// info = $"رسید خودکار: صورتحساب {item.InvoiceID} از {Invoice.invoiceType.GetEnumDisplayName()} به {((InvoiceType)invoiceType).GetEnumDisplayName()}",
|
||||
|
||||
//}, user.RolUsers.First().CompanyID, true);
|
||||
await _remittanceService.ADD(new Shared.DTOs.Warehouse.RemittanceDto()
|
||||
{
|
||||
CODID = item.CODID,
|
||||
Count = item.am.GetValueOrDefault(),
|
||||
Date = DateTime.Now.ConvertMiladiToShamsi(),
|
||||
InvoiceID = result1,
|
||||
Type = TypeRemittance.Sale,
|
||||
info = $"حواله خودکار: از صورتحساب {result1}"
|
||||
});
|
||||
}
|
||||
}
|
||||
return Ok(await _servInvoice.GetInvoice(user.RolUsers.First().CompanyID, result1));
|
||||
}
|
||||
@@ -537,7 +616,29 @@ namespace Back.Controllers
|
||||
foreach (var item in Invoice.invoiceDetails)
|
||||
{
|
||||
if (await _remittanceService.HasaRemittance(Invoice.ID, item.CODID))
|
||||
await _remittanceService.ChangeRemittance(Invoice.ID, item.CODID, result2);
|
||||
{
|
||||
await _remittanceService.DeleteByCODIDAndInvoiceID(Invoice.ID, item.CODID, user.RolUsers.First().CompanyID);
|
||||
//await _receiptService.ADD(new Shared.DTOs.Warehouse.ReceiptDto()
|
||||
//{
|
||||
// CODID = item.CODID,
|
||||
// Count = item.am.GetValueOrDefault(),
|
||||
// Date = DateTime.Now.ConvertMiladiToShamsi(),
|
||||
// ForSale = true,
|
||||
// InvoiceID = item.InvoiceID,
|
||||
// Type = TypeReceipt.Shopping,
|
||||
// info = $"رسید خودکار: صورتحساب {item.InvoiceID} از {Invoice.invoiceType.GetEnumDisplayName()} به {((InvoiceType)invoiceType).GetEnumDisplayName()}",
|
||||
|
||||
//}, user.RolUsers.First().CompanyID, true);
|
||||
await _remittanceService.ADD(new Shared.DTOs.Warehouse.RemittanceDto()
|
||||
{
|
||||
CODID = item.CODID,
|
||||
Count = item.am.GetValueOrDefault(),
|
||||
Date = DateTime.Now.ConvertMiladiToShamsi(),
|
||||
InvoiceID = result2,
|
||||
Type = TypeRemittance.Sale,
|
||||
info = $"حواله خودکار: از صورتحساب {result2}"
|
||||
});
|
||||
}
|
||||
}
|
||||
return Ok(await _servInvoice.GetInvoice(user.RolUsers.First().CompanyID, result2));
|
||||
}
|
||||
@@ -709,6 +810,11 @@ namespace Back.Controllers
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
if (_servInvoice.checkFatherInvoiceByInvoiceID(user.RolUsers.First().CompanyID, InvoiceID).Result)
|
||||
return BadRequest(new List<string> {"این صورتحساب، مرجع چند صورتحساب دیگر می باشد " +'\n'+'\r'+
|
||||
"نمیتواند برای این صورتحساب حواله صادر کنید، ابتدا صورتحساب هایی که ارتباط دارند را حذف کنید" });
|
||||
|
||||
List<string> errors = new List<string>();
|
||||
var result = await _servInvoice.GetInvoice(user.RolUsers.First().CompanyID, InvoiceID);
|
||||
if (result.invoiceType == InvoiceType.Bidding || result.invoiceType == InvoiceType.Cancellation)
|
||||
@@ -720,9 +826,9 @@ namespace Back.Controllers
|
||||
.GroupBy(i => i.CODID).Select(g => new { CODID = g.Key, TotalAm = g.Sum(i => i.am) }))
|
||||
{
|
||||
var Inventory = await _warehouseService.Inventory(CompanyID.Value, item.CODID);
|
||||
if (Inventory - item.TotalAm <= 0)
|
||||
if (Inventory - item.TotalAm < 0)
|
||||
{
|
||||
errors.Add($"موجودی کالا {item.CODID} کمتر از درخواست شماست");
|
||||
errors.Add($"موجودی کالا {result.items.First(w => w.CODID == item.CODID).sstt} کمتر از درخواست شماست");
|
||||
}
|
||||
}
|
||||
if (errors.Count == 0)
|
||||
@@ -751,6 +857,28 @@ namespace Back.Controllers
|
||||
|
||||
|
||||
|
||||
}
|
||||
[HttpPost("FreeRemittance/{InvoiceID}")]
|
||||
public async Task<ActionResult> FreeRemittance(int InvoiceID)
|
||||
{
|
||||
//-----GetUserAndCompany
|
||||
var claim = HttpContext.User.Claims.First(c => c.Type == "UserID");
|
||||
var UserID = claim.Value;
|
||||
var user = await _servUser.GetUserByUserID(Convert.ToInt32(UserID));
|
||||
|
||||
var CompanyID = user?.RolUsers.First().CompanyID;
|
||||
|
||||
if (!await _servInvoice.ExistInvoiceByInvoiceID(CompanyID.Value, InvoiceID))
|
||||
return NotFound();
|
||||
|
||||
|
||||
await _receiptService.DeleteByInvoiceID(InvoiceID, CompanyID.Value);
|
||||
await _remittanceService.DeleteByInvoiceID(InvoiceID, CompanyID.Value);
|
||||
|
||||
return Ok();
|
||||
//return BadRequest(new List<string>() { $"حواله ای یافت نشد" });
|
||||
|
||||
|
||||
}
|
||||
[HttpGet("HasaRemittance/{InvoiceID}")]
|
||||
public async Task<ActionResult> HasaRemittance(int InvoiceID)
|
||||
|
||||
Reference in New Issue
Block a user