redaced/laravel-baazv2

Laravel package for connecting to BaazV2 API

v1.0.1 2025-04-28 01:05 UTC

This package is auto-updated.

Last update: 2025-04-28 01:31:48 UTC


README

BaazV2 API-тай холбогдох Laravel пакет. Энэ пакетийн тусламжтай Laravel аппликейшнаас BaazV2 системтэй хялбархан холбогдох боломжтой.

Суулгах

Composer ашиглан суулгах:

composer require redaced/laravel-baazv2

Тохиргоо

Laravel 5.5+ хувилбарт энэ пакет автоматаар бүртгэгдэнэ. Хэрэв та 5.5-с доош хувилбар ашиглаж байгаа бол дараах service provider-г config/app.php файлд нэмнэ:

'providers' => [
    // ...
    redaced\LaravelBaazV2\BaazV2ServiceProvider::class,
];

'aliases' => [
    // ...
    'BaazV2' => redaced\LaravelBaazV2\Facades\BaazV2::class,
];

Тохиргооны файлыг хуулах:

php artisan vendor:publish --provider="redaced\LaravelBaazV2\BaazV2ServiceProvider" --tag="config"

.env файлдаа BaazV2 API түлхүүрээ тохируулна:

BAAZV2_API_KEY=таны-api-түлхүүр
BAAZV2_BASE_URL=https://apistg.baaz.mn

Ашиглах

Дансуудтай ажиллах

// Дансны жагсаалт авах
$accounts = BaazV2::accounts()->list([
    'type' => 'ASSET',
    'is_parent' => true,
]);

// Дансны төрлөөр жагсаалт авах
$assetAccounts = BaazV2::accounts()->listByType('ASSET', true);

// Эцэг дансны дэд дансуудыг авах
$childAccounts = BaazV2::accounts()->listChildren(1);

// Шинэ данс үүсгэх
$newAccount = BaazV2::accounts()->create([
    'custom_code' => '1100',
    'name' => 'Шинэ данс',
    'is_parent' => false,
    'is_active' => true,
    'type' => 'ASSET'
]);

// Данс засах
$updatedAccount = BaazV2::accounts()->update(1, [
    'name' => 'Шинэчилсэн данс',
    'is_active' => false,
]);

// Дансны дэлгэрэнгүй мэдээлэл авах
$accountDetails = BaazV2::accounts()->getById(1);

// Данс устгах
$deletedAccount = BaazV2::accounts()->delete(1);

Харилцагчтай ажиллах

// Харилцагчийн жагсаалт авах
$customers = BaazV2::customers()->list([
    'name_code' => 'Тест',
    'is_active' => true,
]);

// Харилцагч нэмэх
$newCustomer = BaazV2::customers()->create([
    'customer_category' => '550e8400-e29b-41d4-a716-446655440001',
    'name' => 'Шинэ ХХК',
    'code' => 'NEW123',
    'register_no' => '1234567',
    'is_taxable' => true,
    'is_person' => false,
    'is_active' => true,
    'is_supplier' => true,
    'is_customer' => true,
]);

// Харилцагч засах
$updatedCustomer = BaazV2::customers()->update('550e8400-e29b-41d4-a716-446655440000', [
    'name' => 'Шинэчилсэн нэр ХХК',
    'is_active' => false,
]);

// Харилцагч устгах
$deletedCustomer = BaazV2::customers()->delete('550e8400-e29b-41d4-a716-446655440000');

Гүйлгээтэй ажиллах

// Борлуулалтын жагсаалт авах
$sales = BaazV2::transactions()->getSales([
    'invoice_date_from' => '2024-01-01',
    'invoice_date_to' => '2024-12-31',
]);

