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 # Custom Endpoints
``` ```
Token İsteği Örnek: Token İsteği Örnek:
POST /connect/token HTTP/1.1 POST /connect/token HTTP/1.1
Host: localhost:44344 Host: localhost:44344
Content-Type: application/x-www-form-urlencoded Content-Type: application/x-www-form-urlencoded
@ -40,7 +40,7 @@ username=system%40sozsoft.com
- Normal facebook üyeliği yapılır. - Normal facebook üyeliği yapılır.
- https://developers.facebook.com/ sitesinden yeni developer üyeliği oluşturulur. Developer üyeliği seçilir. - 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' - 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. - 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' - 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. - 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 Location { get; set; }
public string Thumbnail { get; set; } public string Thumbnail { get; set; }
// İlişkili veriler // İlişkili veriler
public int CertificateCount { get; set; } // optional: ilişkili sertifika sayısı public int CertificateCount { get; set; } // optional: ilişkili sertifika sayısı
} }

View file

@ -81,7 +81,7 @@ public class ChartArgumentAxisDto
// aggregatedPointsPosition // aggregatedPointsPosition
// aggregationGroupWidth // aggregationGroupWidth
// allowDecimals // 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[] // breaks[]
// breakStyle // breakStyle
// categories // 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. /// <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' /// Accepted Values: 'alternate' | 'blend' | 'extrapolate'
/// Default Value: 'blend' /// 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. /// 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. /// extrapolate : Gölgelerini yavaş yavaş karanlıktan aydınlığa değiştirerek tüm palet renklerini tekrarlar.
/// </summary> /// </summary>

View file

@ -41,7 +41,7 @@ public class ChartLegendDto
/// </summary> /// </summary>
public bool Visible { get; set; } = true; 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 ///// <summary>horizontalAlignment ile birlikte göstergenin konumunu belirtir
///// Accepted Values: 'bottom' | 'top' ///// Accepted Values: 'bottom' | 'top'

View file

