SHcms Tutorial

SH CMS SH HTML SH PHP SH CSS SH Javascript SH Plug-ins (APPS) SH Template SH Suites SH Projects SH Admin Panel SH Install
SHcms / plug-in / Wallet
Last modi. : 26-February-2025 03:12:17

Wallet Plugin ek financial module hai jo ek virtual wallet system provide karta hai. Iska primary purpose hai ke users ke accounts maintain kiye jayein aur transactions manage ho sakein.
1 : Users ke Wallets Manage Karega
  • Har user ka ek wallet account hoga
  • Wallet me balance add, deduct aur update ho sakega
    2 : Transactions Ka Record Maintain Karega
  • Jitne bhi transactions honge (credit/debit) wo database me store honge
  • Users apni transaction history dekh sakenge
    3 : Admin Panel Integration
  • Admin Panel me ek menu create karega
  • dmin users wallets aur transactions ko manage kar sakein
    4 : Balance Tracking
  • Har account ka live balance check ho sakega
  • Insufficient funds hone par transactions block ho sakengi
    5 : Credit Wallet System
  • Special accounts (Credit Wallets) overdraft allow kar sakein
  • Connected accounts ke beech me negative balance allow ho sake

    Codename : Wallet
    Used on Suite :
    Used on Project : wallet.iPSA


  • P\Wallet\performTransaction()
    Dsecription:
  • Ye function ek account se doosre account me funds transfer karega.
  • Sender ka balance deduct aur receiver ka balance increase karega.
  • Transaction record insert karega shpl_Transactions table me.
  • Credit wallets ke liye overdraft allow karega agar AccountConnected match kare.
  • Parameters:
  • &doller;accountNumber (string) – Sender ka account number
  • &doller;relatedAccountNumber (string) – Receiver ka account number
  • &doller;amount (float) – Transfer hone wali amount
  • &doller;description (string) – Transaction ka reason
  • Returns:
  • "Transaction Successful: Ref: TXNxxxx" (Agar transaction complete ho jaye)
  • "Transaction Failed: Insufficient Balance" (Agar balance kam ho)
  • "Transaction Failed: Receiver Account Not Found" (Agar receiver ka account na mile)
  • "Transaction Failed: Cannot Overdraft" (Agar credit wallet overdraft allow na kare)
  • Special Features:
  • Atomic Transactions: Agar koi error aaye to transaction rollback ho jaye.
  • Secure SQL Handling: Prepared statements ka use kiya gaya hai.
  • Automatic Debit & Credit Detection: Negative aur positive amounts ko handle karta hai.

  • P\Wallet\getWalletsData()
    Dsecription:
  • Ye function sab wallets ki details fetch karega shpl_Wallets table se.
  • Sabhi wallets ka array return karega agar data available hai.
  • Agar koi wallet nahi hai, to empty array return karega.
  • Returns:
  • Array of wallets (Agar data available ho)
  • Empty array [] (Agar koi wallet na mile)
  • P\Wallet\getWalletById()
    Dsecription:
  • Ye function wallet details ko retrieve karega specific wallet ID ke liye.
  • shpl_Wallets table me ID ke against search karega.
  • Parameters:
  • $walletId (int) – Wallet ID jo retrieve karni hai
  • Returns:
  • Array of wallet details (Agar wallet exist kare)
  • Empty array [] (Agar wallet na mile)
  • P\Wallet\getLast50TransactionsByAccount()
    Dsecription:
  • Ye function specific account ke last 50 transactions retrieve karega.
  • Transactions ko InsertTimestemp ke mutabiq DESC order me fetch karega.
  • Debit aur Credit transactions ko identify karega based on Amount.
  • Parameters:
  • $accountNumber (string) – Account jiske transactions load karne hain
  • Returns:
  • Array of last 50 transactions (Agar transactions exist karti hain)
  • Empty array [] (Agar koi transaction na ho)
  • List of all wallet
    <?php
    $result = \P\Wallet\getWalletsData(); //all wallet list
    while($row = mysqli_fetch_array($result)){
    	print_r($row);
    }
    ?>

    MySQL Table (2) Script Update : 2021-Jun-25
    Table : shpl_Wallets
    ColumDescription
    Id INT(20) NOT NULL AUTO_INCREMENT PRIMARY KEYSystem Id
    Status ENUM('Active', 'Suspended', 'Closed') NOT NULL
    Type ENUM('Personal', 'Business', 'System', 'Credit') NOT NULL
    AccountNumber VARCHAR(255) NOT NULL UNIQUE
    Balance DECIMAL(20,8) NOT NULL
    Currency VARCHAR(3) NOT NULL
    AccountName VARCHAR(50) NOT NULL
    AccountHashKey VARCHAR(255) NOT NULL
    AccountConnected VARCHAR(255) NOT NULL
    InsertTimestemp TIMESTAMP() DEFAULT CURRENT_TIMESTAMP
    UpdateTimestemp TIMESTAMP() DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
    Table : shpl_Transactions
    ColumDescription
    Id INT(20) NOT NULL AUTO_INCREMENT PRIMARY KEYSystem Id
    RelatedId INT(20) DEFAULT NULL
    AccountNumber VARCHAR(255) DEFAULT NULL
    AccountName VARCHAR(255) DEFAULT NULL
    Amount DECIMAL(20,8) NOT NULL
    AmountAfter DECIMAL(20,8) NOT NULL
    TransactionRef VARCHAR(100) NOT NULL
    RelatedAccountNumber VARCHAR(255) DEFAULT NULL
    RelatedAccountName VARCHAR(255) DEFAULT NULL
    Description TEXT() DEFAULT NULL
    Status ENUM('Pending', 'Completed', 'Failed') NOT NULL DEFAULT 'Completed'
    InsertTimestemp TIMESTAMP() DEFAULT CURRENT_TIMESTAMP