// Борлуулалт үүсгэх
$sale = BaazV2::transactions()->createSale(
    [
        'brc' => 'BRC001',
        'reference' => 'REF001',
        'check_qty' => true,
        'is_draft' => false,
        'is_order' => false,
        'name' => 'SALE-0001',
        'date' => '2024-03-20',
        'payment_date' => '2024-03-20',
        'customer_id' => '550e8400-e29b-41d4-a716-446655440000',
        'customer_name' => 'Харилцагч 1',
        'customer_code' => 'CUST001',
        'contract_number' => 'CNT001',
        'origin' => 'POS',
        'description' => 'Борлуулалтын тайлбар',
        'status' => 'draft',
        'location_id' => '550e8400-e29b-41d4-a716-446655440001',
        'location_name' => 'Төв агуулах',
        'lines' => [
            [
                'item_id' => '550e8400-e29b-41d4-a716-446655440002',
                'uom_id' => '550e8400-e29b-41d4-a716-446655440003',
                'qty' => 2,
                'price_unit' => 10000,
                'amount' => 20000,
                'description' => 'Бараа 1'
            ],
            [
                'item_id' => '550e8400-e29b-41d4-a716-446655440004',
                'uom_id' => '550e8400-e29b-41d4-a716-446655440003',
                'qty' => 1,
                'price_unit' => 15000,
                'amount' => 15000,
                'description' => 'Бараа 2'
            ]
        ]
    ],
    [] // Энэ параметр ашиглагдахгүй боловч функцийн заалтаас хамаарч хэвээр үлдээв
);

// Худалдан авалтын жагсаалт авах
$purchases = BaazV2::transactions()->getPurchases([
    'invoice_date_from' => '2024-01-01',
    'invoice_date_to' => '2024-12-31',
]);

// Худалдан авалт үүсгэх
$purchase = BaazV2::transactions()->createPurchase(
    [
        'brc' => 'BRC001',
        'reference' => 'REF001',
        'check_qty' => true,
        'is_draft' => false,
        'name' => 'PURCHASE-0001',
        'date' => '2024-03-20',
        'payment_date' => '2024-03-20',
        'customer_id' => '550e8400-e29b-41d4-a716-446655440000',
        'customer_name' => 'Нийлүүлэгч 1',
        'customer_code' => 'SUPP001',
        'contract_number' => 'CNT001',
        'description' => 'Худалдан авалтын тайлбар',
        'status' => 'draft',
        'location_id' => '550e8400-e29b-41d4-a716-446655440001',
        'location_name' => 'Төв агуулах',
        'lines' => [
            [
                'item_id' => '550e8400-e29b-41d4-a716-446655440002',
                'uom_id' => '550e8400-e29b-41d4-a716-446655440003',
                'qty' => 5,
                'price_unit' => 8000,
                'amount' => 40000,
                'description' => 'Бараа 1'
            ]
        ]
    ],
    [] // Энэ параметр ашиглагдахгүй боловч функцийн заалтаас хамаарч хэвээр үлдээв
);

Хаягуудтай ажиллах

// Хаягийн жагсаалт авах
$addresses = BaazV2::addresses()->list([
    'region' => 'Улаанбаатар',
]);

// Шинэ хаяг үүсгэх
$newAddress = BaazV2::addresses()->create([
    'owner_id' => '550e8400-e29b-41d4-a716-446655440000',
    'owner_type' => 'customer',
    'address_type' => 'billing',
    'country' => 'Монгол',
    'region' => 'Улаанбаатар',
    'district' => 'Баянзүрх',
    'street' => '10-р хороо',
    'address_line' => '202 тоот',
    'is_default' => true,
]);

// Хаяг засах
$updatedAddress = BaazV2::addresses()->update('550e8400-e29b-41d4-a716-446655440002', [
    'region' => 'Дархан-Уул',
    'district' => 'Дархан сум',
]);

// Хаяг устгах
$deletedAddress = BaazV2::addresses()->delete('550e8400-e29b-41d4-a716-446655440002');

Шууд API хүсэлт

Хэрэв танд дээрх интерфейсүүдэд байхгүй API хүсэлт шаардлагатай бол, шууд BaazV2 клиентийг ашиглах боломжтой:

// GET хүсэлт
$response = BaazV2::get('/b10/some_endpoint', [
    'param1' => 'value1',
    'param2' => 'value2',
]);

// POST хүсэлт
$response = BaazV2::post('/b10/some_endpoint', [
    'data1' => 'value1',
    'data2' => 'value2',
]);

// DELETE хүсэлт
$response = BaazV2::delete('/b10/some_endpoint/uuid');

Тестийг ажиллуулах

vendor/bin/phpunit

Лиценз

MIT