Envanter -> Tanımlamalar kısmına Depolar, Konumlar
This commit is contained in:
parent
372c83e52d
commit
2a449a158d
16 changed files with 6650 additions and 12 deletions
|
|
@ -16113,6 +16113,216 @@
|
|||
"IsEnabled": true,
|
||||
"MultiTenancySide": 3,
|
||||
"Modules": "Prj"
|
||||
},
|
||||
{
|
||||
"GroupName": "App.Inventory",
|
||||
"Name": "App.Inventory.Warehouse",
|
||||
"ParentName": "App.Inventory.Definitions",
|
||||
"DisplayName": "App.Inventory.Warehouse",
|
||||
"Order": 7,
|
||||
"IsEnabled": true,
|
||||
"MultiTenancySide": 3,
|
||||
"Modules": "Inventory"
|
||||
},
|
||||
{
|
||||
"GroupName": "App.Inventory",
|
||||
"Name": "App.Inventory.Warehouse.Create",
|
||||
"ParentName": "App.Inventory.Warehouse",
|
||||
"DisplayName": "App.Platform.Create",
|
||||
"Order": 1,
|
||||
"IsEnabled": true,
|
||||
"MultiTenancySide": 3,
|
||||
"Modules": "Inventory"
|
||||
},
|
||||
{
|
||||
"GroupName": "App.Inventory",
|
||||
"Name": "App.Inventory.Warehouse.Update",
|
||||
"ParentName": "App.Inventory.Warehouse",
|
||||
"DisplayName": "App.Platform.Update",
|
||||
"Order": 2,
|
||||
"IsEnabled": true,
|
||||
"MultiTenancySide": 3,
|
||||
"Modules": "Inventory"
|
||||
},
|
||||
{
|
||||
"GroupName": "App.Inventory",
|
||||
"Name": "App.Inventory.Warehouse.Delete",
|
||||
"ParentName": "App.Inventory.Warehouse",
|
||||
"DisplayName": "App.Platform.Delete",
|
||||
"Order": 3,
|
||||
"IsEnabled": true,
|
||||
"MultiTenancySide": 3,
|
||||
"Modules": "Inventory"
|
||||
},
|
||||
{
|
||||
"GroupName": "App.Inventory",
|
||||
"Name": "App.Inventory.Warehouse.Export",
|
||||
"ParentName": "App.Inventory.Warehouse",
|
||||
"DisplayName": "App.Platform.Export",
|
||||
"Order": 4,
|
||||
"IsEnabled": true,
|
||||
"MultiTenancySide": 3,
|
||||
"Modules": "Inventory"
|
||||
},
|
||||
{
|
||||
"GroupName": "App.Inventory",
|
||||
"Name": "App.Inventory.Warehouse.Import",
|
||||
"ParentName": "App.Inventory.Warehouse",
|
||||
"DisplayName": "App.Platform.Import",
|
||||
"Order": 5,
|
||||
"IsEnabled": true,
|
||||
"MultiTenancySide": 3,
|
||||
"Modules": "Inventory"
|
||||
},
|
||||
{
|
||||
"GroupName": "App.Inventory",
|
||||
"Name": "App.Inventory.Warehouse.Note",
|
||||
"ParentName": "App.Inventory.Warehouse",
|
||||
"DisplayName": "App.Platform.Note",
|
||||
"Order": 6,
|
||||
"IsEnabled": true,
|
||||
"MultiTenancySide": 3,
|
||||
"Modules": "Inventory"
|
||||
},
|
||||
{
|
||||
"GroupName": "App.Inventory",
|
||||
"Name": "App.Inventory.Location",
|
||||
"ParentName": "App.Inventory.Definitions",
|
||||
"DisplayName": "App.Inventory.Location",
|
||||
"Order": 8,
|
||||
"IsEnabled": true,
|
||||
"MultiTenancySide": 3,
|
||||
"Modules": "Inventory"
|
||||
},
|
||||
{
|
||||
"GroupName": "App.Inventory",
|
||||
"Name": "App.Inventory.Location.Create",
|
||||
"ParentName": "App.Inventory.Location",
|
||||
"DisplayName": "App.Platform.Create",
|
||||
"Order": 1,
|
||||
"IsEnabled": true,
|
||||
"MultiTenancySide": 3,
|
||||
"Modules": "Inventory"
|
||||
},
|
||||
{
|
||||
"GroupName": "App.Inventory",
|
||||
"Name": "App.Inventory.Location.Update",
|
||||
"ParentName": "App.Inventory.Location",
|
||||
"DisplayName": "App.Platform.Update",
|
||||
"Order": 2,
|
||||
"IsEnabled": true,
|
||||
"MultiTenancySide": 3,
|
||||
"Modules": "Inventory"
|
||||
},
|
||||
{
|
||||
"GroupName": "App.Inventory",
|
||||
"Name": "App.Inventory.Location.Delete",
|
||||
"ParentName": "App.Inventory.Location",
|
||||
"DisplayName": "App.Platform.Delete",
|
||||
"Order": 3,
|
||||
"IsEnabled": true,
|
||||
"MultiTenancySide": 3,
|
||||
"Modules": "Inventory"
|
||||
},
|
||||
{
|
||||
"GroupName": "App.Inventory",
|
||||
"Name": "App.Inventory.Location.Export",
|
||||
"ParentName": "App.Inventory.Location",
|
||||
"DisplayName": "App.Platform.Export",
|
||||
"Order": 4,
|
||||
"IsEnabled": true,
|
||||
"MultiTenancySide": 3,
|
||||
"Modules": "Inventory"
|
||||
},
|
||||
{
|
||||
"GroupName": "App.Inventory",
|
||||
"Name": "App.Inventory.Location.Import",
|
||||
"ParentName": "App.Inventory.Location",
|
||||
"DisplayName": "App.Platform.Import",
|
||||
"Order": 5,
|
||||
"IsEnabled": true,
|
||||
"MultiTenancySide": 3,
|
||||
"Modules": "Inventory"
|
||||
},
|
||||
{
|
||||
"GroupName": "App.Inventory",
|
||||
"Name": "App.Inventory.Location.Note",
|
||||
"ParentName": "App.Inventory.Location",
|
||||
"DisplayName": "App.Platform.Note",
|
||||
"Order": 6,
|
||||
"IsEnabled": true,
|
||||
"MultiTenancySide": 3,
|
||||
"Modules": "Inventory"
|
||||
},
|
||||
{
|
||||
"GroupName": "App.Inventory",
|
||||
"Name": "App.Inventory.OperationType",
|
||||
"ParentName": "App.Inventory.Definitions",
|
||||
"DisplayName": "App.Inventory.OperationType",
|
||||
"Order": 9,
|
||||
"IsEnabled": true,
|
||||
"MultiTenancySide": 3,
|
||||
"Modules": "Inventory"
|
||||
},
|
||||
{
|
||||
"GroupName": "App.Inventory",
|
||||
"Name": "App.Inventory.OperationType.Create",
|
||||
"ParentName": "App.Inventory.OperationType",
|
||||
"DisplayName": "App.Platform.Create",
|
||||
"Order": 1,
|
||||
"IsEnabled": true,
|
||||
"MultiTenancySide": 3,
|
||||
"Modules": "Inventory"
|
||||
},
|
||||
{
|
||||
"GroupName": "App.Inventory",
|
||||
"Name": "App.Inventory.OperationType.Update",
|
||||
"ParentName": "App.Inventory.OperationType",
|
||||
"DisplayName": "App.Platform.Update",
|
||||
"Order": 2,
|
||||
"IsEnabled": true,
|
||||
"MultiTenancySide": 3,
|
||||
"Modules": "Inventory"
|
||||
},
|
||||
{
|
||||
"GroupName": "App.Inventory",
|
||||
"Name": "App.Inventory.OperationType.Delete",
|
||||
"ParentName": "App.Inventory.OperationType",
|
||||
"DisplayName": "App.Platform.Delete",
|
||||
"Order": 3,
|
||||
"IsEnabled": true,
|
||||
"MultiTenancySide": 3,
|
||||
"Modules": "Inventory"
|
||||
},
|
||||
{
|
||||
"GroupName": "App.Inventory",
|
||||
"Name": "App.Inventory.OperationType.Export",
|
||||
"ParentName": "App.Inventory.OperationType",
|
||||
"DisplayName": "App.Platform.Export",
|
||||
"Order": 4,
|
||||
"IsEnabled": true,
|
||||
"MultiTenancySide": 3,
|
||||
"Modules": "Inventory"
|
||||
},
|
||||
{
|
||||
"GroupName": "App.Inventory",
|
||||
"Name": "App.Inventory.OperationType.Import",
|
||||
"ParentName": "App.Inventory.OperationType",
|
||||
"DisplayName": "App.Platform.Import",
|
||||
"Order": 5,
|
||||
"IsEnabled": true,
|
||||
"MultiTenancySide": 3,
|
||||
"Modules": "Inventory"
|
||||
},
|
||||
{
|
||||
"GroupName": "App.Inventory",
|
||||
"Name": "App.Inventory.OperationType.Note",
|
||||
"ParentName": "App.Inventory.OperationType",
|
||||
"DisplayName": "App.Platform.Note",
|
||||
"Order": 6,
|
||||
"IsEnabled": true,
|
||||
"MultiTenancySide": 3,
|
||||
"Modules": "Inventory"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
36
configs/seeds/data/App.Inventory.Warehouse.json
Normal file
36
configs/seeds/data/App.Inventory.Warehouse.json
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
{
|
||||
"ListFormCode": "App.Inventory.Warehouse",
|
||||
"KeyFieldName": "Id",
|
||||
"GeneratedAt": "2026-10-09T08:29:55.6201049Z",
|
||||
"Order": 0,
|
||||
"Rows": [
|
||||
{
|
||||
"Name": "KADİFETEKS MENSUCAT SANAYİ A.Ş.",
|
||||
"Code": "WH",
|
||||
"BranchId": "1c125bf3-3ffd-4445-a270-1bc43ac3f61c",
|
||||
"IsActive": true,
|
||||
"Id": "89f31a2d-9cb5-97b5-740b-3a2431f55623"
|
||||
},
|
||||
{
|
||||
"Name": "Grup Şirketler",
|
||||
"Code": "GRP",
|
||||
"BranchId": "1c125bf3-3ffd-4445-a270-1bc43ac3f61c",
|
||||
"IsActive": true,
|
||||
"Id": "c27e0d96-e943-fe45-48f9-3a2431f55623"
|
||||
},
|
||||
{
|
||||
"Name": "İkitelli Fabrika",
|
||||
"Code": "IKT",
|
||||
"BranchId": "1c125bf3-3ffd-4445-a270-1bc43ac3f61c",
|
||||
"IsActive": true,
|
||||
"Id": "1840580a-7984-cb0a-4008-3a2431f55623"
|
||||
},
|
||||
{
|
||||
"Name": "Kuzuluk Fabrika",
|
||||
"Code": "KZL",
|
||||
"BranchId": "1c125bf3-3ffd-4445-a270-1bc43ac3f61c",
|
||||
"IsActive": true,
|
||||
"Id": "a729660b-5397-6019-1b2e-3a2431f55623"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -35228,6 +35228,20 @@
|
|||
"Key": "App.Listform.ListformField.Location",
|
||||
"Value": "Lokasyon"
|
||||
},
|
||||
{
|
||||
"Id": "8a1540c5-7744-52ea-a887-3ad9fffdd2e1",
|
||||
"CultureName": "en",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.Listform.ListformField.LocationCode",
|
||||
"Value": "Location Code"
|
||||
},
|
||||
{
|
||||
"Id": "05b99f2e-845f-5ca9-a86e-4463972c08d2",
|
||||
"CultureName": "tr",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.Listform.ListformField.LocationCode",
|
||||
"Value": "Lokasyon Kodu"
|
||||
},
|
||||
{
|
||||
"Id": "ad70f409-e4b8-5c30-82a8-b781fab7577a",
|
||||
"CultureName": "en",
|
||||
|
|
@ -92403,6 +92417,370 @@
|
|||
"ResourceName": "Platform",
|
||||
"Key": "App.Listform.ListformField.Actual",
|
||||
"Value": "Gerçek"
|
||||
},
|
||||
{
|
||||
"Id": "2703e48c-93fa-583f-88d5-8ee4a8ff2ddd",
|
||||
"CultureName": "en",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.Inventory.Warehouse",
|
||||
"Value": "Warehouses"
|
||||
},
|
||||
{
|
||||
"Id": "f22bc9a0-3a0b-5f56-8c87-4db49d7a99c4",
|
||||
"CultureName": "tr",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.Inventory.Warehouse",
|
||||
"Value": "Depolar"
|
||||
},
|
||||
{
|
||||
"Id": "119743d4-b560-5cdf-8652-f15e6744fb30",
|
||||
"CultureName": "en",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.Inventory.Warehouse.Title",
|
||||
"Value": "Warehouses"
|
||||
},
|
||||
{
|
||||
"Id": "4671a210-d344-509a-b713-b2a088be9d82",
|
||||
"CultureName": "tr",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.Inventory.Warehouse.Title",
|
||||
"Value": "Depolar"
|
||||
},
|
||||
{
|
||||
"Id": "f7adfb68-039d-55a6-872b-db0da50ae265",
|
||||
"CultureName": "en",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.Inventory.Warehouse.Desc",
|
||||
"Value": "Warehouses — physical places where stock is kept, each bound to a branch.\nWhere: Inventory › Definitions › Warehouses.\nFields: warehouse name, warehouse code (unique within the tenant), branch, active.\nUsed by: Inventory › Definitions › Locations and Operation Types select a warehouse filtered by branch. Do not delete a warehouse that has locations or operation types; set it passive instead."
|
||||
},
|
||||
{
|
||||
"Id": "09b83cc4-3f49-586b-b0fc-300d06717dc8",
|
||||
"CultureName": "tr",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.Inventory.Warehouse.Desc",
|
||||
"Value": "Depolar — stoğun fiziksel olarak tutulduğu yerler; her depo bir şubeye bağlıdır.\nNerede: Envanter › Tanımlamalar › Depolar.\nAlanlar: depo adı, depo kodu (kiracı içinde tekil), şube, aktif.\nKullanıldığı yer: Envanter › Tanımlamalar › Konumlar ve Operasyon Türleri şubeye göre süzülen depo seçer. Konumu ya da operasyon türü olan depoyu silmeyin; pasife alın."
|
||||
},
|
||||
{
|
||||
"Id": "a6f782df-3267-5e20-a39c-a82da7791d4e",
|
||||
"CultureName": "en",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.Listform.ListformField.WarehouseName",
|
||||
"Value": "Warehouse Name"
|
||||
},
|
||||
{
|
||||
"Id": "b1b5adfa-3c0e-5bb8-9eeb-f2448f136bc3",
|
||||
"CultureName": "tr",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.Listform.ListformField.WarehouseName",
|
||||
"Value": "Depo Adı"
|
||||
},
|
||||
{
|
||||
"Id": "2f52b130-2e08-5f31-aa4a-6aedd7bae2ef",
|
||||
"CultureName": "en",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.Listform.ListformField.WarehouseCode",
|
||||
"Value": "Warehouse Code"
|
||||
},
|
||||
{
|
||||
"Id": "434411e1-5956-5a93-bee0-2afa95951827",
|
||||
"CultureName": "tr",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.Listform.ListformField.WarehouseCode",
|
||||
"Value": "Depo Kodu"
|
||||
},
|
||||
{
|
||||
"Id": "f7944cdd-4dfd-5f8a-a8df-f96c017e3a92",
|
||||
"CultureName": "en",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.Listform.ListformField.BranchName",
|
||||
"Value": "Branch Name"
|
||||
},
|
||||
{
|
||||
"Id": "f8c5cd51-264d-561b-b28c-511703276db0",
|
||||
"CultureName": "tr",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.Listform.ListformField.BranchName",
|
||||
"Value": "Şube Adı"
|
||||
},
|
||||
{
|
||||
"Id": "f8a954fa-184e-5545-8a49-b96c9c1cc094",
|
||||
"CultureName": "en",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.Inventory.Location",
|
||||
"Value": "Locations"
|
||||
},
|
||||
{
|
||||
"Id": "7bd8ffed-5175-51ac-b73d-0bdbc4c4d6aa",
|
||||
"CultureName": "tr",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.Inventory.Location",
|
||||
"Value": "Konumlar"
|
||||
},
|
||||
{
|
||||
"Id": "4b04dd67-b523-58f7-8cb6-4eac51cad957",
|
||||
"CultureName": "en",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.Inventory.Location.Title",
|
||||
"Value": "Locations"
|
||||
},
|
||||
{
|
||||
"Id": "3ea4a569-0fa5-5cad-b2de-223a7e7bc6fe",
|
||||
"CultureName": "tr",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.Inventory.Location.Title",
|
||||
"Value": "Konumlar"
|
||||
},
|
||||
{
|
||||
"Id": "5c6bdc68-6a9f-5d92-aa58-670432742fd9",
|
||||
"CultureName": "en",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.Inventory.Location.Desc",
|
||||
"Value": "Locations — nested storage locations defined per branch and warehouse (e.g. GRP › Stock › Main Depot AB07).\nWhere: Inventory › Definitions › Locations; opens as a tree built on the parent location.\nFields: branch, warehouse (filtered by branch), parent location (filtered by warehouse, empty for root), code, name, location type (Internal / External), department, responsible user, active.\nUsed by: Inventory › Definitions › Operation Types (source and destination location). Changing the branch clears warehouse, parent and department."
|
||||
},
|
||||
{
|
||||
"Id": "693dfb4d-09c1-505a-b8d6-5ef4948e0f7d",
|
||||
"CultureName": "tr",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.Inventory.Location.Desc",
|
||||
"Value": "Konumlar — şube ve depo bazında iç içe tanımlanan stok konumları (ör. GRP › Stock › Ana Depo AB07).\nNerede: Envanter › Tanımlamalar › Konumlar; üst konum üzerinden ağaç olarak açılır.\nAlanlar: şube, depo (şubeye göre süzülür), üst konum (depoya göre süzülür, kökte boş), kod, ad, konum türü (İç / Dış), departman, depo sorumlusu, aktif.\nKullanıldığı yer: Envanter › Tanımlamalar › Operasyon Türleri (kaynak ve hedef konum). Şube değişince depo, üst konum ve departman temizlenir."
|
||||
},
|
||||
{
|
||||
"Id": "9fde1d00-55d5-5981-b7fd-742440c5153e",
|
||||
"CultureName": "en",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.Listform.ListformField.WarehouseResponsible",
|
||||
"Value": "Warehouse Responsible"
|
||||
},
|
||||
{
|
||||
"Id": "cea82a89-40e2-529f-8f82-dab76cce8851",
|
||||
"CultureName": "tr",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.Listform.ListformField.WarehouseResponsible",
|
||||
"Value": "Depo Sorumlusu"
|
||||
},
|
||||
{
|
||||
"Id": "8625fb1d-2d6d-5907-881c-a7a78ae182f6",
|
||||
"CultureName": "en",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.Listform.ListformField.LocationType",
|
||||
"Value": "Location Type"
|
||||
},
|
||||
{
|
||||
"Id": "05cc2993-c5c8-5e59-81bd-a28a4b1e7d65",
|
||||
"CultureName": "tr",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.Listform.ListformField.LocationType",
|
||||
"Value": "Konum Türü"
|
||||
},
|
||||
{
|
||||
"Id": "774a0d3d-2763-545b-93e5-da80dac99988",
|
||||
"CultureName": "en",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.Listform.ListformField.Warehouse",
|
||||
"Value": "Warehouse"
|
||||
},
|
||||
{
|
||||
"Id": "eab78b58-fdf4-5a07-8152-2be547e3704b",
|
||||
"CultureName": "tr",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.Listform.ListformField.Warehouse",
|
||||
"Value": "Depo"
|
||||
},
|
||||
{
|
||||
"Id": "9616190a-97f9-5273-9b55-e325bee7f743",
|
||||
"CultureName": "en",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.Listform.ListformField.ParentLocation",
|
||||
"Value": "Parent Location"
|
||||
},
|
||||
{
|
||||
"Id": "00ff84f4-fe27-566a-8660-3027133dd8a6",
|
||||
"CultureName": "tr",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.Listform.ListformField.ParentLocation",
|
||||
"Value": "Üst Lokasyon"
|
||||
},
|
||||
{
|
||||
"Id": "959b8e88-4ade-5a73-8ff1-d525de7d46cc",
|
||||
"CultureName": "en",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.Inventory.OperationType",
|
||||
"Value": "Operation Types"
|
||||
},
|
||||
{
|
||||
"Id": "13ae2233-0bf4-57e4-9cfe-293bb630550c",
|
||||
"CultureName": "tr",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.Inventory.OperationType",
|
||||
"Value": "Operasyon Türleri"
|
||||
},
|
||||
{
|
||||
"Id": "143d3055-518c-548b-8027-13b8f939bc58",
|
||||
"CultureName": "en",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.Inventory.OperationType.Title",
|
||||
"Value": "Operation Types"
|
||||
},
|
||||
{
|
||||
"Id": "218f9b1d-f969-5095-9319-5dd3748b3543",
|
||||
"CultureName": "tr",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.Inventory.OperationType.Title",
|
||||
"Value": "Operasyon Türleri"
|
||||
},
|
||||
{
|
||||
"Id": "3b3c1593-a2d4-55de-a3b7-cae43d846300",
|
||||
"CultureName": "en",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.Inventory.OperationType.Desc",
|
||||
"Value": "Operation Types — stock operation types defined per branch and warehouse (e.g. Receipts, Deliveries, Internal Transfers).\nWhere: Inventory › Definitions › Operation Types.\nFields: operation type name, type (Receipt / Delivery / Internal Transfer / Manufacturing / Repair), branch, warehouse (filtered by branch), sequence prefix, barcode, default source and destination locations (filtered by warehouse), active.\nUsed by: stock movement documents pick their type from here. Changing the branch clears warehouse and locations."
|
||||
},
|
||||
{
|
||||
"Id": "4b719197-c5b3-58ae-81ba-f9bec2c2b631",
|
||||
"CultureName": "tr",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.Inventory.OperationType.Desc",
|
||||
"Value": "Operasyon Türleri — şube ve depo bazında tanımlanan stok operasyon türleri (ör. Alımlar, Teslimatlar, İç Transferler).\nNerede: Envanter › Tanımlamalar › Operasyon Türleri.\nAlanlar: operasyon türü adı, tür (Alım / Teslimat / İç Transfer / Üretim / Onarım), şube, depo (şubeye göre süzülür), sıra öneki, barkod, varsayılan kaynak ve hedef konum (depoya göre süzülür), aktif.\nKullanıldığı yer: stok hareket belgeleri türünü buradan seçer. Şube değişince depo ve konumlar temizlenir."
|
||||
},
|
||||
{
|
||||
"Id": "5dc6bd0a-b938-54cf-95f1-80ad873bd874",
|
||||
"CultureName": "en",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.StaticLookup.Receipt",
|
||||
"Value": "Receipt"
|
||||
},
|
||||
{
|
||||
"Id": "8fe85150-5074-5890-8572-46b62456f024",
|
||||
"CultureName": "tr",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.StaticLookup.Receipt",
|
||||
"Value": "Alım"
|
||||
},
|
||||
{
|
||||
"Id": "05f7523a-a649-5b7a-a8d9-792d85c96c56",
|
||||
"CultureName": "en",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.StaticLookup.Delivery",
|
||||
"Value": "Delivery"
|
||||
},
|
||||
{
|
||||
"Id": "c1b396b1-8ed6-5ff4-9a32-fde2f27f109e",
|
||||
"CultureName": "tr",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.StaticLookup.Delivery",
|
||||
"Value": "Teslimat"
|
||||
},
|
||||
{
|
||||
"Id": "da59c552-24c5-56b9-bfcf-e535bb4727ba",
|
||||
"CultureName": "en",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.StaticLookup.InternalTransfer",
|
||||
"Value": "Internal Transfer"
|
||||
},
|
||||
{
|
||||
"Id": "4616f6ba-b384-5bb8-b35e-5a753edcb9ab",
|
||||
"CultureName": "tr",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.StaticLookup.InternalTransfer",
|
||||
"Value": "İç Transfer"
|
||||
},
|
||||
{
|
||||
"Id": "6522fd12-870d-58de-87df-5f136eda83ea",
|
||||
"CultureName": "en",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.StaticLookup.Manufacturing",
|
||||
"Value": "Manufacturing"
|
||||
},
|
||||
{
|
||||
"Id": "6a7875c4-00d4-54ee-8d86-61895fee910d",
|
||||
"CultureName": "tr",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.StaticLookup.Manufacturing",
|
||||
"Value": "Üretim"
|
||||
},
|
||||
{
|
||||
"Id": "efd07d8e-20ab-56e5-be28-d48af6c36d49",
|
||||
"CultureName": "en",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.StaticLookup.Repair",
|
||||
"Value": "Repair"
|
||||
},
|
||||
{
|
||||
"Id": "80054947-d783-582c-90a5-8cae2083730e",
|
||||
"CultureName": "tr",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.StaticLookup.Repair",
|
||||
"Value": "Onarım"
|
||||
},
|
||||
{
|
||||
"Id": "26d5ed92-f768-5b24-9658-3360005a7290",
|
||||
"CultureName": "en",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.Listform.ListformField.OperationTypeName",
|
||||
"Value": "Operation Type"
|
||||
},
|
||||
{
|
||||
"Id": "fab904f1-6557-5736-8f89-297ff264ed56",
|
||||
"CultureName": "tr",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.Listform.ListformField.OperationTypeName",
|
||||
"Value": "Operasyon Türü"
|
||||
},
|
||||
{
|
||||
"Id": "0c47de7d-2967-5dee-9afb-4fed27c91d22",
|
||||
"CultureName": "en",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.Listform.ListformField.OperationKind",
|
||||
"Value": "Kind"
|
||||
},
|
||||
{
|
||||
"Id": "c7250e62-b7f5-55b3-9fe5-f1c6dc4e48e8",
|
||||
"CultureName": "tr",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.Listform.ListformField.OperationKind",
|
||||
"Value": "Tür"
|
||||
},
|
||||
{
|
||||
"Id": "a7dc1058-63c0-5cb9-9fef-b500641301e7",
|
||||
"CultureName": "en",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.Listform.ListformField.SequencePrefix",
|
||||
"Value": "Sequence Prefix"
|
||||
},
|
||||
{
|
||||
"Id": "095805ef-5df8-578d-992e-be1d59398d59",
|
||||
"CultureName": "tr",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.Listform.ListformField.SequencePrefix",
|
||||
"Value": "Sıra Öneki"
|
||||
},
|
||||
{
|
||||
"Id": "0325196f-c464-563d-ad35-735a6d922af0",
|
||||
"CultureName": "en",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.Listform.ListformField.SourceLocation",
|
||||
"Value": "Source Location"
|
||||
},
|
||||
{
|
||||
"Id": "09f6024f-3162-5128-9cc6-663072923feb",
|
||||
"CultureName": "tr",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.Listform.ListformField.SourceLocation",
|
||||
"Value": "Kaynak Konum"
|
||||
},
|
||||
{
|
||||
"Id": "9d6169e0-93cd-59df-a04b-a6781269e706",
|
||||
"CultureName": "en",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.Listform.ListformField.DestinationLocation",
|
||||
"Value": "Destination Location"
|
||||
},
|
||||
{
|
||||
"Id": "cb8814d8-afca-5734-89ff-bd74c465bbbf",
|
||||
"CultureName": "tr",
|
||||
"ResourceName": "Platform",
|
||||
"Key": "App.Listform.ListformField.DestinationLocation",
|
||||
"Value": "Hedef Konum"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2763,6 +2763,39 @@
|
|||
"IsDisabled": false,
|
||||
"ElementId": null,
|
||||
"ModuleId": "Prj"
|
||||
},
|
||||
{
|
||||
"ParentCode": "App.Inventory.Definitions",
|
||||
"Code": "App.Inventory.Warehouse",
|
||||
"DisplayName": "App.Inventory.Warehouse",
|
||||
"Order": 7,
|
||||
"Url": "/admin/list/App.Inventory.Warehouse",
|
||||
"Icon": "FcHome",
|
||||
"RequiredPermissionName": "App.Inventory.Warehouse",
|
||||
"IsDisabled": false,
|
||||
"ModuleId": "Inventory"
|
||||
},
|
||||
{
|
||||
"ParentCode": "App.Inventory.Definitions",
|
||||
"Code": "App.Inventory.Location",
|
||||
"DisplayName": "App.Inventory.Location",
|
||||
"Order": 8,
|
||||
"Url": "/admin/list/App.Inventory.Location",
|
||||
"Icon": "FcTreeStructure",
|
||||
"RequiredPermissionName": "App.Inventory.Location",
|
||||
"IsDisabled": false,
|
||||
"ModuleId": "Inventory"
|
||||
},
|
||||
{
|
||||
"ParentCode": "App.Inventory.Definitions",
|
||||
"Code": "App.Inventory.OperationType",
|
||||
"DisplayName": "App.Inventory.OperationType",
|
||||
"Order": 9,
|
||||
"Url": "/admin/list/App.Inventory.OperationType",
|
||||
"Icon": "FcProcess",
|
||||
"RequiredPermissionName": "App.Inventory.OperationType",
|
||||
"IsDisabled": false,
|
||||
"ModuleId": "Inventory"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
### 1. Amaç ve kapsam
|
||||
|
||||
Envanterin ana verisi: ürün kartı (satış/masraf/satınalma bayrakları, mal/hizmet, envanter takibi ve yöntemi, nitelik–varyant, tedarikçi fiyatları, stok ve muhasebe bilgileri), ölçü birimine bağlı reçeteler (bileşen + operasyon; ürün ya da varyant bazında) ve çok seviyeli reçete patlatma raporu. İş merkezleri ve operasyonlar Üretim modülündedir ([App.Production.md](App.Production.md)). Kullanıcılar: stok, satınalma ve üretim planlama ekipleri. Stok hareketi, sipariş ve üretim emri bu dalın kapsamı dışındadır.
|
||||
Envanterin ana verisi: ürün kartı (satış/masraf/satınalma bayrakları, mal/hizmet, envanter takibi ve yöntemi, nitelik–varyant, tedarikçi fiyatları, stok ve muhasebe bilgileri), ölçü birimine bağlı reçeteler (bileşen + operasyon; ürün ya da varyant bazında), çok seviyeli reçete patlatma raporu ve fiziksel stok yapısı: şubeye bağlı depolar, depolarda iç içe konumlar, şube/depo bazında operasyon türleri. İş merkezleri ve operasyonlar Üretim modülündedir ([App.Production.md](App.Production.md)). Kullanıcılar: stok, satınalma ve üretim planlama ekipleri. Stok hareketi, sipariş ve üretim emri bu dalın kapsamı dışındadır.
|
||||
|
||||
### 2. Analiz ve kararlar
|
||||
|
||||
|
|
@ -22,23 +22,35 @@ Onaylanan analiz (talep "Inventory -> Tanımlamalar"):
|
|||
- Haftalık çalışma saati ayardan (`%WeeklyWorkingTimeLimit%`) okunur, yoksa 40 (onaylı).
|
||||
- Reçete patlatmada alt reçete: önce bileşenin varyantına özel, yoksa genel; birden fazlaysa en eski oluşturulan.
|
||||
|
||||
Onaylanan analiz (talep "Envanter -> Tanımlamalar"):
|
||||
|
||||
- Depolar, Konumlar, Operasyon Türleri üç ayrı liste ekranı; tablolar `Inv_T_Warehouse`, `Inv_T_Location`, `Inv_T_OperationType`.
|
||||
- Şube platform şube filtresiyle değil kolonla tutulur (`IsBranch = false`, `BranchId` → `Sas_T_Branch`): talep Şube Adı'nı listede görünen, seçilen alan olarak istedi. Görsellerdeki "Firma" sütunu Şube'ye karşılık gelir.
|
||||
- Konum ve Operasyon Türü'nde şube ayrıca tutulur ("şube ve depo bazında"); depo listesini süzer.
|
||||
- Konumlar'da Malzeme Türü ve Depolama Kategorisi alınmadı (talepte yok, kaynak tablo yok). Operasyon Türü'nde yalnız Genel sekmesinin çekirdek alanları alındı; Donanım, Barkod Uygulaması, lot/seri, paket, iade türü, kart rengi kapsam dışı.
|
||||
- Depolar demo verisi: görseldeki 4 depo (WH, GRP, IKT, KZL), ilk aktif şubeye (Branch1) bağlı (onaylı).
|
||||
|
||||
Üretimde verilen ek kararlar:
|
||||
|
||||
- Query kaynağı türetilmiş tabloya (`FROM (…) AS "Q"`) sarıldığı için özyinelemeli CTE kullanılamaz. Varyant kartezyeni ürün başına en fazla **5 nitelik**, reçete patlatma en fazla **4 bileşen seviyesi** ile sabit derinlikli birleşimlerle kuruldu; derinlik sınırı döngü korumasıdır.
|
||||
- Genel Bakış'ta kök reçete satırının maliyeti boştur; maliyetler bileşen ve operasyon satırlarındadır.
|
||||
- Depo kodu tekilliği `UQ_Inv_T_Warehouse_TenantId_Code` kısıtıyla sağlanır (ayrı InsertBefore kontrolü yazılmadı; aynı kod kaydedilirken veritabanı hatası döner).
|
||||
- `Inv_T_Location`'da `WarehouseId`/`ParentId`/`DepartmentId` için FK yazılmadı: migrate scriptleri dosya adı sırasıyla çalışır ve `Inv_T_Location` `Inv_T_Warehouse`'tan önce sıralanır. Bütünlük lookup'larla korunur; `Inv_T_OperationType` → `Inv_T_Location` FK'leri vardır.
|
||||
|
||||
### 3. Menü ve ekranlar
|
||||
|
||||
`Envanter (App.Inventory) › Tanımlamalar (App.Inventory.Definitions)` altında sırasıyla: Ürün Kategorileri, Nitelikler, Ürünler, Ürün Varyantları, Reçeteler, Reçeteye Genel Bakış.
|
||||
`Envanter (App.Inventory) › Tanımlamalar (App.Inventory.Definitions)` altında sırasıyla: Ürün Kategorileri, Nitelikler, Ürünler, Ürün Varyantları, Reçeteler, Reçeteye Genel Bakış, Depolar, Konumlar, Operasyon Türleri.
|
||||
|
||||
Sekmeler (menüsüz alt formlar):
|
||||
- Nitelikler › Nitelik Değerleri
|
||||
- Reçeteler › Bileşenler, Operasyonlar, Diğer (aynı satır), Genel Bakış (menülü, Tree)
|
||||
- Ürünler › Genel Bilgi, Stok, Muhasebe (aynı satır), Nitelik & Varyantlar, Varyantlar (menülü, salt okunur), Satınalma, Reçeteler (menülü)
|
||||
|
||||
Konumlar ağaç görünümüyle açılır (`ParentId`); Grid'e geçilebilir.
|
||||
|
||||
### 4. Veri modeli
|
||||
|
||||
Tüm tablolar kiracı + tam audit + soft delete, anahtar `Id uniqueidentifier`. Birim kolonları `nvarchar(64)` → `Adm_T_Uom.Id`; tedarikçi → `Adm_T_Contact`; para birimi → `Sas_H_Currency`; menşe → `Sas_H_Country`; sorumlu → `AbpUsers`.
|
||||
Tüm tablolar kiracı + tam audit + soft delete, anahtar `Id uniqueidentifier`. Birim kolonları `nvarchar(64)` → `Adm_T_Uom.Id`; tedarikçi → `Adm_T_Contact`; para birimi → `Sas_H_Currency`; menşe → `Sas_H_Country`; sorumlu → `AbpUsers`; şube → `Sas_T_Branch`.
|
||||
|
||||
| Tablo | İçerik |
|
||||
| --- | --- |
|
||||
|
|
@ -48,6 +60,9 @@ Tüm tablolar kiracı + tam audit + soft delete, anahtar `Id uniqueidentifier`.
|
|||
| `Inv_T_ProductAttributeLine` | Ürün × nitelik, `ValueIds` (`|` ayrımlı değer Id) |
|
||||
| `Inv_T_ProductSupplier` | Tedarikçi, min. miktar, birim, fiyat, kur, teslim süresi, varyant |
|
||||
| `Inv_T_Bom` / `Inv_T_BomComponent` / `Inv_T_BomOperation` | Reçete başlığı (ürün, varyant, miktar, birim, planlama), bileşenler (operasyona bağlanabilir), operasyonlar (iş merkezi `Prd_T_WorkCenter`, operasyon `Prd_T_Operation`, süre) |
|
||||
| `Inv_T_Warehouse` | Şube, kod (kiracı içinde tekil, 16), ad, aktif |
|
||||
| `Inv_T_Location` | Şube, depo, üst konum, kod (32), ad, konum türü (`Internal`/`External`), departman (`Hr_T_Department`), depo sorumlusu, aktif |
|
||||
| `Inv_T_OperationType` | Şube, depo, ad, tür (`Receipt`/`Delivery`/`InternalTransfer`/`Manufacturing`/`Repair`), sıra öneki, barkod, kaynak ve hedef konum, aktif |
|
||||
|
||||
### 5. İş kuralları ve hesaplar
|
||||
|
||||
|
|
@ -58,14 +73,16 @@ Tüm tablolar kiracı + tam audit + soft delete, anahtar `Id uniqueidentifier`.
|
|||
- **Reçete bileşeni:** ürün seçilince birim üründen dolar.
|
||||
- **Reçete operasyonu:** operasyon seçilince iş merkezi ve varsayılan süre dolar.
|
||||
- **Çoklu değer alanları** (`dxTagBox`) `|` ile ayrılmış metin kolonunda saklanır.
|
||||
- **Şube › depo › konum zinciri:** Konum ve Operasyon Türü formunda depo seçili şubenin aktif depolarına, üst/kaynak/hedef konum seçili deponun konumlarına, departman seçili şubenin departmanlarına süzülür. Şube değişince depo, konum ve departman; depo değişince konum alanları temizlenir.
|
||||
- **Varsayılanlar:** yeni konumda tür İç, yeni operasyon türünde tür Alım, tüm yeni tanımlarda Aktif işaretli.
|
||||
|
||||
### 6. Yetki ve görünürlük
|
||||
|
||||
İzin grubu `App.Inventory`. Her ekranın okuma yetkisi `App.Inventory.Definitions` altında; alt formların yetkisi bağlı oldukları listenin altındadır. Her listede `.Create/.Update/.Delete/.Export/.Import/.Note`. Yetkiler hiçbir role otomatik verilmez. Yeni sekmelerin yetkisi role verilmeden sekmeler boş görünür. Tüm ekranlar kiracı filtrelidir.
|
||||
İzin grubu `App.Inventory`. Her ekranın okuma yetkisi `App.Inventory.Definitions` altında; alt formların yetkisi bağlı oldukları listenin altındadır. Her listede `.Create/.Update/.Delete/.Export/.Import/.Note`. Yetkiler hiçbir role otomatik verilmez. Yeni sekmelerin yetkisi role verilmeden sekmeler boş görünür. Tüm ekranlar kiracı filtrelidir. Depolar, Konumlar ve Operasyon Türleri platform şube filtresi kullanmaz; kullanıcı yetkisi olan her ekranda kiracının tüm şubelerinin kayıtlarını görür.
|
||||
|
||||
### 7. Entegrasyonlar
|
||||
|
||||
Dış entegrasyon yok. Reçete operasyonları iş merkezi ve operasyonu Üretim modülünden okur; Üretim de ürün ve nitelik değerlerini buradan okur. Ölçü Birimleri, Kontaklar, Para Birimleri, Ülkeler ve Kullanıcılar yalnız lookup kaynağıdır. Satış ve satınalma sipariş ekranları ürünü `CanBeSold` / `CanBePurchased` ile süzecek; bu dalda sipariş ekranı yoktur.
|
||||
Dış entegrasyon yok. Reçete operasyonları iş merkezi ve operasyonu Üretim modülünden okur; Üretim de ürün ve nitelik değerlerini buradan okur. Ölçü Birimleri, Kontaklar, Para Birimleri, Ülkeler, Şubeler, Departmanlar ve Kullanıcılar yalnız lookup kaynağıdır. Satış ve satınalma sipariş ekranları ürünü `CanBeSold` / `CanBePurchased` ile süzecek; stok hareket belgeleri operasyon türünü ve konumları bu daldan seçecek; bu dalda sipariş ve hareket ekranı yoktur.
|
||||
|
||||
### 8. Akış örneği
|
||||
|
||||
|
|
@ -75,22 +92,28 @@ Dış entegrasyon yok. Reçete operasyonları iş merkezi ve operasyonu Üretim
|
|||
4. Ürünler'de "(40X40mm) Mamül Sepeti Üst Geçme Kepi" › Nitelik & Varyantlar sekmesine üç niteliği ekle. Varyantlar sekmesinde 12 kombinasyon görünür.
|
||||
5. Reçeteler'de kep için 1 Adet reçete aç. Bileşenler'e 20 Adet AUTONİCS PR12-4DN Sensör, Operasyonlar'a Apre ekle.
|
||||
6. Genel Bakış sekmesi ağacı ve maliyetleri gösterir.
|
||||
7. Depolar'da "Grup Şirketler" (GRP) deposunu şubeye bağla.
|
||||
8. Konumlar'da GRP için "Stock" kök konumunu, altına "ALDORA MOBİLYA G/Ç" (kod GRP ALD, departman, sorumlu), onun altına "ANA DEPO AB07" konumunu İç türüyle gir; ağaç üç seviye gösterir.
|
||||
9. Operasyon Türleri'nde GRP için "Alımlar" (tür Alım, sıra öneki GRP/IN/, hedef konum Stock) tanımla.
|
||||
|
||||
### 9. Sık sorulanlar
|
||||
|
||||
- **Varyant neden kayboldu?** Nitelik satırından değer ya da nitelik silinirse kombinasyon ve anahtarı değişir. O varyantı kullanan reçete ve tedarikçi satırlarının varyantı yeniden seçilmelidir.
|
||||
- **Genel Bakış'ta alt seviye görünmüyor?** Bileşenin aktif ve miktarı > 0 bir reçetesi olmalıdır. 4 seviyeden derin yapılar gösterilmez.
|
||||
- **Kaç nitelik desteklenir?** Ürün başına 5. Fazlası varyant listesine katılmaz.
|
||||
- **Form açılınca Aktif kutusu boş geliyor?** Form varsayılanları wizard deploy'unda yazılamadı (bkz. 10). Kayıtta kutu işaretlenmelidir; tablo varsayılanları yalnızca alan gönderilmezse uygulanır.
|
||||
- **Form açılınca Aktif kutusu boş geliyor?** Eski ürün ekranlarında form varsayılanları wizard deploy'unda yazılamadı (bkz. 10). Kayıtta kutu işaretlenmelidir. Depolar, Konumlar ve Operasyon Türleri'nde varsayılan tablodan okunur.
|
||||
- **Depo seçimi boş geliyor?** Önce şube seçilmelidir; depo listesi şubeye göre süzülür ve yalnız aktif depolar gelir.
|
||||
- **Aynı depo kodu kaydedilemiyor?** Depo kodu kiracı içinde tekildir; silinen (soft delete) bir deponun kodu da tekrar kullanılamaz.
|
||||
- **Depo ya da konum silinebilir mi?** Konumu veya operasyon türü olan depoyu, alt konumu olan konumu silmeyin; pasife alın.
|
||||
|
||||
### 10. Dosyalar ve geri alma
|
||||
|
||||
- **Tablolar:** `sql/object/Inv_T_*.sql` (9 tablo).
|
||||
- **Wizard'lar:** ProductCategory, Attribute, AttributeValue, ProductVariant, BomOverview, Bom, BomComponent, BomOperation, BomOther, Product, ProductGeneral, ProductAttributeLine, ProductSupplier, ProductStock, ProductAccounting (`.json`).
|
||||
- **Demo veri aynaları:** `data/App.Inventory.{ProductCategory,Attribute,Product}.json`.
|
||||
- **Geri alma:** Wizard Manager'da ana ekranlar (Product, Bom, Attribute) önce, alt formları sonra silinir. Tablolar ancak açık onayla `dropTables` ile düşürülür.
|
||||
- **Tablolar:** `sql/object/Inv_T_*.sql` (12 tablo; bu talepte `Inv_T_Warehouse`, `Inv_T_Location`, `Inv_T_OperationType`).
|
||||
- **Wizard'lar:** ProductCategory, Attribute, AttributeValue, ProductVariant, BomOverview, Bom, BomComponent, BomOperation, BomOther, Product, ProductGeneral, ProductAttributeLine, ProductSupplier, ProductStock, ProductAccounting, Warehouse, Location, OperationType (`.json`).
|
||||
- **Demo veri aynaları:** `data/App.Inventory.{ProductCategory,Attribute,Product,Warehouse}.json`.
|
||||
- **Geri alma:** Wizard Manager'da ana ekranlar (Product, Bom, Attribute) önce, alt formları sonra silinir. Depolar/Konumlar/Operasyon Türleri bağımsızdır; tablo düşürülecekse sıra OperationType → Location → Warehouse (FK). Tablolar ancak açık onayla `dropTables` ile düşürülür.
|
||||
- **Sorgu bağımlılığı:** Sorgular SQL Server'a özgüdür (`STRING_SPLIT`, `CONCAT_WS`, `STRING_AGG`, `CROSS APPLY`).
|
||||
- **Açık nokta:** Form varsayılanları (Aktif = true, Birim = Adet, Miktar = 1, Süre = 60, Kur = TRY) düz wizard biçimiyle dosyaya yazılmadı. ListForm düzenleyicisinden ya da `ListForm` bölümlü yeniden deploy ile eklenmelidir.
|
||||
- **Açık nokta:** Eski ürün ekranlarının form varsayılanları (Aktif = true, Birim = Adet, Miktar = 1, Süre = 60, Kur = TRY) düz wizard biçimiyle dosyaya yazılmadı. ListForm düzenleyicisinden ya da `ListForm` bölümlü yeniden deploy ile eklenmelidir.
|
||||
|
||||
<!-- module-doc:auto:begin -->
|
||||
## Ek — Ekran envanteri (otomatik)
|
||||
|
|
@ -269,6 +292,89 @@ Dış entegrasyon yok. Reçete operasyonları iş merkezi ve operasyonu Üretim
|
|||
| `BomId` | Reçete | dxTextBox | | | |
|
||||
| `IsDeleted` | Silindi | dxCheckBox | | | |
|
||||
|
||||
#### Depolar — `App.Inventory.Warehouse`
|
||||
|
||||
| Özellik | Değer |
|
||||
| --- | --- |
|
||||
| Wizard | `wizard/Warehouse.json` |
|
||||
| Yol | Liste (Wizard) |
|
||||
| Menü | `App.Inventory.Definitions` › `App.Inventory.Warehouse` (sıra 7) |
|
||||
| Yetki | `App.Inventory.Warehouse` + `.Create`, `.Update`, `.Delete`, `.Export`, `.Import`, `.Note` |
|
||||
| Açıklama | Depolar — stoğun fiziksel olarak tutulduğu yerler; her depo bir şubeye bağlıdır. |
|
||||
| Geliştirme talebi | Envanter -> Tanımlamalar |
|
||||
| Kaynak | `Inv_T_Warehouse` · filtre `"IsDeleted" = 'false'` |
|
||||
| Görünümler | Grid, Card, Pivot, Chart (açılış grid) |
|
||||
| Düzenleme | ekle ✓ · düzenle ✓ · sil ✓ · popup |
|
||||
| Kapsam | Kiracı |
|
||||
| Widget'lar | `App.Widget.Total`, `App.Widget.Active`, `App.Widget.Passive` |
|
||||
| Form varsayılanları | IsActive=true |
|
||||
| Veri aynası | `data/App.Inventory.Warehouse.json` |
|
||||
|
||||
| Alan | Başlık | Editör | Zorunlu | Formda | Kaynak |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| `BranchId` | Şube Adı | dxSelectBox | ✓ | ✓ | sorgu: Sas_T_Branch |
|
||||
| `Code` | Depo Kodu | dxTextBox | ✓ | ✓ | |
|
||||
| `Name` | Depo Adı | dxTextBox | ✓ | ✓ | |
|
||||
| `IsActive` | Aktif | dxCheckBox | ✓ | ✓ | |
|
||||
|
||||
#### Konumlar — `App.Inventory.Location`
|
||||
|
||||
| Özellik | Değer |
|
||||
| --- | --- |
|
||||
| Wizard | `wizard/Location.json` |
|
||||
| Yol | Liste (Wizard) |
|
||||
| Menü | `App.Inventory.Definitions` › `App.Inventory.Location` (sıra 8) |
|
||||
| Yetki | `App.Inventory.Location` + `.Create`, `.Update`, `.Delete`, `.Export`, `.Import`, `.Note` |
|
||||
| Açıklama | Konumlar — şube ve depo bazında iç içe tanımlanan stok konumları (ör. GRP › Stock › Ana Depo AB07). |
|
||||
| Geliştirme talebi | Envanter -> Tanımlamalar |
|
||||
| Kaynak | `Inv_T_Location` · filtre `"IsDeleted" = 'false'` |
|
||||
| Görünümler | Grid, Card, Pivot, Chart, Tree (açılış tree) |
|
||||
| Düzenleme | ekle ✓ · düzenle ✓ · sil ✓ · popup |
|
||||
| Kapsam | Kiracı |
|
||||
| Widget'lar | `App.Widget.Total`, `App.Widget.Active`, `App.Widget.Passive` |
|
||||
| Form varsayılanları | LocationType=Internal, IsActive=true |
|
||||
|
||||
| Alan | Başlık | Editör | Zorunlu | Formda | Kaynak |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| `BranchId` | Şube Adı | dxSelectBox | ✓ | ✓ | sorgu: Sas_T_Branch |
|
||||
| `WarehouseId` | Depo | dxSelectBox | ✓ | ✓ | sorgu: Inv_T_Warehouse (← BranchId) |
|
||||
| `Code` | Konum Kodu | dxTextBox | | ✓ | |
|
||||
| `Name` | Konum | dxTextBox | ✓ | ✓ | |
|
||||
| `DepartmentId` | Departman | dxSelectBox | | ✓ | sorgu: Hr_T_Department (← BranchId) |
|
||||
| `ResponsibleUserId` | Depo Sorumlusu | dxSelectBox | | ✓ | sorgu: AbpUsers |
|
||||
| `LocationType` | Konum Türü | dxSelectBox | ✓ | ✓ | liste: Internal, External |
|
||||
| `ParentId` | Üst Lokasyon | dxSelectBox | | ✓ | sorgu: Inv_T_Location (← WarehouseId) |
|
||||
| `IsActive` | Aktif | dxCheckBox | ✓ | ✓ | |
|
||||
|
||||
#### Operasyon Türleri — `App.Inventory.OperationType`
|
||||
|
||||
| Özellik | Değer |
|
||||
| --- | --- |
|
||||
| Wizard | `wizard/OperationType.json` |
|
||||
| Yol | Liste (Wizard) |
|
||||
| Menü | `App.Inventory.Definitions` › `App.Inventory.OperationType` (sıra 9) |
|
||||
| Yetki | `App.Inventory.OperationType` + `.Create`, `.Update`, `.Delete`, `.Export`, `.Import`, `.Note` |
|
||||
| Açıklama | Operasyon Türleri — şube ve depo bazında tanımlanan stok operasyon türleri (ör. Alımlar, Teslimatlar, İç Transferler). |
|
||||
| Geliştirme talebi | Envanter -> Tanımlamalar |
|
||||
| Kaynak | `Inv_T_OperationType` · filtre `"IsDeleted" = 'false'` |
|
||||
| Görünümler | Grid, Card, Pivot, Chart (açılış grid) |
|
||||
| Düzenleme | ekle ✓ · düzenle ✓ · sil ✓ · popup |
|
||||
| Kapsam | Kiracı |
|
||||
| Widget'lar | `App.Widget.Total`, `App.Widget.Active`, `App.Widget.Passive` |
|
||||
| Form varsayılanları | OperationKind=Receipt, IsActive=true |
|
||||
|
||||
| Alan | Başlık | Editör | Zorunlu | Formda | Kaynak |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| `BranchId` | Şube Adı | dxSelectBox | ✓ | ✓ | sorgu: Sas_T_Branch |
|
||||
| `WarehouseId` | Depo | dxSelectBox | ✓ | ✓ | sorgu: Inv_T_Warehouse (← BranchId) |
|
||||
| `Name` | Operasyon Türü | dxTextBox | ✓ | ✓ | |
|
||||
| `OperationKind` | Tür | dxSelectBox | ✓ | ✓ | liste: Receipt, Delivery, InternalTransfer, Manufacturing, Repair |
|
||||
| `SequencePrefix` | Sıra Öneki | dxTextBox | | ✓ | |
|
||||
| `Barcode` | Barkod | dxTextBox | | ✓ | |
|
||||
| `SourceLocationId` | Kaynak Konum | dxSelectBox | | ✓ | sorgu: Inv_T_Location (← WarehouseId) |
|
||||
| `DestinationLocationId` | Hedef Konum | dxSelectBox | | ✓ | sorgu: Inv_T_Location (← WarehouseId) |
|
||||
| `IsActive` | Aktif | dxCheckBox | ✓ | ✓ | |
|
||||
|
||||
#### Nitelik Değerleri — `App.Inventory.AttributeValue`
|
||||
|
||||
| Özellik | Değer |
|
||||
|
|
|
|||
34
configs/seeds/postgres/object/Inv_T_Location.sql
Normal file
34
configs/seeds/postgres/object/Inv_T_Location.sql
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
CREATE TABLE IF NOT EXISTS public."Inv_T_Location"
|
||||
(
|
||||
"Id" uuid NOT NULL DEFAULT gen_random_uuid(),
|
||||
"TenantId" uuid NULL,
|
||||
"BranchId" uuid NOT NULL,
|
||||
"WarehouseId" uuid NOT NULL,
|
||||
"ParentId" uuid NULL,
|
||||
"Code" varchar(32) NULL,
|
||||
"Name" varchar(128) NOT NULL,
|
||||
"LocationType" varchar(16) NOT NULL DEFAULT 'Internal',
|
||||
"DepartmentId" uuid NULL,
|
||||
"ResponsibleUserId" uuid NULL,
|
||||
"IsActive" boolean NOT NULL DEFAULT TRUE,
|
||||
"CreationTime" timestamp NOT NULL DEFAULT (NOW() AT TIME ZONE 'UTC'),
|
||||
"CreatorId" uuid NULL,
|
||||
"LastModificationTime" timestamp NULL,
|
||||
"LastModifierId" uuid NULL,
|
||||
"IsDeleted" boolean NOT NULL DEFAULT FALSE,
|
||||
"DeletionTime" timestamp NULL,
|
||||
"DeleterId" uuid NULL,
|
||||
CONSTRAINT "PK_Inv_T_Location" PRIMARY KEY ("Id")
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS "IX_Inv_T_Location_WarehouseId" ON public."Inv_T_Location" ("WarehouseId");
|
||||
|
||||
CREATE INDEX IF NOT EXISTS "IX_Inv_T_Location_ParentId" ON public."Inv_T_Location" ("ParentId");
|
||||
|
||||
DO $$
|
||||
BEGIN
|
||||
IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'FK_Inv_T_Location_BranchId') THEN
|
||||
ALTER TABLE public."Inv_T_Location" ADD CONSTRAINT "FK_Inv_T_Location_BranchId" FOREIGN KEY ("BranchId") REFERENCES public."Sas_T_Branch" ("Id") ON DELETE NO ACTION ON UPDATE NO ACTION;
|
||||
END IF;
|
||||
END
|
||||
$$;
|
||||
48
configs/seeds/postgres/object/Inv_T_OperationType.sql
Normal file
48
configs/seeds/postgres/object/Inv_T_OperationType.sql
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
CREATE TABLE IF NOT EXISTS public."Inv_T_OperationType"
|
||||
(
|
||||
"Id" uuid NOT NULL DEFAULT gen_random_uuid(),
|
||||
"TenantId" uuid NULL,
|
||||
"BranchId" uuid NOT NULL,
|
||||
"WarehouseId" uuid NOT NULL,
|
||||
"Name" varchar(128) NOT NULL,
|
||||
"OperationKind" varchar(32) NOT NULL DEFAULT 'Receipt',
|
||||
"SequencePrefix" varchar(16) NULL,
|
||||
"Barcode" varchar(64) NULL,
|
||||
"SourceLocationId" uuid NULL,
|
||||
"DestinationLocationId" uuid NULL,
|
||||
"IsActive" boolean NOT NULL DEFAULT TRUE,
|
||||
"CreationTime" timestamp NOT NULL DEFAULT (NOW() AT TIME ZONE 'UTC'),
|
||||
"CreatorId" uuid NULL,
|
||||
"LastModificationTime" timestamp NULL,
|
||||
"LastModifierId" uuid NULL,
|
||||
"IsDeleted" boolean NOT NULL DEFAULT FALSE,
|
||||
"DeletionTime" timestamp NULL,
|
||||
"DeleterId" uuid NULL,
|
||||
CONSTRAINT "PK_Inv_T_OperationType" PRIMARY KEY ("Id")
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS "IX_Inv_T_OperationType_WarehouseId" ON public."Inv_T_OperationType" ("WarehouseId");
|
||||
|
||||
DO $$
|
||||
BEGIN
|
||||
IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'FK_Inv_T_OperationType_BranchId') THEN
|
||||
ALTER TABLE public."Inv_T_OperationType" ADD CONSTRAINT "FK_Inv_T_OperationType_BranchId" FOREIGN KEY ("BranchId") REFERENCES public."Sas_T_Branch" ("Id") ON DELETE NO ACTION ON UPDATE NO ACTION;
|
||||
END IF;
|
||||
END
|
||||
$$;
|
||||
|
||||
DO $$
|
||||
BEGIN
|
||||
IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'FK_Inv_T_OperationType_SourceLocationId') THEN
|
||||
ALTER TABLE public."Inv_T_OperationType" ADD CONSTRAINT "FK_Inv_T_OperationType_SourceLocationId" FOREIGN KEY ("SourceLocationId") REFERENCES public."Inv_T_Location" ("Id") ON DELETE NO ACTION ON UPDATE NO ACTION;
|
||||
END IF;
|
||||
END
|
||||
$$;
|
||||
|
||||
DO $$
|
||||
BEGIN
|
||||
IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'FK_Inv_T_OperationType_DestinationLocationId') THEN
|
||||
ALTER TABLE public."Inv_T_OperationType" ADD CONSTRAINT "FK_Inv_T_OperationType_DestinationLocationId" FOREIGN KEY ("DestinationLocationId") REFERENCES public."Inv_T_Location" ("Id") ON DELETE NO ACTION ON UPDATE NO ACTION;
|
||||
END IF;
|
||||
END
|
||||
$$;
|
||||
35
configs/seeds/postgres/object/Inv_T_Warehouse.sql
Normal file
35
configs/seeds/postgres/object/Inv_T_Warehouse.sql
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
CREATE TABLE IF NOT EXISTS public."Inv_T_Warehouse"
|
||||
(
|
||||
"Id" uuid NOT NULL DEFAULT gen_random_uuid(),
|
||||
"TenantId" uuid NULL,
|
||||
"BranchId" uuid NOT NULL,
|
||||
"Code" varchar(16) NOT NULL,
|
||||
"Name" varchar(128) NOT NULL,
|
||||
"IsActive" boolean NOT NULL DEFAULT TRUE,
|
||||
"CreationTime" timestamp NOT NULL DEFAULT (NOW() AT TIME ZONE 'UTC'),
|
||||
"CreatorId" uuid NULL,
|
||||
"LastModificationTime" timestamp NULL,
|
||||
"LastModifierId" uuid NULL,
|
||||
"IsDeleted" boolean NOT NULL DEFAULT FALSE,
|
||||
"DeletionTime" timestamp NULL,
|
||||
"DeleterId" uuid NULL,
|
||||
CONSTRAINT "PK_Inv_T_Warehouse" PRIMARY KEY ("Id")
|
||||
);
|
||||
|
||||
DO $$
|
||||
BEGIN
|
||||
IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'UQ_Inv_T_Warehouse_TenantId_Code') THEN
|
||||
ALTER TABLE public."Inv_T_Warehouse" ADD CONSTRAINT "UQ_Inv_T_Warehouse_TenantId_Code" UNIQUE ("TenantId", "Code");
|
||||
END IF;
|
||||
END
|
||||
$$;
|
||||
|
||||
CREATE INDEX IF NOT EXISTS "IX_Inv_T_Warehouse_BranchId" ON public."Inv_T_Warehouse" ("BranchId");
|
||||
|
||||
DO $$
|
||||
BEGIN
|
||||
IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'FK_Inv_T_Warehouse_BranchId') THEN
|
||||
ALTER TABLE public."Inv_T_Warehouse" ADD CONSTRAINT "FK_Inv_T_Warehouse_BranchId" FOREIGN KEY ("BranchId") REFERENCES public."Sas_T_Branch" ("Id") ON DELETE NO ACTION ON UPDATE NO ACTION;
|
||||
END IF;
|
||||
END
|
||||
$$;
|
||||
47
configs/seeds/sql/object/Inv_T_Location.sql
Normal file
47
configs/seeds/sql/object/Inv_T_Location.sql
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
IF OBJECT_ID(N'[dbo].[Inv_T_Location]', 'U') IS NULL
|
||||
BEGIN
|
||||
CREATE TABLE [dbo].[Inv_T_Location]
|
||||
(
|
||||
[Id] uniqueidentifier NOT NULL DEFAULT NEWID(),
|
||||
[TenantId] uniqueidentifier NULL,
|
||||
[BranchId] uniqueidentifier NOT NULL,
|
||||
[WarehouseId] uniqueidentifier NOT NULL,
|
||||
[ParentId] uniqueidentifier NULL,
|
||||
[Code] nvarchar(32) NULL,
|
||||
[Name] nvarchar(128) NOT NULL,
|
||||
[LocationType] nvarchar(16) NOT NULL DEFAULT 'Internal',
|
||||
[DepartmentId] uniqueidentifier NULL,
|
||||
[ResponsibleUserId] uniqueidentifier NULL,
|
||||
[IsActive] bit NOT NULL DEFAULT 1,
|
||||
[CreationTime] datetime2 NOT NULL DEFAULT GETUTCDATE(),
|
||||
[CreatorId] uniqueidentifier NULL,
|
||||
[LastModificationTime] datetime2 NULL,
|
||||
[LastModifierId] uniqueidentifier NULL,
|
||||
[IsDeleted] bit NOT NULL DEFAULT 0,
|
||||
[DeletionTime] datetime2 NULL,
|
||||
[DeleterId] uniqueidentifier NULL,
|
||||
CONSTRAINT [PK_Inv_T_Location] PRIMARY KEY NONCLUSTERED
|
||||
(
|
||||
[Id] ASC
|
||||
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
|
||||
) ON [PRIMARY]
|
||||
END
|
||||
GO
|
||||
|
||||
IF INDEXPROPERTY(OBJECT_ID(N'[dbo].[Inv_T_Location]'), 'IX_Inv_T_Location_WarehouseId', 'IndexID') IS NULL
|
||||
BEGIN
|
||||
CREATE INDEX [IX_Inv_T_Location_WarehouseId] ON [dbo].[Inv_T_Location] ([WarehouseId] ASC);
|
||||
END
|
||||
GO
|
||||
|
||||
IF INDEXPROPERTY(OBJECT_ID(N'[dbo].[Inv_T_Location]'), 'IX_Inv_T_Location_ParentId', 'IndexID') IS NULL
|
||||
BEGIN
|
||||
CREATE INDEX [IX_Inv_T_Location_ParentId] ON [dbo].[Inv_T_Location] ([ParentId] ASC);
|
||||
END
|
||||
GO
|
||||
|
||||
IF OBJECT_ID(N'[dbo].[FK_Inv_T_Location_BranchId]', 'F') IS NULL
|
||||
BEGIN
|
||||
ALTER TABLE [dbo].[Inv_T_Location] ADD CONSTRAINT [FK_Inv_T_Location_BranchId] FOREIGN KEY ([BranchId]) REFERENCES [dbo].[Sas_T_Branch] ([Id]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
||||
END
|
||||
GO
|
||||
53
configs/seeds/sql/object/Inv_T_OperationType.sql
Normal file
53
configs/seeds/sql/object/Inv_T_OperationType.sql
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
IF OBJECT_ID(N'[dbo].[Inv_T_OperationType]', 'U') IS NULL
|
||||
BEGIN
|
||||
CREATE TABLE [dbo].[Inv_T_OperationType]
|
||||
(
|
||||
[Id] uniqueidentifier NOT NULL DEFAULT NEWID(),
|
||||
[TenantId] uniqueidentifier NULL,
|
||||
[BranchId] uniqueidentifier NOT NULL,
|
||||
[WarehouseId] uniqueidentifier NOT NULL,
|
||||
[Name] nvarchar(128) NOT NULL,
|
||||
[OperationKind] nvarchar(32) NOT NULL DEFAULT 'Receipt',
|
||||
[SequencePrefix] nvarchar(16) NULL,
|
||||
[Barcode] nvarchar(64) NULL,
|
||||
[SourceLocationId] uniqueidentifier NULL,
|
||||
[DestinationLocationId] uniqueidentifier NULL,
|
||||
[IsActive] bit NOT NULL DEFAULT 1,
|
||||
[CreationTime] datetime2 NOT NULL DEFAULT GETUTCDATE(),
|
||||
[CreatorId] uniqueidentifier NULL,
|
||||
[LastModificationTime] datetime2 NULL,
|
||||
[LastModifierId] uniqueidentifier NULL,
|
||||
[IsDeleted] bit NOT NULL DEFAULT 0,
|
||||
[DeletionTime] datetime2 NULL,
|
||||
[DeleterId] uniqueidentifier NULL,
|
||||
CONSTRAINT [PK_Inv_T_OperationType] PRIMARY KEY NONCLUSTERED
|
||||
(
|
||||
[Id] ASC
|
||||
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
|
||||
) ON [PRIMARY]
|
||||
END
|
||||
GO
|
||||
|
||||
IF INDEXPROPERTY(OBJECT_ID(N'[dbo].[Inv_T_OperationType]'), 'IX_Inv_T_OperationType_WarehouseId', 'IndexID') IS NULL
|
||||
BEGIN
|
||||
CREATE INDEX [IX_Inv_T_OperationType_WarehouseId] ON [dbo].[Inv_T_OperationType] ([WarehouseId] ASC);
|
||||
END
|
||||
GO
|
||||
|
||||
IF OBJECT_ID(N'[dbo].[FK_Inv_T_OperationType_BranchId]', 'F') IS NULL
|
||||
BEGIN
|
||||
ALTER TABLE [dbo].[Inv_T_OperationType] ADD CONSTRAINT [FK_Inv_T_OperationType_BranchId] FOREIGN KEY ([BranchId]) REFERENCES [dbo].[Sas_T_Branch] ([Id]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
||||
END
|
||||
GO
|
||||
|
||||
IF OBJECT_ID(N'[dbo].[FK_Inv_T_OperationType_SourceLocationId]', 'F') IS NULL
|
||||
BEGIN
|
||||
ALTER TABLE [dbo].[Inv_T_OperationType] ADD CONSTRAINT [FK_Inv_T_OperationType_SourceLocationId] FOREIGN KEY ([SourceLocationId]) REFERENCES [dbo].[Inv_T_Location] ([Id]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
||||
END
|
||||
GO
|
||||
|
||||
IF OBJECT_ID(N'[dbo].[FK_Inv_T_OperationType_DestinationLocationId]', 'F') IS NULL
|
||||
BEGIN
|
||||
ALTER TABLE [dbo].[Inv_T_OperationType] ADD CONSTRAINT [FK_Inv_T_OperationType_DestinationLocationId] FOREIGN KEY ([DestinationLocationId]) REFERENCES [dbo].[Inv_T_Location] ([Id]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
||||
END
|
||||
GO
|
||||
42
configs/seeds/sql/object/Inv_T_Warehouse.sql
Normal file
42
configs/seeds/sql/object/Inv_T_Warehouse.sql
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
IF OBJECT_ID(N'[dbo].[Inv_T_Warehouse]', 'U') IS NULL
|
||||
BEGIN
|
||||
CREATE TABLE [dbo].[Inv_T_Warehouse]
|
||||
(
|
||||
[Id] uniqueidentifier NOT NULL DEFAULT NEWID(),
|
||||
[TenantId] uniqueidentifier NULL,
|
||||
[BranchId] uniqueidentifier NOT NULL,
|
||||
[Code] nvarchar(16) NOT NULL,
|
||||
[Name] nvarchar(128) NOT NULL,
|
||||
[IsActive] bit NOT NULL DEFAULT 1,
|
||||
[CreationTime] datetime2 NOT NULL DEFAULT GETUTCDATE(),
|
||||
[CreatorId] uniqueidentifier NULL,
|
||||
[LastModificationTime] datetime2 NULL,
|
||||
[LastModifierId] uniqueidentifier NULL,
|
||||
[IsDeleted] bit NOT NULL DEFAULT 0,
|
||||
[DeletionTime] datetime2 NULL,
|
||||
[DeleterId] uniqueidentifier NULL,
|
||||
CONSTRAINT [PK_Inv_T_Warehouse] PRIMARY KEY NONCLUSTERED
|
||||
(
|
||||
[Id] ASC
|
||||
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
|
||||
) ON [PRIMARY]
|
||||
END
|
||||
GO
|
||||
|
||||
IF OBJECT_ID(N'[dbo].[UQ_Inv_T_Warehouse_TenantId_Code]', 'UQ') IS NULL
|
||||
BEGIN
|
||||
ALTER TABLE [dbo].[Inv_T_Warehouse] ADD CONSTRAINT [UQ_Inv_T_Warehouse_TenantId_Code] UNIQUE NONCLUSTERED ([TenantId] ASC, [Code] ASC);
|
||||
END
|
||||
GO
|
||||
|
||||
IF INDEXPROPERTY(OBJECT_ID(N'[dbo].[Inv_T_Warehouse]'), 'IX_Inv_T_Warehouse_BranchId', 'IndexID') IS NULL
|
||||
BEGIN
|
||||
CREATE INDEX [IX_Inv_T_Warehouse_BranchId] ON [dbo].[Inv_T_Warehouse] ([BranchId] ASC);
|
||||
END
|
||||
GO
|
||||
|
||||
IF OBJECT_ID(N'[dbo].[FK_Inv_T_Warehouse_BranchId]', 'F') IS NULL
|
||||
BEGIN
|
||||
ALTER TABLE [dbo].[Inv_T_Warehouse] ADD CONSTRAINT [FK_Inv_T_Warehouse_BranchId] FOREIGN KEY ([BranchId]) REFERENCES [dbo].[Sas_T_Branch] ([Id]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
||||
END
|
||||
GO
|
||||
2087
configs/seeds/wizard/Location.json
Normal file
2087
configs/seeds/wizard/Location.json
Normal file
File diff suppressed because it is too large
Load diff
2108
configs/seeds/wizard/OperationType.json
Normal file
2108
configs/seeds/wizard/OperationType.json
Normal file
File diff suppressed because it is too large
Load diff
1395
configs/seeds/wizard/Warehouse.json
Normal file
1395
configs/seeds/wizard/Warehouse.json
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue