Supply Chain Düzenleme

This commit is contained in:
Sedat ÖZTÜRK 2025-11-13 14:01:40 +03:00
parent f1a8f18070
commit dbcdf30a9d
16 changed files with 28 additions and 51 deletions

View file

@ -23,7 +23,7 @@
# Custom Endpoints
```
Token İsteği Örnek:
Token İsteği Örnek:
POST /connect/token HTTP/1.1
Host: localhost:44344
Content-Type: application/x-www-form-urlencoded
@ -40,7 +40,7 @@ username=system%40sozsoft.com
- Normal facebook üyeliği yapılır.
- https://developers.facebook.com/ sitesinden yeni developer üyeliği oluşturulur. Developer üyeliği seçilir.
- CreateApp butonu ile yeni uygulama oluşturulur. Uygulama adı belirlenir. 'Erp Messenger'
- AppType olarak İşletme seçilir ve App oluşturulur.
- AppType olarak İşletme seçilir ve App oluşturulur.
- Add Products kısmında WhatsApp seçilir ve Business Account oluşturulur.
- 3 noktadan (menüden) WhatsApp Manager sayfasına gidilir. Manage Templates seçilir, istenirse yeni template oluşturulur. 'hello_world'
- WhatsApp Manager üzerinde menüden Settings -> Users -> System Users eklenir. Kullanıcı adı 'admin' ve Role ise 'Admin' seçilir.

View file

@ -21,7 +21,7 @@ public class TrainingDto : FullAuditedEntityDto<Guid>
public string Location { get; set; }
public string Thumbnail { get; set; }
// İlişkili veriler
// İlişkili veriler
public int CertificateCount { get; set; } // optional: ilişkili sertifika sayısı
}

View file

@ -81,7 +81,7 @@ public class ChartArgumentAxisDto
// aggregatedPointsPosition
// aggregationGroupWidth
// allowDecimals
// axisDivisionFactor // İki komşu ana çizgi arasındaki minimum mesafeyi piksel cinsinden belirtir. Yalnızca "sürekli" ve "logaritmik" tiplerin eksenleri için geçerlidir.
// axisDivisionFactor // İki komşu ana çizgi arasındaki minimum mesafeyi piksel cinsinden belirtir. Yalnızca "sürekli" ve "logaritmik" tiplerin eksenleri için geçerlidir.
// breaks[]
// breakStyle
// categories

View file

@ -18,7 +18,7 @@ public class ChartCommonDto
/// <summary> Sayıları seri sayısından (Chart UI bileşeninde) veya bir serideki noktalardan (PieChart UI bileşeninde) az olduğunda, paletteki renklerle ne yapılacağını belirtir.
/// Accepted Values: 'alternate' | 'blend' | 'extrapolate'
/// Default Value: 'blend'
/// blend : İki komşu rengin bir karışımını oluşturur ve paletteki bu renklerin arasına ekler.
/// blend : İki komşu rengin bir karışımını oluşturur ve paletteki bu renklerin arasına ekler.
/// alternate : Sırayla normal, açık ve koyu tonlarını değiştirerek tüm palet renklerini tekrarlar.
/// extrapolate : Gölgelerini yavaş yavaş karanlıktan aydınlığa değiştirerek tüm palet renklerini tekrarlar.
/// </summary>

View file

@ -41,7 +41,7 @@ public class ChartLegendDto
/// </summary>
public bool Visible { get; set; } = true;
////İhtiyaç olması durumunda açılacak diğer property ler
////İhtiyaç olması durumunda açılacak diğer property ler
///// <summary>horizontalAlignment ile birlikte göstergenin konumunu belirtir
///// Accepted Values: 'bottom' | 'top'

View file

@ -14,7 +14,7 @@ public class ChartTitleDto
/// </summary>
public string HorizontalAlignment { get; set; } = "center";
/// <summary> UI bileşeninin altyazısını yapılandırır
/// İhtiyaç olması durumunda alt özellikleri ile birlikte Objeye çevrilebilir
/// İhtiyaç olması durumunda alt özellikleri ile birlikte Objeye çevrilebilir
/// </summary>
public string Subtitle { get; set; }
/// <summary> WordWrap uygulandıktan sonra başlık ayrılan alandan taştığında başlıkla ne yapılacağını belirtir:

View file

@ -255,10 +255,10 @@ public class CustomEntityAppService : CrudAppService<
public override async Task DeleteAsync(Guid id)
{
// İlgili entity'nin var olup olmadığını kontrol et
// İlgili entity'nin var olup olmadığını kontrol et
var entity = await _repository.GetAsync(id);
// İlgili ApiMigration kayıtlarını sil
// İlgili ApiMigration kayıtlarını sil
var relatedMigrations = await _migrationRepository.GetListAsync(m => m.EntityId == id);
if (relatedMigrations.Any())
{

View file

@ -358,7 +358,7 @@ public class FileManagementAppService : ApplicationService, IFileManagementAppSe
long fileSize;
if (input.Files != null && input.Files.Length > 0)
{
// İlk dosyayı kullan (tek dosya upload için)
// İlk dosyayı kullan (tek dosya upload için)
var file = input.Files[0];
using var stream = file.GetStream();
using var fileStream = File.Create(fullFilePath);

View file

@ -152,7 +152,7 @@ public class PublicAppService : PlatformAppService
return dto;
}).ToList();
// ----------- KATEGORİLER (PostCount ile) -----------
// ----------- KATEGORİLER (PostCount ile) -----------
var allCategories = await _categoryRepository.GetListAsync();
var allPostQuery = await _postRepository.GetQueryableAsync();

View file

@ -2002,7 +2002,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
DisplayExpr = "name",
ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key="Public.products.categories.Üyelik",Name="Üyelik" },
new () { Key="Public.products.categories.Üyelik",Name=yelik" },
new () { Key="Public.products.categories.Lisans",Name="Lisans" },
new () { Key="Public.products.categories.Ek Hizmetler",Name="Ek Hizmetler" },
}),

View file

@ -2028,8 +2028,8 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
CommandColumnJson = JsonSerializer.Serialize(new CommandColumnDto[] {
new() {
ButtonPosition = UiCommandButtonPositionTypeEnum.Toolbar,
Hint = "Toplu İzin",
Text ="Toplu İzin",
Hint = "Toplu İzin",
Text ="Toplu İzin",
AuthName = AppCodes.Hr.Leave + ".Update",
DialogName = "CollectiveLeave",
DialogParameters = JsonSerializer.Serialize(new {

View file

@ -1098,15 +1098,15 @@ public class ListFormSeeder_Intranet : IDataSeedContributor, ITransientDependenc
DisplayExpr = "name",
ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key= "Kadıköy İskele", Name= "Kadıköy İskele" },
new () { Key= "Kadıköy İskele", Name= "Kadıköy İskele" },
new () { Key= "Bostancı", Name= "Bostancı" },
new () { Key= "Acıbadem", Name="Acıbadem" },
new () { Key= "Kozyatağı", Name="Kozyatağı" },
new () { Key= "Ofis", Name="Ofis" },
new () { Key= "Üsküdar Meydanı", Name="Üsküdar Meydanı" },
new () { Key= "Üsküdar Meydanı", Name=sküdar Meydanı" },
new () { Key= "Kısıklı", Name="Kısıklı" },
new () { Key= "Bulgurlu", Name="Bulgurlu" },
new () { Key= "Ümraniye", Name="Ümraniye" },
new () { Key= "Ümraniye", Name=mraniye" },
}),
}),
ValidationRuleJson = DefaultValidationRuleRequiredJson,

View file

@ -646,11 +646,11 @@ public class ListFormSeeder_Participant : IDataSeedContributor, ITransientDepend
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key="Kişisel",Name="Kişisel" },
new () { Key="Fiyat / Bütçe",Name="Fiyat / Bütçe" },
new () { Key="Ürün / Hizmet",Name="Ürün / Hizmet" },
new () { Key="Ürün / Hizmet",Name=rün / Hizmet" },
new () { Key="Rekabet",Name="Rekabet" },
new () { Key="Zamanlama",Name="Zamanlama" },
new () { Key="Lokasyon",Name="Lokasyon" },
new () { Key="İletişim",Name="İletişim" },
new () { Key="İletişim",Name=letişim" },
}),
}),
ColumnCustomizationJson = DefaultColumnCustomizationJson,

View file

@ -1079,7 +1079,7 @@ public class ListFormSeeder_SupplyChain : IDataSeedContributor, ITransientDepend
[
new EditingFormItemDto { Order = 1, DataField = "Code", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxTextBox },
new EditingFormItemDto { Order = 2, DataField = "Name", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxTextBox },
new EditingFormItemDto { Order = 3, DataField = "PartyType", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
new EditingFormItemDto { Order = 3, DataField = "PartyType", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions = EditorOptionValues.Disabled },
new EditingFormItemDto { Order = 4, DataField = "SectorId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
new EditingFormItemDto { Order = 5, DataField = "TaxNumber", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxNumberBox },
new EditingFormItemDto { Order = 6, DataField = "TaxOffice", ColSpan = 1, EditorType2 = EditorTypes.dxTextBox },
@ -1552,19 +1552,7 @@ public class ListFormSeeder_SupplyChain : IDataSeedContributor, ITransientDepend
IsActive = true,
IsDeleted = false,
AllowSearch = true,
LookupJson = JsonSerializer.Serialize(new LookupDto
{
DataSourceType = UiLookupDataSourceTypeEnum.StaticData,
DisplayExpr = "name",
ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new() { Key="Manufacturer", Name="Manufacturer" },
new() { Key="Distributor", Name="Distributor" },
new() { Key="Wholesaler", Name="Wholesaler" },
new() { Key="ServiceProvider", Name="ServiceProvider" },
new() { Key="Other", Name="Other" },
}),
}),
LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.SupplyType), "Id", "Name"),
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Supply),
PivotSettingsJson = DefaultPivotSettingsJson
@ -1580,18 +1568,7 @@ public class ListFormSeeder_SupplyChain : IDataSeedContributor, ITransientDepend
IsActive = true,
IsDeleted = false,
AllowSearch = true,
LookupJson = JsonSerializer.Serialize(new LookupDto
{
DataSourceType = UiLookupDataSourceTypeEnum.StaticData,
DisplayExpr = "name",
ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new() { Key="Standard", Name="Standard" },
new() { Key="Premium", Name="Premium" },
new() { Key="Strategic", Name="Strategic" },
new() { Key="Preferred", Name="Preferred" },
}),
}),
LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.SupplyCardType), "Id", "Name"),
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Supply),
PivotSettingsJson = DefaultPivotSettingsJson
@ -1613,9 +1590,9 @@ public class ListFormSeeder_SupplyChain : IDataSeedContributor, ITransientDepend
DisplayExpr = "name",
ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new() { Key="Prospect", Name="Prospect" },
new() { Key="Active", Name="Active" },
new() { Key="Inactive", Name="Inactive" },
new() { Key="Prospect", Name="Prospect" },
new() { Key="Blocked", Name="Blocked" },
}),
}),
@ -2438,7 +2415,7 @@ public class ListFormSeeder_SupplyChain : IDataSeedContributor, ITransientDepend
}
#endregion
#region Approval Workflow
#region Approval
if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == ListFormCodes.Lists.Approval))
{
var listForm = await _listFormRepository.InsertAsync(
@ -2625,7 +2602,7 @@ public class ListFormSeeder_SupplyChain : IDataSeedContributor, ITransientDepend
#endregion
#region Approval Workflow Step
#region Approval Step
if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == ListFormCodes.Lists.ApprovalStep))
{
var listForm = await _listFormRepository.InsertAsync(

View file

@ -11,7 +11,7 @@ public class QuestionPool : FullAuditedEntity<Guid>, IMultiTenant
public string Name { get; set; }
public string Description { get; set; }
public string Tags { get; set; } // İstersen JSON veya ayrı tablo da olabilir
public string Tags { get; set; } // İstersen JSON veya ayrı tablo da olabilir
public ICollection<Question> Questions { get; set; } = new List<Question>();

View file

@ -5,12 +5,12 @@ using Volo.Abp.MultiTenancy;
namespace Erp.Platform.Entities
{
// İnsan Kaynakları Fazla Mesai
// İnsan Kaynakları Fazla Mesai
public class Overtime : FullAuditedEntity<Guid>, IMultiTenant
{
public Guid? TenantId { get; set; }
// İlişkisel alanlar
// İlişkisel alanlar
public Guid EmployeeId { get; set; }
public Employee Employee { get; set; }