@ -14,7 +14,7 @@ public class ChartTitleDto
/// </summary> /// </summary>
public string HorizontalAlignment { get; set; } = "center"; public string HorizontalAlignment { get; set; } = "center";
/// <summary> UI bileşeninin altyazısını yapılandırır /// <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> /// </summary>
public string Subtitle { get; set; } 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: /// <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) 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); 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); var relatedMigrations = await _migrationRepository.GetListAsync(m => m.EntityId == id);
if (relatedMigrations.Any()) if (relatedMigrations.Any())
{ {

View file

@ -358,7 +358,7 @@ public class FileManagementAppService : ApplicationService, IFileManagementAppSe
long fileSize; long fileSize;
if (input.Files != null && input.Files.Length > 0) 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]; var file = input.Files[0];
using var stream = file.GetStream(); using var stream = file.GetStream();
using var fileStream = File.Create(fullFilePath); using var fileStream = File.Create(fullFilePath);

View file

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

View file

@ -2002,7 +2002,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
DisplayExpr = "name", DisplayExpr = "name",
ValueExpr = "key", ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { 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.Lisans",Name="Lisans" },
new () { Key="Public.products.categories.Ek Hizmetler",Name="Ek Hizmetler" }, 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[] { CommandColumnJson = JsonSerializer.Serialize(new CommandColumnDto[] {
new() { new() {
ButtonPosition = UiCommandButtonPositionTypeEnum.Toolbar, ButtonPosition = UiCommandButtonPositionTypeEnum.Toolbar,
Hint = "Toplu İzin", Hint = "Toplu İzin",
Text ="Toplu İzin", Text ="Toplu İzin",
AuthName = AppCodes.Hr.Leave + ".Update", AuthName = AppCodes.Hr.Leave + ".Update",
DialogName = "CollectiveLeave", DialogName = "CollectiveLeave",
DialogParameters = JsonSerializer.Serialize(new { DialogParameters = JsonSerializer.Serialize(new {

View file

@ -1098,15 +1098,15 @@ public class ListFormSeeder_Intranet : IDataSeedContributor, ITransientDependenc
DisplayExpr = "name", DisplayExpr = "name",
ValueExpr = "key", ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { 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= "Bostancı", Name= "Bostancı" },
new () { Key= "Acıbadem", Name="Acıbadem" }, new () { Key= "Acıbadem", Name="Acıbadem" },
new () { Key= "Kozyatağı", Name="Kozyatağı" }, new () { Key= "Kozyatağı", Name="Kozyatağı" },
new () { Key= "Ofis", Name="Ofis" }, 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= "Kısıklı", Name="Kısıklı" },
new () { Key= "Bulgurlu", Name="Bulgurlu" }, new () { Key= "Bulgurlu", Name="Bulgurlu" },
new () { Key= "Ümraniye", Name="Ümraniye" }, new () { Key= "Ümraniye", Name=mraniye" },
}), }),
}), }),
ValidationRuleJson = DefaultValidationRuleRequiredJson, ValidationRuleJson = DefaultValidationRuleRequiredJson,

View file

@ -646,11 +646,11 @@ public class ListFormSeeder_Participant : IDataSeedContributor, ITransientDepend
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key="Kişisel",Name="Kişisel" }, new () { Key="Kişisel",Name="Kişisel" },
new () { Key="Fiyat / Bütçe",Name="Fiyat / Bütçe" }, 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="Rekabet",Name="Rekabet" },
new () { Key="Zamanlama",Name="Zamanlama" }, new () { Key="Zamanlama",Name="Zamanlama" },
new () { Key="Lokasyon",Name="Lokasyon" }, new () { Key="Lokasyon",Name="Lokasyon" },
new () { Key="İletişim",Name="İletişim" }, new () { Key="İletişim",Name=letişim" },
}), }),
}), }),
ColumnCustomizationJson = DefaultColumnCustomizationJson, 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 = 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 = 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 = 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 = 5, DataField = "TaxNumber", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxNumberBox },
new EditingFormItemDto { Order = 6, DataField = "TaxOffice", ColSpan = 1, EditorType2 = EditorTypes.dxTextBox }, new EditingFormItemDto { Order = 6, DataField = "TaxOffice", ColSpan = 1, EditorType2 = EditorTypes.dxTextBox },
@ -1552,19 +1552,7 @@ public class ListFormSeeder_SupplyChain : IDataSeedContributor, ITransientDepend
IsActive = true, IsActive = true,
IsDeleted = false, IsDeleted = false,
AllowSearch = true, AllowSearch = true,
LookupJson = JsonSerializer.Serialize(new LookupDto LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.SupplyType), "Id", "Name"),
{
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" },
}),
}),
ColumnCustomizationJson = DefaultColumnCustomizationJson, ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Supply), PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Supply),
PivotSettingsJson = DefaultPivotSettingsJson PivotSettingsJson = DefaultPivotSettingsJson
@ -1580,18 +1568,7 @@ public class ListFormSeeder_SupplyChain : IDataSeedContributor, ITransientDepend
IsActive = true, IsActive = true,
IsDeleted = false, IsDeleted = false,
AllowSearch = true, AllowSearch = true,
LookupJson = JsonSerializer.Serialize(new LookupDto LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.SupplyCardType), "Id", "Name"),
{
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" },
}),
}),
ColumnCustomizationJson = DefaultColumnCustomizationJson, ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Supply), PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Supply),
PivotSettingsJson = DefaultPivotSettingsJson PivotSettingsJson = DefaultPivotSettingsJson
@ -1613,9 +1590,9 @@ public class ListFormSeeder_SupplyChain : IDataSeedContributor, ITransientDepend
DisplayExpr = "name", DisplayExpr = "name",
ValueExpr = "key", ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new() { Key="Prospect", Name="Prospect" },
new() { Key="Active", Name="Active" }, new() { Key="Active", Name="Active" },
new() { Key="Inactive", Name="Inactive" }, new() { Key="Inactive", Name="Inactive" },
new() { Key="Prospect", Name="Prospect" },
new() { Key="Blocked", Name="Blocked" }, new() { Key="Blocked", Name="Blocked" },
}), }),
}), }),
@ -2438,7 +2415,7 @@ public class ListFormSeeder_SupplyChain : IDataSeedContributor, ITransientDepend
} }
#endregion #endregion
#region Approval Workflow #region Approval
if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == ListFormCodes.Lists.Approval)) if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == ListFormCodes.Lists.Approval))
{ {
var listForm = await _listFormRepository.InsertAsync( var listForm = await _listFormRepository.InsertAsync(
@ -2625,7 +2602,7 @@ public class ListFormSeeder_SupplyChain : IDataSeedContributor, ITransientDepend
#endregion #endregion
#region Approval Workflow Step #region Approval Step
if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == ListFormCodes.Lists.ApprovalStep)) if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == ListFormCodes.Lists.ApprovalStep))
{ {
var listForm = await _listFormRepository.InsertAsync( var listForm = await _listFormRepository.InsertAsync(

View file

@ -11,7 +11,7 @@ public class QuestionPool : FullAuditedEntity<Guid>, IMultiTenant
public string Name { get; set; } public string Name { get; set; }
public string Description { 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>(); public ICollection<Question> Questions { get; set; } = new List<Question>();

View file

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