ExternalAccessCode

This commit is contained in:
mmrbnjd
2024-07-03 16:05:28 +03:30
parent e2cc7f61ee
commit 337b793e0b
8 changed files with 396 additions and 404 deletions

View File

@@ -40,14 +40,14 @@ namespace Back.Controllers
}
[HttpGet("Get/{ID}/{loaddelete}")]
public async Task<ActionResult<InvoiceDTO?>> GetAll(int ID,bool loaddelete)
public async Task<ActionResult<InvoiceDTO?>> GetAll(int ID, bool loaddelete)
{
var claim = HttpContext.User.Claims.First(c => c.Type == "UserID");
var UserID = claim.Value;
var user = await _servUser.GetUserByUserID(Convert.ToInt32(UserID));
var result = await _servInvoice.GetInvoice(user.RolUsers.First().CompanyID, ID,!loaddelete);
var result = await _servInvoice.GetInvoice(user.RolUsers.First().CompanyID, ID, !loaddelete);
return result==null ? BadRequest() : Ok(result);
return result == null ? BadRequest() : Ok(result);
}
[HttpPost("Add")]
@@ -64,7 +64,7 @@ namespace Back.Controllers
// return BadRequest(item);
//-----GetUserAndCompany
var claim = HttpContext.User.Claims.First(c => c.Type == "UserID");
var claim = HttpContext.User.Claims.First(c => c.Type == "UserID");
var UserID = claim.Value;
var user = await _servUser.GetUserByUserID(Convert.ToInt32(UserID));
@@ -97,7 +97,7 @@ namespace Back.Controllers
BillReference = null,
IsDeleted = false,
PatternID = item.PatternID,
setm=1
setm = 1
}));
@@ -182,7 +182,7 @@ namespace Back.Controllers
//----Check TaxPayer
if (await _servTaxPayer.ExistSuccessfulorSendorpendingInvoice(invoice))
return BadRequest(new List<string> { "این صورتحساب به سازمان ارسال شده"});
return BadRequest(new List<string> { "این صورتحساب به سازمان ارسال شده" });
//else if (invoice.invoiceType != InvoiceType.Bidding
// && invoice.invoiceType != InvoiceType.Sale)
//{
@@ -227,76 +227,76 @@ namespace Back.Controllers
{
//if (sent)
//{
switch (invoiceType)
{
//case 0:
// return Ok(await _servInvoice.ChangeInvoiceType(Invoice, InvoiceType.CANCEL));
switch (invoiceType)
{
//case 0:
// return Ok(await _servInvoice.ChangeInvoiceType(Invoice, InvoiceType.CANCEL));
case 3:
return Ok(await _servInvoice.ChangeInvoiceType(Invoice, InvoiceType.Cancellation));
case 3:
return Ok(await _servInvoice.ChangeInvoiceType(Invoice, InvoiceType.Cancellation));
case 2:
await _servInvoice.ChangeInvoiceType(Invoice, InvoiceType.Repair, false);
var result = await _servInvoice.AddInvoice(new Invoice()
case 2:
await _servInvoice.ChangeInvoiceType(Invoice, InvoiceType.Repair, false);
var result = await _servInvoice.AddInvoice(new Invoice()
{
Title = Invoice.Title,
Des = Invoice.Des,
invoiceType = InvoiceType.Repair,
CustomerID = Invoice.CustomerID,
CompanyID = Invoice.CompanyID,
InvoicIssueDate = Invoice.InvoicIssueDate.Replace("/", ""),
InvoiceDate = Invoice.InvoicIssueDate.Replace("/", ""),
LastChangeUserID = Convert.ToInt32(UserID),
BillReference = Invoice.ID,
IsDeleted = false,
PatternID = Invoice.PatternID,
setm = Invoice.setm,
invoiceDetails = Invoice.invoiceDetails.Select(s => new InvoiceItem
{
CODID = s.CODID,
am = s.am,
fee = s.fee,
dis = s.dis,
Title = Invoice.Title,
Des = Invoice.Des,
invoiceType = InvoiceType.Repair,
CustomerID = Invoice.CustomerID,
CompanyID = Invoice.CompanyID,
InvoicIssueDate = Invoice.InvoicIssueDate.Replace("/", ""),
InvoiceDate = Invoice.InvoicIssueDate.Replace("/", ""),
LastChangeUserID = Convert.ToInt32(UserID),
BillReference = Invoice.ID,
IsDeleted = false,
PatternID = Invoice.PatternID,
setm=Invoice.setm,
invoiceDetails=Invoice.invoiceDetails.Select(s=>new InvoiceItem
{
CODID=s.CODID,
am=s.am,
fee=s.fee,
dis=s.dis,
}).ToList()
}, false);
if (result > 0)
return Ok(await _servInvoice.GetInvoice(user.RolUsers.First().CompanyID,result));
break;
case 4:
await _servInvoice.ChangeInvoiceType(Invoice, InvoiceType.BackFrmSale, false);
var result1 = await _servInvoice.AddInvoice(new Invoice()
}).ToList()
}, false);
if (result > 0)
return Ok(await _servInvoice.GetInvoice(user.RolUsers.First().CompanyID, result));
break;
case 4:
await _servInvoice.ChangeInvoiceType(Invoice, InvoiceType.BackFrmSale, false);
var result1 = await _servInvoice.AddInvoice(new Invoice()
{
Title = Invoice.Title,
Des = Invoice.Des,
invoiceType = InvoiceType.BackFrmSale,
CustomerID = Invoice.CustomerID,
CompanyID = Invoice.CompanyID,
InvoicIssueDate = Invoice.InvoicIssueDate.Replace("/", ""),
InvoiceDate = Invoice.InvoicIssueDate.Replace("/", ""),
LastChangeUserID = Convert.ToInt32(UserID),
BillReference = Invoice.ID,
IsDeleted = false,
PatternID = Invoice.PatternID,
setm = Invoice.setm,
invoiceDetails = Invoice.invoiceDetails.Select(s => new InvoiceItem
{
CODID = s.CODID,
am = s.am,
fee = s.fee,
dis = s.dis,
Title = Invoice.Title,
Des = Invoice.Des,
invoiceType = InvoiceType.BackFrmSale,
CustomerID = Invoice.CustomerID,
CompanyID = Invoice.CompanyID,
InvoicIssueDate = Invoice.InvoicIssueDate.Replace("/", ""),
InvoiceDate = Invoice.InvoicIssueDate.Replace("/", ""),
LastChangeUserID = Convert.ToInt32(UserID),
BillReference = Invoice.ID,
IsDeleted = false,
PatternID = Invoice.PatternID,
setm = Invoice.setm,
invoiceDetails = Invoice.invoiceDetails.Select(s => new InvoiceItem
{
CODID = s.CODID,
am = s.am,
fee = s.fee,
dis = s.dis,
}).ToList()
}, false);
if (result1 > 0)
return Ok(await _servInvoice.GetInvoice(user.RolUsers.First().CompanyID, result1));
break;
}).ToList()
}, false);
if (result1 > 0)
return Ok(await _servInvoice.GetInvoice(user.RolUsers.First().CompanyID, result1));
break;
default:
return BadRequest(new List<string> { $"تغییر وضعیت از {Invoice.invoiceType.GetEnumDisplayName()} به {((InvoiceType)invoiceType).GetEnumDisplayName()} امکان پذیر نیست این صورتحساب به سامانه مودیان ارسال شده" });
}
default:
return BadRequest(new List<string> { $"تغییر وضعیت از {Invoice.invoiceType.GetEnumDisplayName()} به {((InvoiceType)invoiceType).GetEnumDisplayName()} امکان پذیر نیست این صورتحساب به سامانه مودیان ارسال شده" });
}
//}
//else
//{
@@ -344,62 +344,62 @@ namespace Back.Controllers
//}
//else
//{
switch (invoiceType)
{
case 3:
return Ok(await _servInvoice.ChangeInvoiceType(Invoice, InvoiceType.Cancellation));
switch (invoiceType)
{
case 3:
return Ok(await _servInvoice.ChangeInvoiceType(Invoice, InvoiceType.Cancellation));
case 4:
await _servInvoice.ChangeInvoiceType(Invoice, InvoiceType.BackFrmSale, false);
var result2 = await _servInvoice.AddInvoice(new Invoice()
case 4:
await _servInvoice.ChangeInvoiceType(Invoice, InvoiceType.BackFrmSale, false);
var result2 = await _servInvoice.AddInvoice(new Invoice()
{
Title = Invoice.Title,
Des = Invoice.Des,
invoiceType = InvoiceType.BackFrmSale,
CustomerID = Invoice.CustomerID,
CompanyID = Invoice.CompanyID,
InvoicIssueDate = Invoice.InvoicIssueDate.Replace("/", ""),
InvoiceDate = Invoice.InvoicIssueDate.Replace("/", ""),
LastChangeUserID = Convert.ToInt32(UserID),
BillReference = Invoice.ID,
IsDeleted = false,
PatternID = Invoice.PatternID,
setm = Invoice.setm,
invoiceDetails = Invoice.invoiceDetails.Select(s => new InvoiceItem
{
CODID = s.CODID,
am = s.am,
fee = s.fee,
dis = s.dis,
Title = Invoice.Title,
Des = Invoice.Des,
invoiceType = InvoiceType.BackFrmSale,
CustomerID = Invoice.CustomerID,
CompanyID = Invoice.CompanyID,
InvoicIssueDate = Invoice.InvoicIssueDate.Replace("/", ""),
InvoiceDate = Invoice.InvoicIssueDate.Replace("/", ""),
LastChangeUserID = Convert.ToInt32(UserID),
BillReference = Invoice.ID,
IsDeleted = false,
PatternID = Invoice.PatternID,
setm = Invoice.setm,
invoiceDetails =Invoice.invoiceDetails.Select(s => new InvoiceItem
{
CODID = s.CODID,
am = s.am,
fee = s.fee,
dis = s.dis,
}).ToList()
}, false);
if (result2 > 0)
return Ok(await _servInvoice.GetInvoice(user.RolUsers.First().CompanyID, result2));
break;
}).ToList()
}, false);
if (result2 > 0)
return Ok(await _servInvoice.GetInvoice(user.RolUsers.First().CompanyID, result2));
break;
default:
return BadRequest(new List<string> { $"تغییر وضعیت از {Invoice.invoiceType.GetEnumDisplayName()} به {((InvoiceType)invoiceType).GetEnumDisplayName()} امکان پذیر نیست این صورتحساب به سامانه مودیان ارسال شده" });
default:
return BadRequest(new List<string> { $"تغییر وضعیت از {Invoice.invoiceType.GetEnumDisplayName()} به {((InvoiceType)invoiceType).GetEnumDisplayName()} امکان پذیر نیست این صورتحساب به سامانه مودیان ارسال شده" });
}
}
//}
}
if (Invoice.invoiceType == InvoiceType.BackFrmSale)
{
// if (!sent)
// {
switch (invoiceType)
{
//case 0:
// return Ok(await _servInvoice.ChangeInvoiceType(Invoice, InvoiceType.CANCEL));
// if (!sent)
// {
switch (invoiceType)
{
//case 0:
// return Ok(await _servInvoice.ChangeInvoiceType(Invoice, InvoiceType.CANCEL));
case 3:
return Ok(await _servInvoice.ChangeInvoiceType(Invoice, InvoiceType.Cancellation));
default:
return BadRequest(new List<string> { $"تغییر وضعیت از {Invoice.invoiceType.GetEnumDisplayName()} به {((InvoiceType)invoiceType).GetEnumDisplayName()} امکان پذیر نیست" });
}
// }
case 3:
return Ok(await _servInvoice.ChangeInvoiceType(Invoice, InvoiceType.Cancellation));
default:
return BadRequest(new List<string> { $"تغییر وضعیت از {Invoice.invoiceType.GetEnumDisplayName()} به {((InvoiceType)invoiceType).GetEnumDisplayName()} امکان پذیر نیست" });
}
// }
//else
//{
// switch (invoiceType)
@@ -450,7 +450,7 @@ namespace Back.Controllers
var UserID = claim.Value;
var user = await _servUser.GetUserByUserID(Convert.ToInt32(UserID));
var CompanyID= user?.RolUsers.First().CompanyID;
var CompanyID = user?.RolUsers.First().CompanyID;
if (!await _servInvoice.ExistInvoiceByInvoiceID(CompanyID.Value, InvoiceID))
return NotFound();
@@ -463,7 +463,52 @@ namespace Back.Controllers
p.StartInfo.FileName = "C:\\CreateReport\\CreateReport.exe";
p.StartInfo.Arguments = $"{CompanyID} {InvoiceID}";
p.Start();
output = p.StandardOutput.ReadToEnd();
output = p.StandardOutput.ReadToEnd();
p.WaitForExit();
return Ok(output);
}
[HttpPut("SetExternalAccessCode/{InvoiceID}")]
public async Task<ActionResult<string>> SetExternalAccessCode(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 code = Convert.ToInt32(DateTime.Now.ToString($"yMMdd{InvoiceID}Hmmss{user.RolUsers.First().CompanyID}"));
Invoice? Invoice = await _servInvoice.GetInvoiceByInvoiceID(user.RolUsers.First().CompanyID, InvoiceID);
if (Invoice == null) return NotFound();
if (Invoice.ExternalAccessCode.HasValue)
return Ok(Invoice.ExternalAccessCode.Value.ToString());
Invoice.ExternalAccessCode = code;
if (await _servInvoice.UpdateInvoice(Invoice))
return Ok(code.ToString());
return BadRequest(new List<string> { "خطایی سرور" });
}
[HttpGet("GetReportByExternalAccessCode/{xternalAccessCode}")]
[AllowAnonymous]
public async Task<ActionResult<string>> GetReportByExternalAccessCode(int ExternalAccessCode)
{
if (ExternalAccessCode == null || ExternalAccessCode <= 0)
return NotFound();
string output = "";
var invoice = await _servInvoice.GetInvoiceByExternalAccessCode(ExternalAccessCode);
if (invoice == null)
return NotFound();
// Start the child process.
Process p = new Process();
// Redirect the output stream of the child process.
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = "C:\\CreateReport\\CreateReport.exe";
p.StartInfo.Arguments = $"{invoice.CompanyID} {invoice.ID}";
p.Start();
output = p.StandardOutput.ReadToEnd();
p.WaitForExit();
return Ok(output);
}