diff --git a/BackgroundInstitutionContract/BackgroundInstitutionContract.Task/Jobs/JobSchedulerRegistrator.cs b/BackgroundInstitutionContract/BackgroundInstitutionContract.Task/Jobs/JobSchedulerRegistrator.cs
index 70517f47..da463579 100644
--- a/BackgroundInstitutionContract/BackgroundInstitutionContract.Task/Jobs/JobSchedulerRegistrator.cs
+++ b/BackgroundInstitutionContract/BackgroundInstitutionContract.Task/Jobs/JobSchedulerRegistrator.cs
@@ -1,5 +1,6 @@
using _0_Framework.Application;
+using _0_Framework.Application.Enums;
using _0_Framework.Application.Sms;
using Company.Domain.ContarctingPartyAgg;
using Company.Domain.InstitutionContractAgg;
@@ -60,146 +61,146 @@ public class JobSchedulerRegistrator
// "*/1 * * * *" // هر 1 دقیقه یکبار چک کن
//);
- RecurringJob.AddOrUpdate(
- "InstitutionContract.SendWarningSms",
- () => SendWarningSms(),
- "*/1 * * * *" // هر 1 دقیقه یکبار چک کن
- );
-
//RecurringJob.AddOrUpdate(
- // "InstitutionContract.SendLegalActionSms",
- // () => SendLegalActionSms(),
+ // "InstitutionContract.SendWarningSms",
+ // () => SendWarningSms(),
// "*/1 * * * *" // هر 1 دقیقه یکبار چک کن
//);
+
+ RecurringJob.AddOrUpdate(
+ "InstitutionContract.SendLegalActionSms",
+ () => SendLegalActionSms(),
+ "*/1 * * * *" // هر 1 دقیقه یکبار چک کن
+ );
}
- ///
- /// ایجاد سند بدهی ماهیانه برای قراداد مالی
- ///
- ///
- [DisableConcurrentExecution(timeoutInSeconds: 1200)]
- public async System.Threading.Tasks.Task CreateFinancialTransaction()
- {
- var now =DateTime.Now;
- var endOfMonth = now.ToFarsi().FindeEndOfMonth();
- var endOfMonthGr = endOfMonth.ToGeorgianDateTime();
- _logger.LogInformation("CreateFinancialTransaction job run");
- if (now.Date == endOfMonthGr.Date && now.Hour >= 2 && now.Hour < 4 &&
- now.Date != _lastRunCreateTransaction?.Date)
- {
+ /////
+ ///// ایجاد سند بدهی ماهیانه برای قراداد مالی
+ /////
+ /////
+ //[DisableConcurrentExecution(timeoutInSeconds: 1200)]
+ //public async System.Threading.Tasks.Task CreateFinancialTransaction()
+ //{
+ // var now =DateTime.Now;
+ // var endOfMonth = now.ToFarsi().FindeEndOfMonth();
+ // var endOfMonthGr = endOfMonth.ToGeorgianDateTime();
+ // _logger.LogInformation("CreateFinancialTransaction job run");
+ // if (now.Date == endOfMonthGr.Date && now.Hour >= 2 && now.Hour < 4 &&
+ // now.Date != _lastRunCreateTransaction?.Date)
+ // {
- var month = endOfMonth.Substring(5, 2);
- var year = endOfMonth.Substring(0, 4);
- var monthName = month.ToFarsiMonthByNumber();
- var description = $"{monthName} {year}";
+ // var month = endOfMonth.Substring(5, 2);
+ // var year = endOfMonth.Substring(0, 4);
+ // var monthName = month.ToFarsiMonthByNumber();
+ // var description = $"{monthName} {year}";
- var endnew = ($"{endOfMonth.Substring(0, 8)}01").FindeEndOfMonth();
+ // var endnew = ($"{endOfMonth.Substring(0, 8)}01").FindeEndOfMonth();
- var endNewGr = endnew.ToGeorgianDateTime();
- var endNewFa = endNewGr.ToFarsi();
+ // var endNewGr = endnew.ToGeorgianDateTime();
+ // var endNewFa = endNewGr.ToFarsi();
- try
- {
- await _institutionContractRepository.CreateTransactionForInstitutionContracts(endNewGr, endNewFa, description);
- _lastRunCreateTransaction = now;
- Console.WriteLine("CreateTransAction executed");
+ // try
+ // {
+ // await _institutionContractRepository.CreateTransactionForInstitutionContracts(endNewGr, endNewFa, description);
+ // _lastRunCreateTransaction = now;
+ // Console.WriteLine("CreateTransAction executed");
- }
- catch (Exception e)
- {
- await _smsService.Alarm("09114221321", "خطا-ایجاد سند مالی");
+ // }
+ // catch (Exception e)
+ // {
+ // await _smsService.Alarm("09114221321", "خطا-ایجاد سند مالی");
- }
+ // }
- }
- }
+ // }
+ //}
- ///
- /// ارسال پیامک صورت حساب ماهانه
- ///
- ///
- [DisableConcurrentExecution(timeoutInSeconds: 600)]
- public async System.Threading.Tasks.Task SendFirstDayOfMonthSms()
- {
- //var now = new DateTime(2025,11,21, 10,30,0);
- var now = DateTime.Now;
- var endOfMonth = now.ToFarsi().FindeEndOfMonth();
- var endOfMonthGr = endOfMonth.ToGeorgianDateTime();
- _logger.LogInformation("SendFirstDayOfMonthSms job run");
- if (now.Date == endOfMonthGr.Date && now.Hour >= 10 && now.Hour < 11 &&
- now.Date != _lastRunSendMonthlySms?.Date)
- {
+ /////
+ ///// ارسال پیامک صورت حساب ماهانه
+ /////
+ /////
+ //[DisableConcurrentExecution(timeoutInSeconds: 600)]
+ //public async System.Threading.Tasks.Task SendFirstDayOfMonthSms()
+ //{
+ // //var now = new DateTime(2025,11,21, 10,30,0);
+ // var now = DateTime.Now;
+ // var endOfMonth = now.ToFarsi().FindeEndOfMonth();
+ // var endOfMonthGr = endOfMonth.ToGeorgianDateTime();
+ // _logger.LogInformation("SendFirstDayOfMonthSms job run");
+ // if (now.Date == endOfMonthGr.Date && now.Hour >= 10 && now.Hour < 11 &&
+ // now.Date != _lastRunSendMonthlySms?.Date)
+ // {
- try
- {
- await _institutionContractRepository.SendMonthlySms(now);
- _lastRunSendMonthlySms = now;
- Console.WriteLine("Send Monthly sms executed");
+ // try
+ // {
+ // await _institutionContractRepository.SendMonthlySms(now);
+ // _lastRunSendMonthlySms = now;
+ // Console.WriteLine("Send Monthly sms executed");
- }
- catch (Exception e)
- {
- //_smsService.Alarm("09114221321", "خطا-ایجاد سند مالی");
+ // }
+ // catch (Exception e)
+ // {
+ // //_smsService.Alarm("09114221321", "خطا-ایجاد سند مالی");
- }
+ // }
- }
- }
+ // }
+ //}
- ///
- /// ارسال پیامک یاد آور بدهی
- ///
- ///
- [DisableConcurrentExecution(timeoutInSeconds: 1200)]
- public async System.Threading.Tasks.Task SendReminderSms()
- {
- _logger.LogInformation("SendReminderSms job run");
- await _institutionContractRepository.SendReminderSmsForBackgroundTask();
- }
+ /////
+ ///// ارسال پیامک یاد آور بدهی
+ /////
+ /////
+ //[DisableConcurrentExecution(timeoutInSeconds: 1200)]
+ //public async System.Threading.Tasks.Task SendReminderSms()
+ //{
+ // _logger.LogInformation("SendReminderSms job run");
+ // await _institutionContractRepository.SendReminderSmsForBackgroundTask();
+ //}
- ///
- /// ارسال پیامک مسدودی
- ///
- ///
- [DisableConcurrentExecution(timeoutInSeconds: 100)]
- public async System.Threading.Tasks.Task SendBlockSms()
- {
- _logger.LogInformation("SendBlockSms job run");
- await _institutionContractRepository.SendBlockSmsForBackgroundTask();
- }
+ /////
+ ///// ارسال پیامک مسدودی
+ /////
+ /////
+ //[DisableConcurrentExecution(timeoutInSeconds: 100)]
+ //public async System.Threading.Tasks.Task SendBlockSms()
+ //{
+ // _logger.LogInformation("SendBlockSms job run");
+ // await _institutionContractRepository.SendBlockSmsForBackgroundTask();
+ //}
- ///
- /// ارسال پیامک یادآور تایید قراداد مالی
- ///
- ///
- [DisableConcurrentExecution(timeoutInSeconds: 100)]
- public async System.Threading.Tasks.Task SendInstitutionContractConfirmSms()
- {
- _logger.LogInformation("SendInstitutionContractConfirmSms job run");
- await _institutionContractRepository.SendInstitutionContractConfirmSmsTask();
- }
+ /////
+ ///// ارسال پیامک یادآور تایید قراداد مالی
+ /////
+ /////
+ //[DisableConcurrentExecution(timeoutInSeconds: 100)]
+ //public async System.Threading.Tasks.Task SendInstitutionContractConfirmSms()
+ //{
+ // _logger.LogInformation("SendInstitutionContractConfirmSms job run");
+ // await _institutionContractRepository.SendInstitutionContractConfirmSmsTask();
+ //}
- ///
- /// ارسال پیامک هشدار
- ///
- ///
- [DisableConcurrentExecution(timeoutInSeconds: 100)]
- public async System.Threading.Tasks.Task SendWarningSms()
- {
- _logger.LogInformation("SendWarningSms job run");
- await _institutionContractSmsServiceRepository.SendWarningSmsTask();
- }
+ /////
+ ///// ارسال پیامک هشدار
+ /////
+ /////
+ //[DisableConcurrentExecution(timeoutInSeconds: 100)]
+ //public async System.Threading.Tasks.Task SendWarningSms()
+ //{
+ // _logger.LogInformation("SendWarningSms job run");
+ // await _institutionContractSmsServiceRepository.SendWarningOrLegalActionSmsTask(TypeOfSmsSetting.Warning);
+ //}
[DisableConcurrentExecution(timeoutInSeconds: 100)]
public async System.Threading.Tasks.Task SendLegalActionSms()
{
_logger.LogInformation("SendWarningSms job run");
- await _institutionContractRepository.SendLegalActionSmsTask();
+ await _institutionContractSmsServiceRepository.SendWarningOrLegalActionSmsTask(TypeOfSmsSetting.LegalAction);
}
}
\ No newline at end of file
diff --git a/Company.Domain/InstitutionContractAgg/IInstitutionContractRepository.cs b/Company.Domain/InstitutionContractAgg/IInstitutionContractRepository.cs
index c576da00..97bbab67 100644
--- a/Company.Domain/InstitutionContractAgg/IInstitutionContractRepository.cs
+++ b/Company.Domain/InstitutionContractAgg/IInstitutionContractRepository.cs
@@ -165,14 +165,6 @@ public interface IInstitutionContractRepository : IRepository
- /// پیامک اقدام قضائی
- ///
- ///
- Task SendLegalActionSmsTask();
-
- #endregion
diff --git a/Company.Domain/InstitutionContractAgg/IInstitutionContractSmsServiceRepository.cs b/Company.Domain/InstitutionContractAgg/IInstitutionContractSmsServiceRepository.cs
index 32c14c5e..9d8703d4 100644
--- a/Company.Domain/InstitutionContractAgg/IInstitutionContractSmsServiceRepository.cs
+++ b/Company.Domain/InstitutionContractAgg/IInstitutionContractSmsServiceRepository.cs
@@ -10,9 +10,27 @@ public interface IInstitutionContractSmsServiceRepository : IRepository
+ /// اجرای تسک پیامک هشدار یا اقدام قضایی
+ ///
+ ///
+ ///
+ Task SendWarningOrLegalActionSmsTask(TypeOfSmsSetting typeOfSmsSetting);
- Task SendWarningSmsTask();
+ ///
+ /// دریافت لیست بدهکاران آبی جهت هشدار یا اقدام قضایی
+ ///
+ ///
+ ///
Task> GetWarningOrLegalActionSmsListData(TypeOfSmsSetting typeOfSmsSetting);
+ ///
+ /// ارسال پیامک هشدار یا اقدام قضایی
+ ///
+ ///
+ ///
+ ///
+ Task SendWarningOrLegalActionSms(List smsListData, TypeOfSmsSetting typeOfSmsSetting);
+
#endregion
}
\ No newline at end of file
diff --git a/CompanyManagment.EFCore/Repository/InstitutionContractRepository.cs b/CompanyManagment.EFCore/Repository/InstitutionContractRepository.cs
index 6b624087..875e3b91 100644
--- a/CompanyManagment.EFCore/Repository/InstitutionContractRepository.cs
+++ b/CompanyManagment.EFCore/Repository/InstitutionContractRepository.cs
@@ -6285,58 +6285,6 @@ public class InstitutionContractRepository : RepositoryBase
- x.DayOfMonth >= dayOfMonth &&
- x.TimeOfDay.Hours == hour &&
- x.TimeOfDay.Minutes == minute &&
- x.TypeOfSmsSetting == TypeOfSmsSetting.LegalAction &&
- x.IsActive
- );
- }
- else
- {
- checkAnyToExecute = await _context.SmsSettings
- .AnyAsync(x =>
- x.DayOfMonth == dayOfMonth &&
- x.TimeOfDay.Hours == hour &&
- x.TimeOfDay.Minutes == minute &&
- x.TypeOfSmsSetting == TypeOfSmsSetting.LegalAction &&
- x.IsActive
- );
- }
-
- if (checkAnyToExecute)
- {
- //اجرای تسک
- _logger.LogInformation("اجرای تسک ارسال پیامک اقدام قضائی SendLegalActionSms" +
- persianNow + " - " + hour + ":" + minute);
-
-
- }
-
- }
- #endregion
#region CustomViewModels
diff --git a/CompanyManagment.EFCore/Repository/InstitutionContractSmsServiceRepository.cs b/CompanyManagment.EFCore/Repository/InstitutionContractSmsServiceRepository.cs
index 3661fbf1..da4029cd 100644
--- a/CompanyManagment.EFCore/Repository/InstitutionContractSmsServiceRepository.cs
+++ b/CompanyManagment.EFCore/Repository/InstitutionContractSmsServiceRepository.cs
@@ -1,18 +1,22 @@
-using _0_Framework.Application.Enums;
+using _0_Framework.Application;
+using _0_Framework.Application.Enums;
+using _0_Framework.Application.Sms;
using _0_Framework.InfraStructure;
using Company.Domain.InstitutionContractAgg;
+using Company.Domain.SmsResultAgg;
+using CompanyManagment.App.Contracts.Hubs;
using CompanyManagment.App.Contracts.InstitutionContract;
+using CompanyManagment.App.Contracts.InstitutionContractContactinfo;
+using Microsoft.AspNetCore.SignalR;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;
+using PersianTools.Core;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
+using System.Threading;
using System.Threading.Tasks;
-using _0_Framework.Application;
-using _0_Framework.Application.Sms;
-using CompanyManagment.App.Contracts.InstitutionContractContactinfo;
-using PersianTools.Core;
namespace CompanyManagment.EFCore.Repository;
@@ -21,15 +25,18 @@ public class InstitutionContractSmsServiceRepository : RepositoryBase _logger;
private readonly ISmsService _smsService;
- public InstitutionContractSmsServiceRepository(CompanyContext context, ISmsService smsService) : base(context)
+ private readonly ISmsResultRepository _smsResultRepository;
+ public InstitutionContractSmsServiceRepository(CompanyContext context, ISmsService smsService, ILogger logger, ISmsResultRepository smsResultRepository) : base(context)
{
_context = context;
_smsService = smsService;
+ _logger = logger;
+ _smsResultRepository = smsResultRepository;
}
- #region WarningSms
+ #region WarninSmsAndLegalActionSms
- public async Task SendWarningSmsTask()
+ public async Task SendWarningOrLegalActionSmsTask(TypeOfSmsSetting typeOfSmsSetting)
{
var now = DateTime.Now;
@@ -51,7 +58,7 @@ public class InstitutionContractSmsServiceRepository : RepositoryBase= dayOfMonth &&
x.TimeOfDay.Hours == hour &&
x.TimeOfDay.Minutes == minute &&
- x.TypeOfSmsSetting == TypeOfSmsSetting.Warning &&
+ x.TypeOfSmsSetting == typeOfSmsSetting &&
x.IsActive
);
}
@@ -62,7 +69,7 @@ public class InstitutionContractSmsServiceRepository : RepositoryBase
///دریافت لیست پیامک قراداد های آبی بدهکار
///
@@ -141,237 +146,253 @@ public class InstitutionContractSmsServiceRepository : RepositoryBase endOfContractNextMonthEnd.Date;
+ break;
+ }
+
+ if (!string.IsNullOrWhiteSpace(contractingParty.LName) && executeCondition)
+ {
+ //Thread.Sleep(500);x.IsLegal == "حقیقی" ? $"{x.FName.Trim()} {x.LName.Trim()}" : $"{x.LName.Trim()}"
+ var partyName = contractingParty.IsLegal == "حقیقی"
+ ? $"{contractingParty.FName} {contractingParty.LName}"
+ : $"{contractingParty.LName}";
+ if (!string.IsNullOrWhiteSpace(contractingParty.SureName))
+ partyName = $"{partyName} ({contractingParty.SureName})";
if (partyName.Length > 25) partyName = $"{partyName.Substring(0, 25)}";
var isLegal = contractingParty.IsLegal == "حقوقی" ? true : false;
//var isBlock = contractingParty.IsBlock == "true" ? true : false;
//var isActive = contractingParty.IsActiveString == "true" ? true : false;
-
-
- var hasFinancialStatement =
- financialStatmentList.Any(x => x.ContractingPartyId == item.ContractingPartyId);
-
- var hasPhonNumber = phoneNumberList.Any(x => x.InstitutionContractId == item.Id);
-
- if (hasFinancialStatement && hasPhonNumber)
- {
- var phoneNumbers = phoneNumberList.Where(x => x.InstitutionContractId == item.Id)
- .Select(x => new CreateContactInfo
- {
- PhoneType = x.PhoneType,
- PhoneNumber = x.PhoneNumber,
-
- InstitutionContractId = x.InstitutionContractId,
- SendSms = x.SendSms
- }).Where(x => x.PhoneNumber.Length == 11).ToList();
-
- var transactions = financialStatmentList.FirstOrDefault(x =>
- x.ContractingPartyId == item.ContractingPartyId);
- var debtor = transactions.FinancialTransactionList.Sum(x => x.Deptor);
- var creditor = transactions.FinancialTransactionList.Sum(x => x.Creditor);
+ var hasFinancialStatement =
+ financialStatmentList.Any(x => x.ContractingPartyId == item.ContractingPartyId);
+ var hasPhonNumber = phoneNumberList.Any(x => x.InstitutionContractId == item.Id);
- //var id = $"{item.ContractingPartyId}";
- var aprove = $"{transactions.id}";
- var balance = debtor - creditor;
-
- if (balance > 0) // اگر بدهکار بود
+ if (hasFinancialStatement && hasPhonNumber)
+ {
+ var phoneNumbers = phoneNumberList.Where(x => x.InstitutionContractId == item.Id)
+ .Select(x => new CreateContactInfo
{
+ PhoneType = x.PhoneType,
+ PhoneNumber = x.PhoneNumber,
- if (isLegal)
+ InstitutionContractId = x.InstitutionContractId,
+ SendSms = x.SendSms
+ }).Where(x => x.PhoneNumber.Length == 11).ToList();
+
+ var transactions = financialStatmentList.FirstOrDefault(x =>
+ x.ContractingPartyId == item.ContractingPartyId);
+
+
+ var debtor = transactions.FinancialTransactionList.Sum(x => x.Deptor);
+ var creditor = transactions.FinancialTransactionList.Sum(x => x.Creditor);
+
+
+ //var id = $"{item.ContractingPartyId}";
+ var aprove = $"{transactions.id}";
+ var balance = debtor - creditor;
+
+ if (balance > 0) // اگر بدهکار بود
+ {
+
+ if (isLegal)
+ {
+ if (item.OfficialCompany == "Official") // حقوقی بدهکار رسمی
{
- if (item.OfficialCompany == "Official") // حقوقی بدهکار رسمی
- {
- var balanceToMoney = balance.ToMoney();
+ var balanceToMoney = balance.ToMoney();
- foreach (var number in phoneNumbers)
+ foreach (var number in phoneNumbers)
+ {
+
+
+
+ if (!string.IsNullOrWhiteSpace(number.PhoneNumber) &&
+ number.PhoneNumber.Length == 11)
{
+ //var smsResult = _smsService.MonthlyBill(number.PhoneNumber, 608443,
+ // partyName,
+ // balanceToMoney, id, aprove);
+ //Thread.Sleep(1000);
+ //if (smsResult.IsSuccedded)
+ //{
+ // var createSmsResult = new SmsResult(smsResult.MessageId,
+ // smsResult.Message, typeOfSms, partyName, number.PhoneNumber,
+ // item.ContractingPartyId, item.Id);
+ // _smsResultRepository.Create(createSmsResult);
+ // _smsResultRepository.SaveChanges();
+ // Thread.Sleep(1000);
+ //}
- if (!string.IsNullOrWhiteSpace(number.PhoneNumber) &&
- number.PhoneNumber.Length == 11)
+ smsList.Add(new SmsListData()
{
-
- //var smsResult = _smsService.MonthlyBill(number.PhoneNumber, 608443,
- // partyName,
- // balanceToMoney, id, aprove);
- //Thread.Sleep(1000);
- //if (smsResult.IsSuccedded)
- //{
- // var createSmsResult = new SmsResult(smsResult.MessageId,
- // smsResult.Message, typeOfSms, partyName, number.PhoneNumber,
- // item.ContractingPartyId, item.Id);
- // _smsResultRepository.Create(createSmsResult);
- // _smsResultRepository.SaveChanges();
- // Thread.Sleep(1000);
- //}
-
-
- smsList.Add(new SmsListData()
- {
- PhoneNumber = number.PhoneNumber,
- TemplateId = typeOfSmsSetting == TypeOfSmsSetting.Warning ? 608443 : 0,
- PartyName = partyName,
- Amount = balanceToMoney,
- ContractingPartyId = contractingParty.id,
- AproveId = aprove,
- TypeOfSmsMethod = "MonthlyBill",
- Code1 = "",
- Code2 = "",
- InstitutionContractId = item.Id
- });
- }
+ PhoneNumber = number.PhoneNumber,
+ TemplateId = typeOfSmsSetting == TypeOfSmsSetting.Warning ? 608443 : 0,
+ PartyName = partyName,
+ Amount = balanceToMoney,
+ ContractingPartyId = contractingParty.id,
+ AproveId = aprove,
+ TypeOfSmsMethod = "MonthlyBill",
+ Code1 = "",
+ Code2 = "",
+ InstitutionContractId = item.Id
+ });
}
-
-
-
}
- else if (item.OfficialCompany == "NotOfficial") // حقوقی بدهکار غیر رسمی
- {
- var balanceToMoney = balance.ToMoney();
- foreach (var number in phoneNumbers)
- {
-
- if (!string.IsNullOrWhiteSpace(number.PhoneNumber) &&
- number.PhoneNumber.Length == 11)
- {
-
- //var smsResult = _smsService.MonthlyBill(number.PhoneNumber, 351691,
- // partyName,
- // balanceToMoney, id, aprove);
- //Thread.Sleep(1000);
- //if (smsResult.IsSuccedded)
- //{
- // var createSmsResult = new SmsResult(smsResult.MessageId,
- // smsResult.Message, typeOfSms, partyName, number.PhoneNumber,
- // item.ContractingPartyId, item.Id);
- // _smsResultRepository.Create(createSmsResult);
- // _smsResultRepository.SaveChanges();
- // Thread.Sleep(1000);
- //}
-
- smsList.Add(new SmsListData()
- {
- PhoneNumber = number.PhoneNumber,
- TemplateId = typeOfSmsSetting == TypeOfSmsSetting.Warning ? 351691 : 0,
- PartyName = partyName,
- Amount = balanceToMoney,
- ContractingPartyId = contractingParty.id,
- AproveId = aprove,
- TypeOfSmsMethod = "MonthlyBill",
- Code1 = "",
- Code2 = "",
- InstitutionContractId = item.Id
- });
-
- }
- }
- }
+
}
- else
+ else if (item.OfficialCompany == "NotOfficial") // حقوقی بدهکار غیر رسمی
{
- if (item.OfficialCompany == "Official") // حقیقی بدهکار رسمی
+ var balanceToMoney = balance.ToMoney();
+ foreach (var number in phoneNumbers)
{
- var balanceToMoney = balance.ToMoney();
- foreach (var number in phoneNumbers)
+ if (!string.IsNullOrWhiteSpace(number.PhoneNumber) &&
+ number.PhoneNumber.Length == 11)
{
- if (!string.IsNullOrWhiteSpace(number.PhoneNumber) &&
- number.PhoneNumber.Length == 11)
+ //var smsResult = _smsService.MonthlyBill(number.PhoneNumber, 351691,
+ // partyName,
+ // balanceToMoney, id, aprove);
+ //Thread.Sleep(1000);
+ //if (smsResult.IsSuccedded)
+ //{
+ // var createSmsResult = new SmsResult(smsResult.MessageId,
+ // smsResult.Message, typeOfSms, partyName, number.PhoneNumber,
+ // item.ContractingPartyId, item.Id);
+ // _smsResultRepository.Create(createSmsResult);
+ // _smsResultRepository.SaveChanges();
+ // Thread.Sleep(1000);
+ //}
+
+ smsList.Add(new SmsListData()
{
+ PhoneNumber = number.PhoneNumber,
+ TemplateId = typeOfSmsSetting == TypeOfSmsSetting.Warning ? 351691 : 0,
+ PartyName = partyName,
+ Amount = balanceToMoney,
+ ContractingPartyId = contractingParty.id,
+ AproveId = aprove,
+ TypeOfSmsMethod = "MonthlyBill",
+ Code1 = "",
+ Code2 = "",
+ InstitutionContractId = item.Id
+ });
- //var smsResult = _smsService.MonthlyBill(number.PhoneNumber, 190430,
- // partyName,
- // balanceToMoney, id, aprove);
- //Thread.Sleep(1000);
- //if (smsResult.IsSuccedded)
- //{
- // var createSmsResult = new SmsResult(smsResult.MessageId,
- // smsResult.Message, typeOfSms, partyName, number.PhoneNumber,
- // item.ContractingPartyId, item.Id);
- // _smsResultRepository.Create(createSmsResult);
- // _smsResultRepository.SaveChanges();
- // Thread.Sleep(1000);
- //}
-
- smsList.Add(new SmsListData()
- {
- PhoneNumber = number.PhoneNumber,
- TemplateId = typeOfSmsSetting == TypeOfSmsSetting.Warning ? 190430 : 0,
- PartyName = partyName,
- Amount = balanceToMoney,
- ContractingPartyId = contractingParty.id,
- AproveId = aprove,
- TypeOfSmsMethod = "MonthlyBill",
- Code1 = "",
- Code2 = "",
- InstitutionContractId = item.Id
- });
- }
+ }
+ }
+ }
+ }
+ else
+ {
+ if (item.OfficialCompany == "Official") // حقیقی بدهکار رسمی
+ {
+ var balanceToMoney = balance.ToMoney();
+
+ foreach (var number in phoneNumbers)
+ {
+
+ if (!string.IsNullOrWhiteSpace(number.PhoneNumber) &&
+ number.PhoneNumber.Length == 11)
+ {
+
+ //var smsResult = _smsService.MonthlyBill(number.PhoneNumber, 190430,
+ // partyName,
+ // balanceToMoney, id, aprove);
+ //Thread.Sleep(1000);
+ //if (smsResult.IsSuccedded)
+ //{
+ // var createSmsResult = new SmsResult(smsResult.MessageId,
+ // smsResult.Message, typeOfSms, partyName, number.PhoneNumber,
+ // item.ContractingPartyId, item.Id);
+ // _smsResultRepository.Create(createSmsResult);
+ // _smsResultRepository.SaveChanges();
+ // Thread.Sleep(1000);
+ //}
+
+ smsList.Add(new SmsListData()
+ {
+ PhoneNumber = number.PhoneNumber,
+ TemplateId = typeOfSmsSetting == TypeOfSmsSetting.Warning ? 190430 : 0,
+ PartyName = partyName,
+ Amount = balanceToMoney,
+ ContractingPartyId = contractingParty.id,
+ AproveId = aprove,
+ TypeOfSmsMethod = "MonthlyBill",
+ Code1 = "",
+ Code2 = "",
+ InstitutionContractId = item.Id
+ });
}
}
- else if (item.OfficialCompany == "NotOfficial") // حقیقی بدهکار غیر رسمی
+
+
+ }
+ else if (item.OfficialCompany == "NotOfficial") // حقیقی بدهکار غیر رسمی
+ {
+ var balanceToMoney = balance.ToMoney();
+
+ foreach (var number in phoneNumbers)
{
- var balanceToMoney = balance.ToMoney();
- foreach (var number in phoneNumbers)
+ if (!string.IsNullOrWhiteSpace(number.PhoneNumber) &&
+ number.PhoneNumber.Length == 11)
{
+ //var smsResult = _smsService.MonthlyBill(number.PhoneNumber, 412829,
+ // partyName,
+ // balanceToMoney, id, aprove);
+ //Thread.Sleep(1000);
+ //if (smsResult.IsSuccedded)
+ //{
+ // var createSmsResult = new SmsResult(smsResult.MessageId,
+ // smsResult.Message, typeOfSms, partyName, number.PhoneNumber,
+ // item.ContractingPartyId, item.Id);
+ // _smsResultRepository.Create(createSmsResult);
+ // _smsResultRepository.SaveChanges();
+ // Thread.Sleep(1000);
+ //}
- if (!string.IsNullOrWhiteSpace(number.PhoneNumber) &&
- number.PhoneNumber.Length == 11)
+ smsList.Add(new SmsListData()
{
- //var smsResult = _smsService.MonthlyBill(number.PhoneNumber, 412829,
- // partyName,
- // balanceToMoney, id, aprove);
- //Thread.Sleep(1000);
- //if (smsResult.IsSuccedded)
- //{
- // var createSmsResult = new SmsResult(smsResult.MessageId,
- // smsResult.Message, typeOfSms, partyName, number.PhoneNumber,
- // item.ContractingPartyId, item.Id);
- // _smsResultRepository.Create(createSmsResult);
- // _smsResultRepository.SaveChanges();
- // Thread.Sleep(1000);
- //}
-
- smsList.Add(new SmsListData()
- {
- PhoneNumber = number.PhoneNumber,
- TemplateId = typeOfSmsSetting == TypeOfSmsSetting.Warning ? 412829 : 0,
- PartyName = partyName,
- Amount = balanceToMoney,
- ContractingPartyId = contractingParty.id,
- AproveId = aprove,
- TypeOfSmsMethod = "MonthlyBill",
- Code1 = "",
- Code2 = "",
- InstitutionContractId = item.Id
- });
- }
+ PhoneNumber = number.PhoneNumber,
+ TemplateId = typeOfSmsSetting == TypeOfSmsSetting.Warning ? 412829 : 0,
+ PartyName = partyName,
+ Amount = balanceToMoney,
+ ContractingPartyId = contractingParty.id,
+ AproveId = aprove,
+ TypeOfSmsMethod = "MonthlyBill",
+ Code1 = "",
+ Code2 = "",
+ InstitutionContractId = item.Id
+ });
}
-
-
}
+
+
}
}
}
-
+ }
+
}
}
catch (Exception e)
@@ -397,7 +418,20 @@ public class InstitutionContractSmsServiceRepository : RepositoryBase endOfContractNextMonthEnd.Date;
+ break;
+ }
+ if (!string.IsNullOrWhiteSpace(contractingParty.LName) && executeCondition)
{
var partyName = contractingParty.IsLegal == "حقیقی"
? $"{contractingParty.FName} {contractingParty.LName}"
@@ -411,68 +445,68 @@ public class InstitutionContractSmsServiceRepository : RepositoryBase x.ContractingPartyId == item.ContractingPartyId);
+
+ var hasFinancialStatement =
+ financialStatmentList.Any(x => x.ContractingPartyId == item.ContractingPartyId);
- var hasPhonNumber = phoneNumberList.Any(x => x.InstitutionContractId == item.Id);
+ var hasPhonNumber = phoneNumberList.Any(x => x.InstitutionContractId == item.Id);
- if (hasFinancialStatement && hasPhonNumber)
- {
- var phoneNumbers = phoneNumberList.Where(x => x.InstitutionContractId == item.Id)
- .Select(x => new CreateContactInfo
- {
- PhoneType = x.PhoneType,
- PhoneNumber = x.PhoneNumber,
-
- InstitutionContractId = x.InstitutionContractId,
- SendSms = x.SendSms
- }).Where(x => x.PhoneNumber.Length == 11).ToList();
-
- var transactions = financialStatmentList.FirstOrDefault(x =>
- x.ContractingPartyId == item.ContractingPartyId);
-
- var debtor = transactions.FinancialTransactionList.Sum(x => x.Deptor);
- var creditor = transactions.FinancialTransactionList.Sum(x => x.Creditor);
-
-
- //var id = $"{item.ContractingPartyId}";
- var aprove = $"{transactions.id}";
- var balance = debtor - creditor;
- int templateId = 0;
- //انتخاب قالب پیامک بر اساس حقیق/حقوقی
-
-
- if (balance > 0) // اگر بدهکار بود
+ if (hasFinancialStatement && hasPhonNumber)
+ {
+ var phoneNumbers = phoneNumberList.Where(x => x.InstitutionContractId == item.Id)
+ .Select(x => new CreateContactInfo
{
- var balanceToMoney = balance.ToMoney();
+ PhoneType = x.PhoneType,
+ PhoneNumber = x.PhoneNumber,
- foreach (var number in phoneNumbers)
+ InstitutionContractId = x.InstitutionContractId,
+ SendSms = x.SendSms
+ }).Where(x => x.PhoneNumber.Length == 11).ToList();
+
+ var transactions = financialStatmentList.FirstOrDefault(x =>
+ x.ContractingPartyId == item.ContractingPartyId);
+
+ var debtor = transactions.FinancialTransactionList.Sum(x => x.Deptor);
+ var creditor = transactions.FinancialTransactionList.Sum(x => x.Creditor);
+
+
+ //var id = $"{item.ContractingPartyId}";
+ var aprove = $"{transactions.id}";
+ var balance = debtor - creditor;
+ int templateId = 0;
+ //انتخاب قالب پیامک بر اساس حقیق/حقوقی
+
+
+ if (balance > 0) // اگر بدهکار بود
+ {
+ var balanceToMoney = balance.ToMoney();
+
+ foreach (var number in phoneNumbers)
+ {
+ string publicId = transactions.PublicIdStr;
+ string code1 = publicId.Substring(0, 25);
+ string code2 = publicId.Substring(25);
+
+
+ smsList.Add(new SmsListData()
{
- string publicId = transactions.PublicIdStr;
- string code1 = publicId.Substring(0, 25);
- string code2 = publicId.Substring(25);
+ PhoneNumber = number.PhoneNumber,
+ TemplateId = typeOfSmsSetting == TypeOfSmsSetting.Warning ? 530657 : 665145,
+ PartyName = partyName,
+ Amount = balanceToMoney,
+ ContractingPartyId = contractingParty.id,
+ AproveId = aprove,
+ TypeOfSmsMethod = "MonthlyBillNew",
+ Code1 = code1,
+ Code2 = code2,
+ InstitutionContractId = item.Id
+ });
-
- smsList.Add(new SmsListData()
- {
- PhoneNumber = number.PhoneNumber,
- TemplateId = 530657,
- PartyName = partyName,
- Amount = balanceToMoney,
- ContractingPartyId = contractingParty.id,
- AproveId = aprove,
- TypeOfSmsMethod = "MonthlyBillNew",
- Code1 = code1,
- Code2 = code2,
- InstitutionContractId = item.Id
- });
-
- }
}
}
-
+ }
+
}
}
@@ -484,6 +518,94 @@ public class InstitutionContractSmsServiceRepository : RepositoryBase smsListData, TypeOfSmsSetting typeOfSmsSetting)
+ {
+ //ارسال پیامک با اساس لیست
+
+ var typeOfSms = "";
+
+ switch (typeOfSmsSetting)
+ {
+ case TypeOfSmsSetting.Warning:
+ typeOfSms = "هشدار";
+ break;
+ case TypeOfSmsSetting.LegalAction:
+ typeOfSms = "اقدام قضایی";
+ break;
+ }
+ #region SendSMSFromList
+
+ if (smsListData.Any() && !string.IsNullOrWhiteSpace(typeOfSms))
+ {
+
+
+ // int successProcess = 1;
+ //int countList = smsListData.Count;
+
+
+ foreach (var item in smsListData.Take(1))
+ {
+ try
+ {
+ if (item.TypeOfSmsMethod == "MonthlyBill")
+ {
+ var res = await _smsService.MonthlyBill("09114221321", item.TemplateId, item.PartyName,
+ item.Amount,
+ $"{item.ContractingPartyId}", item.AproveId);
+
+ if (res.isSucceded)
+ {
+ var createSmsResult = new Company.Domain.SmsResultAgg.SmsResult(res.messaeId,
+ res.message, typeOfSms, item.PartyName, item.PhoneNumber,
+ item.ContractingPartyId, item.InstitutionContractId);
+
+ await _smsResultRepository.CreateAsync(createSmsResult);
+ await _smsResultRepository.SaveChangesAsync();
+ }
+ }
+ else
+ {
+ var res = await _smsService.MonthlyBillNew(item.PhoneNumber, item.TemplateId, item.PartyName,
+ item.Amount, item.Code1, item.Code2);
+ if (res.isSucceded)
+ {
+ var createSmsResult = new Company.Domain.SmsResultAgg.SmsResult(res.messaeId,
+ res.message, typeOfSms, item.PartyName, item.PhoneNumber,
+ item.ContractingPartyId, item.InstitutionContractId);
+
+ await _smsResultRepository.CreateAsync(createSmsResult);
+ await _smsResultRepository.SaveChangesAsync();
+ }
+ }
+
+ Thread.Sleep(600);
+ }
+ catch (Exception e)
+ {
+ string name = item.PartyName.Length > 18 ? item.PartyName.Substring(0, 18) : item.PartyName;
+ string errMess = $"{name}-خطا";
+ _logger.LogError(errMess);
+ await _smsService.Alarm("09114221321", errMess);
+ }
+
+ //var percent = (successProcess / (double)countList) * 100;
+ //await _hubContext.Clients.Group(SendSmsHub.GetGroupName(7))
+ //.SendAsync("showStatus", (int)percent);
+
+ // successProcess += 1;
+ }
+
+
+
+ }
+
+ #endregion
+ }
+
+ #endregion
+
}