This commit is contained in:
mustafa.juma 2025-11-18 22:45:49 +03:00
parent da50f5a8f7
commit 9496a74f1c
7 changed files with 42 additions and 9 deletions

Binary file not shown.

View File

@ -2255,10 +2255,10 @@ namespace OSS.Controllers
return RedirectToAction("Payment");
}
// If an additional invoice already exists, reuse it
// If an additional invoice already exists, reuse it (check for all Additional_Amount variants)
var existingInv = myContext.ApplicationManagers
.OrderByDescending(a => a.CreatedDate)
.FirstOrDefault(a => a.ProjectCode == code && a.ServiceName == "Additional_Amount");
.FirstOrDefault(a => a.ProjectCode == code );
if (existingInv != null)
{
@ -2273,21 +2273,54 @@ namespace OSS.Controllers
return View("Payment");
}
// Find the original application invoice to copy all details from (exclude all Additional_Amount variants)
var originalInvoice = myContext.ApplicationManagers
.Where(a => a.ProjectCode == code &&
a.ServiceName != "Additional_Amount" &&
a.ServiceName != "Additional_Amount_New" &&
a.ServiceName != "Additional_Amount_Expansion")
.OrderByDescending(a => a.CreatedDate)
.FirstOrDefault();
var applicant = myContext.InvestorExternl.FirstOrDefault(x => x.CompanyEmail == username);
// Determine ServiceName based on original invoice (New or Expansion)
string serviceNameForAdditional = "Additional_Amount";
if (originalInvoice != null && !string.IsNullOrWhiteSpace(originalInvoice.ServiceName))
{
var originalService = originalInvoice.ServiceName.Trim();
if (originalService.IndexOf("new", StringComparison.OrdinalIgnoreCase) >= 0 ||
originalService.Equals("New", StringComparison.OrdinalIgnoreCase))
{
serviceNameForAdditional = "Additional_Amount_New";
}
else if (originalService.IndexOf("expansion", StringComparison.OrdinalIgnoreCase) >= 0 ||
originalService.Equals("Expansion", StringComparison.OrdinalIgnoreCase))
{
serviceNameForAdditional = "Additional_Amount_Expansion";
}
}
// Create new invoice copying all details from original invoice, but with Additional_Amount service and amount
var inv = new ApplicationManager
{
ProjectCode = code,
ProjectName = project.ProjectName ?? string.Empty,
CompanyName = project.CompanyName ?? string.Empty,
ServiceName = "Additional_Amount",
MobileNo = applicant?.Mobile ?? string.Empty,
ProjectName = originalInvoice?.ProjectName ?? (project.ProjectName ?? string.Empty),
CompanyName = originalInvoice?.CompanyName ?? (project.CompanyName ?? string.Empty),
ServiceName = serviceNameForAdditional,
MobileNo = originalInvoice?.MobileNo ?? (applicant?.Mobile ?? string.Empty),
FullName = originalInvoice?.FullName ?? string.Empty,
CreatedDate = DateTime.Now,
CompanyTIN = (Session["CompanyTIN"] as string) ?? string.Empty,
CompanyTIN = originalInvoice?.CompanyTIN ?? (Session["CompanyTIN"] as string) ?? string.Empty,
CompanyEmail = username,
Currency = "TZS",
Station = "HQ",
Amount = addAmount
Station = originalInvoice?.Station ?? "HQ",
Amount = addAmount, // 2,000,000 TZS from tblService
StartDate = originalInvoice?.StartDate ?? DateTime.Now,
Expiredate = originalInvoice?.Expiredate ?? DateTime.Now.AddYears(1),
Comments = originalInvoice?.Comments ?? string.Empty,
EvaluationStatus = originalInvoice?.EvaluationStatus ?? string.Empty,
GePGComment = originalInvoice?.GePGComment ?? string.Empty
};
Session["Amount"] = addAmount.ToString("0");

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.