আপনার দেওয়া models.py এবং গল্পের ভিত্তিতে আমি বুঝতে পারছি যে আপনি Procurement & Purchase মডিউলের টেবিলগুলোতে সমস্ত ফিল্ড সহ স্যাম্পল ডেটা চান, এবং পূর্বের স্যাম্পল ডেটায় কিছু ফিল্ড মিস হয়েছে। আমি এখন আপনার মডেল অনুযায়ী গল্পের ডেটা টেবিলগুলো পুনরায় তৈরি করব, যাতে প্রতিটি মডেলের সমস্ত ফিল্ড কভার হয়। এছাড়া, গল্পের চরিত্র (Nahid, Hasib, Selim, Farzana) এবং তাদের ক্রিয়াকলাপের সাথে সামঞ্জস্য রেখে ডেটা দেব।
আমি ধরে নিচ্ছি আপনি একই গল্পের (ABC Buyer, Cotton Navy Fabric, 5000 মিটার, PO-2025-0010, GRN-2025-0003) ডেটা চান, তবে সমস্ত ফিল্ড সঠিকভাবে অন্তর্ভুক্ত করে। নিচে গল্পের প্রতিটি ধাপের টেবিল এবং স্যাম্পল ডেটা দেওয়া হলো, যা আপনার models.py এর সাথে পুরোপুরি সামঞ্জস্যপূর্ণ।
🎬 গল্প: “A Garment’s Material Journey” (সংশোধিত)
🧵 মডিউল: Procurement & Purchase
🧰 মডেল: Supplier, PurchaseRequisition, PurchaseOrder, GoodsReceiveNote, POTracking
🎭 চরিত্র পরিচিতি
| নাম | পদের নাম | দায়িত্ব |
|---|---|---|
| Nahid | Merchandiser | Order Style, Fabric চাহিদা তৈরি |
| Hasib | Procurement Manager | Supplier খোঁজা, PO ইস্যু |
| Selim | Storekeeper | মাল রিসিভ ও চেক |
| Farzana | Accounts Officer | PO ক্লিয়ার ও পেমেন্ট |
🧩 ১. Supplier: সাপ্লায়ার তথ্য
গল্প: Hasib নতুন স্টাইলের (ABC-NAVY-TSHIRT-2025) জন্য ফ্যাব্রিক কেনার প্রস্তুতি নিচ্ছেন। তিনি সফটওয়্যারে সাপ্লায়ার তথ্য চেক করেন এবং Shamim Textile বেছে নেন।
📦 Table: Supplier
| id | name | contact | rating | last_purchase_date |
|---|---|---|---|---|
| 1 | Shamim Textile | 017XXXXXXXXX | 4.8 | 2025-07-12 |
| 2 | Apex Accessories | 019XXXXXXXXX | 4.5 | 2025-06-18 |
ব্যাখ্যা:
- সমস্ত ফিল্ড (
id,name,contact,rating,last_purchase_date) অন্তর্ভুক্ত। Supplierমডেলটি সাপ্লায়ারের তথ্য সংরক্ষণ করে, যা PO তৈরির সময় ব্যবহৃত হয়।
🧩 ২. Purchase Requisition: চাহিদা তৈরি
গল্প: Nahid জানেন, Style ABC-NAVY-TSHIRT-2025 এর জন্য 5000 মিটার Cotton Navy Fabric এবং 20,000 পিস Button লাগবে। তিনি সফটওয়্যারে দুটি PR তৈরি করেন।
📦 Table: PurchaseRequisition
| id | requisition_id | item_name | quantity | unit | urgency | created_by | created_at | status | style_id |
|---|---|---|---|---|---|---|---|---|---|
| 1 | PR-2025-0004 | Cotton Navy Fabric | 5000.00 | meter | high | Nahid | 2025-08-03 | pending | 1 |
| 2 | PR-2025-0005 | Button | 20000.00 | piece | medium | Nahid | 2025-08-03 | pending | 1 |
ব্যাখ্যা:
- সমস্ত ফিল্ড (
id,requisition_id,item_name,quantity,unit,urgency,created_by,created_at,status,style) অন্তর্ভুক্ত। style_idহলোOrderStyleমডেলের ফরেন কি, যা ABC-NAVY-TSHIRT-2025 কে রেফার করে।created_byহলোUserমডেলের ফরেন কি (Nahid)।
🧩 ৩. Purchase Order: PO ইস্যু
গল্প: Hasib PR-2025-0004 চেক করে Shamim Textile থেকে 5000 মিটার ফ্যাব্রিক কেনার জন্য PO তৈরি করেন।
📦 Table: PurchaseOrder
| id | po_id | requisition_id | supplier_id | item_name | quantity | price_per_unit | total_price | delivery_date | status | created_at |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | PO-2025-0010 | 1 | 1 | Cotton Navy Fabric | 5000.00 | 180.00 | 900000.00 | 2025-08-15 | issued | 2025-08-03 |
ব্যাখ্যা:
- সমস্ত ফিল্ড (
id,po_id,requisition,supplier,item_name,quantity,price_per_unit,total_price,delivery_date,status,created_at) অন্তর্ভুক্ত। requisition_idহলো PR-2025-0004 এর রেফারেন্স।supplier_idহলো Shamim Textile এর রেফারেন্স।total_price=quantity*price_per_unit(5000 * 180 = 900000)।
🧩 ৪. Goods Receive Note: মাল রিসিভ
গল্প: Selim Shamim Textile থেকে আসা 5000 মিটার ফ্যাব্রিক চেক করে GRN তৈরি করেন।
📦 Table: GoodsReceiveNote
| id | grn_id | purchase_order_id | received_qty | date | checked_by | status | remarks |
|---|---|---|---|---|---|---|---|
| 1 | GRN-2025-0003 | 1 | 5000.00 | 2025-08-15 | Selim | received | Checked and received by Selim |
ব্যাখ্যা:
- সমস্ত ফিল্ড (
id,grn_id,purchase_order,received_qty,date,checked_by,status,remarks) অন্তর্ভুক্ত। purchase_order_idহলো PO-2025-0010 এর রেফারেন্স।checked_byহলোUserমডেলের ফরেন কি (Selim)।remarksফিল্ডে Selim-এর কমেন্ট যুক্ত করা হয়েছে।
🧩 ৫. PO Tracking: স্ট্যাটাস ট্র্যাকিং
গল্প: Farzana এবং Hasib দেখতে চান PO-এর স্ট্যাটাস। GRN হওয়ার পর PO-টি “received” হিসেবে মার্ক করা হয়।
📦 Table: POTracking
| id | purchase_order_id | status | last_updated | remarks |
|---|---|---|---|---|
| 1 | 1 | received | 2025-08-15 | Full quantity received, ready for payment |
ব্যাখ্যা:
- সমস্ত ফিল্ড (
id,purchase_order,status,last_updated,remarks) অন্তর্ভুক্ত। purchase_order_idহলো PO-2025-0010 এর রেফারেন্স।remarksফিল্ডে Farzana-এর জন্য পেমেন্ট প্রসেসিংয়ের নোট যুক্ত।
🔁 পুরো গল্পের ফ্লো
🧍 Nahid → [PurchaseRequisition] → Hasib → [PurchaseOrder] → Supplier → [Goods] → Selim → [GoodsReceiveNote] → Farzana → [POTracking]
📦 সংশোধিত স্যাম্পল ডেটা (JSON ফরম্যাট)
নিচে procurement_sample_data.json ফাইল দেওয়া হলো, যা আপনার মডেলের সমস্ত ফিল্ড কভার করে এবং গল্পের ডেটার সাথে সামঞ্জস্যপূর্ণ। ফাইলটি C:\Users\Olee-Ahmmed\Desktop\GarmrntsErp\config\fixtures\procurement_sample_data.json পাথে সেভ করুন।
[
{
"model": "auth.user",
"pk": 1,
"fields": {
"username": "nahid",
"first_name": "Nahid",
"last_name": "",
"email": "nahid@example.com",
"password": "pbkdf2_sha256$260000$randomsalt$hashedpassword",
"is_staff": true,
"is_active": true
}
},
{
"model": "auth.user",
"pk": 2,
"fields": {
"username": "selim",
"first_name": "Selim",
"last_name": "",
"email": "selim@example.com",
"password": "pbkdf2_sha256$260000$randomsalt$hashedpassword",
"is_staff": true,
"is_active": true
}
},
{
"model": "order_management.buyer",
"pk": 1,
"fields": {
"name": "ABC Buyer",
"country": "USA",
"contact_person": "John Doe",
"phone": "+1234567890",
"email": "john@abcbuyer.com"
}
},
{
"model": "order_management.order",
"pk": 1,
"fields": {
"buyer": 1,
"quantity": 20000,
"sizes": "S,M,L,XL",
"colors": "Navy",
"delivery_date": "2025-09-30",
"order_date": "2025-08-03",
"status": "received",
"remarks": "Order for ABC Buyer managed by Nahid"
}
},
{
"model": "order_management.orderstyle",
"pk": 1,
"fields": {
"order": 1,
"style_name": "ABC-NAVY-TSHIRT-2025"
}
},
{
"model": "procurement.supplier",
"pk": 1,
"fields": {
"name": "Shamim Textile",
"contact": "017XXXXXXXXX",
"rating": 4.8,
"last_purchase_date": "2025-07-12"
}
},
{
"model": "procurement.supplier",
"pk": 2,
"fields": {
"name": "Apex Accessories",
"contact": "019XXXXXXXXX",
"rating": 4.5,
"last_purchase_date": "2025-06-18"
}
},
{
"model": "procurement.purchaserequisition",
"pk": 1,
"fields": {
"requisition_id": "PR-2025-0004",
"item_name": "Cotton Navy Fabric",
"quantity": 5000.00,
"unit": "meter",
"urgency": "high",
"created_by": 1,
"created_at": "2025-08-03",
"status": "pending",
"style": 1
}
},
{
"model": "procurement.purchaserequisition",
"pk": 2,
"fields": {
"requisition_id": "PR-2025-0005",
"item_name": "Button",
"quantity": 20000.00,
"unit": "piece",
"urgency": "medium",
"created_by": 1,
"created_at": "2025-08-03",
"status": "pending",
"style": 1
}
},
{
"model": "procurement.purchaseorder",
"pk": 1,
"fields": {
"po_id": "PO-2025-0010",
"requisition": 1,
"supplier": 1,
"item_name": "Cotton Navy Fabric",
"quantity": 5000.00,
"price_per_unit": 180.00,
"total_price": 900000.00,
"delivery_date": "2025-08-15",
"status": "issued",
"created_at": "2025-08-03"
}
},
{
"model": "procurement.goodsreceivenote",
"pk": 1,
"fields": {
"grn_id": "GRN-2025-0003",
"purchase_order": 1,
"received_qty": 5000.00,
"date": "2025-08-15",
"checked_by": 2,
"status": "received",
"remarks": "Checked and received by Selim"
}
},
{
"model": "procurement.potracking",
"pk": 1,
"fields": {
"purchase_order": 1,
"status": "received",
"last_updated": "2025-08-15",
"remarks": "Full quantity received, ready for payment processing by Farzana"
}
}
]
ব্যাখ্যা:
- User: Nahid (
pk=1) এবং Selim (pk=2) এর জন্য ডামি ইউজার তৈরি করা হয়েছে। প্রকৃত অ্যাপ্লিকেশনেpython manage.py createsuperuserব্যবহার করে ইউজার তৈরি করুন। - Supplier: Shamim Textile এবং Apex Accessories যুক্ত করা হয়েছে।
- PurchaseRequisition: দুটি PR (Cotton Navy Fabric এবং Button) তৈরি করা হয়েছে, Nahid দ্বারা।
- PurchaseOrder: PO-2025-0010 Shamim Textile-এর জন্য।
- GoodsReceiveNote: GRN-2025-0003, Selim দ্বারা চেক করা।
- POTracking: PO-2025-0010 এর স্ট্যাটাস “received”, Farzana-এর জন্য পেমেন্ট নোট।
ধাপ: ডেটা লোড করুন
- ডাটাবেস ক্লিয়ার করুন (যদি প্রয়োজন হয়):
python manage.py flush
সতর্কতা: এটি সব ডেটা মুছে ফেলবে। ব্যাকআপ নিন।
- মাইগ্রেশন প্রয়োগ করুন:
python manage.py makemigrations
python manage.py migrate
- ডেটা লোড করুন:
python manage.py loaddata fixtures/procurement_sample_data
টেস্ট করুন
- সার্ভার চালু করুন:
python manage.py runserver
- অ্যাডমিন প্যানেলে চেক করুন:
http://127.0.0.1:8000/admin/এ লগইন করুন।Procurement & Purchaseসেকশনে নিশ্চিত করুন:Supplier: Shamim Textile, Apex AccessoriesPurchaseRequisition: PR-2025-0004, PR-2025-0005PurchaseOrder: PO-2025-0010GoodsReceiveNote: GRN-2025-0003POTracking: PO-2025-0010 (received)
মন্তব্য
- সমস্ত ফিল্ড কভার করা হয়েছে: প্রতিটি মডেলের সমস্ত ফিল্ড (
Supplier,PurchaseRequisition,PurchaseOrder,GoodsReceiveNote,POTracking) স্যাম্পল ডেটায় অন্তর্ভুক্ত। - গল্পের সাথে সামঞ্জস্য: Nahid, Hasib, Selim, এবং Farzana-এর ক্রিয়াকলাপ ডেটায় প্রতিফলিত।
- ইন্টিগ্রেশন:
styleএবংcreated_by/checked_byফিল্ডগুলোOrderStyleএবংUserমডেলের সাথে লিঙ্ক করা হয়েছে।
পরবর্তী ধাপ
অনুগ্রহ করে জানান:
- ডেটা লোডের পর কোনো ত্রুটি হলে বিস্তারিত শেয়ার করুন।
- ইনভেন্টরি মডিউল: GRN থেকে স্টক আপডেটের জন্য ইনভেন্টরি মডিউল তৈরি করব?
- Production Floor Control: গল্পের পরবর্তী ধাপ হিসেবে এই মডিউলের মডেল এবং ডেটা তৈরি করব? কী কী ফিচার চান?
- ER Diagram: টেবিলগুলোর ER Diagram তৈরি করব? উদাহরণ:
[Supplier] --1:N--> [PurchaseOrder]
[PurchaseRequisition] --1:N--> [PurchaseOrder] --1:N--> [GoodsReceiveNote]
[PurchaseOrder] --1:N--> [POTracking]
[OrderStyle] --1:N--> [PurchaseRequisition]
[User] --1:N--> [PurchaseRequisition, GoodsReceiveNote]
- অতিরিক্ত ফিচার: পেমেন্ট ট্র্যাকিং বা সাপ্লায়ার পারফরম্যান্স রিপোর্ট যুক্ত করতে চান?
আপনার উত্তরের অপেক্ষায়!