1. Home
  2. গার্মেন্টস ইন্ডাস্ট্রির জ...
  3. ০ ৪। Procurement & P...
  4. গল্প

গল্প

আপনার দেওয়া 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


🎭 চরিত্র পরিচিতি

নামপদের নামদায়িত্ব
NahidMerchandiserOrder Style, Fabric চাহিদা তৈরি
HasibProcurement ManagerSupplier খোঁজা, PO ইস্যু
SelimStorekeeperমাল রিসিভ ও চেক
FarzanaAccounts OfficerPO ক্লিয়ার ও পেমেন্ট

🧩 ১. Supplier: সাপ্লায়ার তথ্য

গল্প: Hasib নতুন স্টাইলের (ABC-NAVY-TSHIRT-2025) জন্য ফ্যাব্রিক কেনার প্রস্তুতি নিচ্ছেন। তিনি সফটওয়্যারে সাপ্লায়ার তথ্য চেক করেন এবং Shamim Textile বেছে নেন।

📦 Table: Supplier

idnamecontactratinglast_purchase_date
1Shamim Textile017XXXXXXXXX4.82025-07-12
2Apex Accessories019XXXXXXXXX4.52025-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

idrequisition_iditem_namequantityuniturgencycreated_bycreated_atstatusstyle_id
1PR-2025-0004Cotton Navy Fabric5000.00meterhighNahid2025-08-03pending1
2PR-2025-0005Button20000.00piecemediumNahid2025-08-03pending1

ব্যাখ্যা:

  • সমস্ত ফিল্ড (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

idpo_idrequisition_idsupplier_iditem_namequantityprice_per_unittotal_pricedelivery_datestatuscreated_at
1PO-2025-001011Cotton Navy Fabric5000.00180.00900000.002025-08-15issued2025-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

idgrn_idpurchase_order_idreceived_qtydatechecked_bystatusremarks
1GRN-2025-000315000.002025-08-15SelimreceivedChecked 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

idpurchase_order_idstatuslast_updatedremarks
11received2025-08-15Full 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-এর জন্য পেমেন্ট নোট।

ধাপ: ডেটা লোড করুন

  1. ডাটাবেস ক্লিয়ার করুন (যদি প্রয়োজন হয়):
   python manage.py flush

সতর্কতা: এটি সব ডেটা মুছে ফেলবে। ব্যাকআপ নিন।

  1. মাইগ্রেশন প্রয়োগ করুন:
   python manage.py makemigrations
   python manage.py migrate
  1. ডেটা লোড করুন:
   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 Accessories
    • PurchaseRequisition: PR-2025-0004, PR-2025-0005
    • PurchaseOrder: PO-2025-0010
    • GoodsReceiveNote: GRN-2025-0003
    • POTracking: 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]
  • অতিরিক্ত ফিচার: পেমেন্ট ট্র্যাকিং বা সাপ্লায়ার পারফরম্যান্স রিপোর্ট যুক্ত করতে চান?

আপনার উত্তরের অপেক্ষায়!

How can we help?