ApiDoc BACKEND

ProductOrder extends ActiveRecord uses JsonBehaviorTrait

This is the model class for table "product_order".

Table of Contents

Constants

GST_PERCENT  = 5
PO_STATUS  = ['PENDING_ORDER', 'ORDER_PLACED', 'IN_PRODUCTION', 'IN_TRANSIT', 'OTHER', 'MODIFIED', 'COMPLETED', 'CANCELLED', 'EXPIRED']
SCENARIO_ONLY_PO  = 'only_po'
SCENARIO_PAYMENT_TOKEN  = 'payment_token'

Properties

$action_log_details  : mixed
$checkout  : string
$confirmed_at  : string|null
$coupon_applied  : string|null
$created_at  : string|null
$customer  : Customer
$customer_id  : int
$discount  : float
$enable_notes_1  : int
$enable_notes_2  : int
$id  : int
$modified  : int
$notes_1  : string
$notes_2  : string
$only_discount  : mixed
$open_po  : int
$origin  : string
$parent_po_id  : int
$payment_request_id  : string|null
$po  : string
$po_no  : string
$po_status  : string
$productOrderDetails  : array<string|int, ProductOrderDetail>
$receipt_no  : string|null
$revision_no  : int
$shipping_address  : string
$shipping_fee  : float
$token  : string
$total  : float
$type  : string
$updated_at  : string|null

Methods

beforeSave()  : mixed
calculateTotal()  : array<string|int, mixed>
Desc: Calcula el total de la orden de pago.
calculateTotalByModel()  : array{total: float, subtotals: array{normal: float, discount: float}, shipping_fee: float, currency: string, count: int}
Desc: Calculo del totales usando modelo como parametro para evitar la doble consulta en el metodo
customers()  : ProductOrder
Desc: Retorna una clase anónima que retorna el método fields() modificado
dateFormatter()  : IntlDateFormatter|null
Desc: Retorna objeto para imprimir la fecha en el formato especificado por parámetros.
extraFields()  : mixed
fields()  : array<string|int, mixed>
Desc: Columnas a utilizar de los registros
filterITemsByType()  : array<string|int, ProductOrderDetail>
Desc: Filtra el listado de productos de una orden por tipo.
findByToken()  : static|null|ProductOrder
Desc: Retorna el modelo de {@see ProductOrder} en caso de que el token sea válido
generatePaymentLink()  : string
Desc: Construye un enlace de pago.
generatePoNumber()  : string
Desc: Retorna el PO en string.
generateToken()  : void
Desc: Generates token in base64 // genera un token en base64 y se asigna en {@see ProductOrder::$token}
getCustomer()  : ActiveQuery
Desc: Obtiene query para [[Customer]].
getProductOrderDetails()  : ActiveQuery
Desc: Obtiene query para [[ProductOrderDetails]].
getTimeFromToken()  : int
Desc: Obtiene el tiempo indicado en el token (segundos), el token debe de ser Base64.
getTimeRemaining()  : int
Desc: Obtiene el tiempo restante según el tiempo indicado en el parámetro. (segundos)
getTotalReturns()  : mixed
jsonDecode()  : mixed
jsonEncode()  : void
Desc método para codificar un array de datos a JSONSTRING,
readableStatus()  : string
Desc: Retorna los estados 'nativos' usados del PO a estados legibles para usuarios.
requestCheckAvailableStock()  : mixed
requestUpdateStockInNewPO()  : void
Desc: Solicita actualizacion de stock basado en PO.
rules()  : array<string|int, mixed>
Desc: Reglas de validación.
scenarios()  : array<string|int, mixed>
Desc: Retorna la lista de escenarios posibles para la validación de atributos.
sendMail()  : bool
Desc: Envía un email con el enlace de pago indicado por parámetro.
sendOwnerNotification()  : bool
sendReceiptByEmail()  : bool
Desc: Envía el recibo de pago por email. Retorna un booleano (true) en caso de éxito.
tableName()  : string
Desc: Nombre de la tabla de la base de datos.
totalReturns()  : float
Desc: Retorna el total a devolver de la orden de pago (PO). Se toma en cuenta e número de revisión para realizar el cálculo.

Constants

PO_STATUS

public mixed PO_STATUS = ['PENDING_ORDER', 'ORDER_PLACED', 'IN_PRODUCTION', 'IN_TRANSIT', 'OTHER', 'MODIFIED', 'COMPLETED', 'CANCELLED', 'EXPIRED']

SCENARIO_ONLY_PO

public mixed SCENARIO_ONLY_PO = 'only_po'

SCENARIO_PAYMENT_TOKEN

public mixed SCENARIO_PAYMENT_TOKEN = 'payment_token'

Properties

$checkout

public string $checkout

Tipo de plataforma de pago a usar.

$coupon_applied

public string|null $coupon_applied

Cupon aplicado

$enable_notes_1

public int $enable_notes_1

Habilitar notas 1

$enable_notes_2

public int $enable_notes_2

Habilitar notas 2

$notes_1

public string $notes_1

Notas. No representa un ajuste en el proceso.

$notes_2

public string $notes_2

Notas 2. Representa un ajuste, por ej, cambio de precio o reembolso.

$payment_request_id

public string|null $payment_request_id

ID de la solicitud proporcionado por la pasarela de pago

$po_no

public string $po_no

Numero consecutivo de la orden;

$po_status

public string $po_status

Estatus de la orden de pago.

$receipt_no

public string|null $receipt_no

Numero de recibo de clip

$shipping_fee

public float $shipping_fee

Comision de envio

$token

public string $token

Token para validar URL de link de pago de Paypal u otros.

Methods

beforeSave()

public beforeSave(mixed $insert) : mixed
Parameters
$insert : mixed

calculateTotal()

Desc: Calcula el total de la orden de pago.

public static calculateTotal(int $id) : array<string|int, mixed>

Notes: Hace el uso del método calculateTotalByModel()

Ref: ProductOrder::calculateTotalByModel()

Date: 2025-08-04, Version: v0.2507.01

Example: n/a

Parameters
$id : int

ID de la orden de pago.

Return values
array<string|int, mixed>

Array con total y subtotales.

calculateTotalByModel()

Desc: Calculo del totales usando modelo como parametro para evitar la doble consulta en el metodo

public static calculateTotalByModel(ProductOrder $model) : array{total: float, subtotals: array{normal: float, discount: float}, shipping_fee: float, currency: string, count: int}

Notes: n/a, Ref: n/a

Date: 2025-08-04, Version: v0.2507.01

Example: n/a

Parameters
$model : ProductOrder
Return values
array{total: float, subtotals: array{normal: float, discount: float}, shipping_fee: float, currency: string, count: int}

customers()

Desc: Retorna una clase anónima que retorna el método fields() modificado

public customers() : ProductOrder

Notes: Este método está en desuso

Ref: n/a

Date: 2025-08-04, Version: v0.2507.01

Example: n/a

Return values
ProductOrder

dateFormatter()

Desc: Retorna objeto para imprimir la fecha en el formato especificado por parámetros.

public static dateFormatter([int $dateType = IntlDateFormatter::MEDIUM ][, int $timeType = IntlDateFormatter::NONE ]) : IntlDateFormatter|null

Hace uso del idioma indicado en las variables de entorno. (UCI)

Notes: n/a,

Ref: https://www.php.net/manual/es/class.intldateformatter.php

Date: 2025-08-04, Version: v0.2507.01

Example: n/a

Parameters
$dateType : int = IntlDateFormatter::MEDIUM
$timeType : int = IntlDateFormatter::NONE
Return values
IntlDateFormatter|null

filterITemsByType()

Desc: Filtra el listado de productos de una orden por tipo.

public static filterITemsByType(array<string|int, ProductOrderDetail$items, string $type) : array<string|int, ProductOrderDetail>

Notes: Solo devuelve los elementos que son diferentes de CANCELED en status,

Ref: n/a

Date: 2025-08-04, Version: v0.2507.01

Parameters
$items : array<string|int, ProductOrderDetail>
$type : string

"catalog"|"model"

Return values
array<string|int, ProductOrderDetail>

findByToken()

Desc: Retorna el modelo de {@see ProductOrder} en caso de que el token sea válido

public static findByToken(string $token) : static|null|ProductOrder

Notes: n/a, Ref: n/a

Date: 2025-08-04, Version: v0.2507.01

Example: n/a

Parameters
$token : string

Token asignado al PO

Return values
static|null|ProductOrder

Desc: Construye un enlace de pago.

public static generatePaymentLink(string $token) : string

Notes: Utiliza la URL del cliente indicado en los parámetros del sistema: baseClientURL,

Ref: n/a

Date: 2025-08-04, Version: v0.2507.01

Example: n/a

Parameters
$token : string

Token generado para autorizar y auntenticar el pago del PO.

Return values
string

generatePoNumber()

Desc: Retorna el PO en string.

public static generatePoNumber(int $number) : string

Notes: n/a, Ref:n/a

Date: 2025-08-04, Version: v0.2507.01

Example:

echo ProductOrder::generatePoNumber(5);
//Result: PO_0005
Parameters
$number : int
Return values
string

generateToken()

Desc: Generates token in base64 // genera un token en base64 y se asigna en {@see ProductOrder::$token}

public generateToken() : void

Notes: n/a, Ref: n/a

Date: 2025-08-04, Version: v0.2507.01

Example: n/a

getTimeFromToken()

Desc: Obtiene el tiempo indicado en el token (segundos), el token debe de ser Base64.

public static getTimeFromToken(string $token) : int

Notes: n/a, Ref: n/a

Date: 2025-08-04, Version: v0.2507.01

Example: n/a

Parameters
$token : string
Return values
int

getTimeRemaining()

Desc: Obtiene el tiempo restante según el tiempo indicado en el parámetro. (segundos)

public static getTimeRemaining(int $time) : int

Notes: n/a, Ref: n/a

Date: 2025-08-04, Version: v0.2507.01

Example: n/a

Parameters
$time : int
Return values
int

getTotalReturns()

public static getTotalReturns(mixed $model) : mixed
Parameters
$model : mixed

jsonDecode()

public jsonDecode(mixed $attribute) : mixed
Parameters
$attribute : mixed

jsonEncode()

Desc método para codificar un array de datos a JSONSTRING,

public jsonEncode(mixed $attribute, mixed $value) : void
Parameters
$attribute : mixed
$value : mixed

readableStatus()

Desc: Retorna los estados 'nativos' usados del PO a estados legibles para usuarios.

public static readableStatus(string $nativeStatus) : string

Notes: Se toma en cuenta el idioma por lo que se retornará en inglés o español según el caso. (ver en app/messages las traducciones)

Ref: ProductOrder::$PO_STATUS

Date: 2025-08-04, Version: v0.2507.01

Example: n/a

Parameters
$nativeStatus : string
Return values
string

requestUpdateStockInNewPO()

Desc: Solicita actualizacion de stock basado en PO.

public static requestUpdateStockInNewPO(ProductOrder $po) : void

Notes: El PO NO puede ser revision 0 pues tiene que haber un PO con una copia previa (BACKUP o LOG),

Ref: n/a

Date: 2025-08-04, Version: v0.2507.01

Parameters
$po : ProductOrder
Tags
throws
Exception

sendMail()

Desc: Envía un email con el enlace de pago indicado por parámetro.

public sendMail(mixed $email, mixed $paymentLink) : bool

Notes:n/a, Ref: n/a

Date: 2025-08-04, Version: v0.2507.01

Example: n/a

Parameters
$email : mixed
$paymentLink : mixed
Return values
bool

sendOwnerNotification()

public static sendOwnerNotification(string $po) : bool
Parameters
$po : string
Return values
bool

sendReceiptByEmail()

Desc: Envía el recibo de pago por email. Retorna un booleano (true) en caso de éxito.

public static sendReceiptByEmail(ProductOrder $productOrder, array{name: string, full_name: string, email: string} $customerData, string $desc) : bool

Notes: n/a, Ref: n/a

Date: 2025-08-04, Version: v0.2507.01

Example: n/a

Parameters
$productOrder : ProductOrder
$customerData : array{name: string, full_name: string, email: string}
$desc : string
Return values
bool

totalReturns()

Desc: Retorna el total a devolver de la orden de pago (PO). Se toma en cuenta e número de revisión para realizar el cálculo.

public static totalReturns(ProductOrder $model) : float

Notes: Se tiene en cuenta la diferencia entre una revisión y la revisión anterior. También se toma en cuenta si se trata de un PO actual o de backup/registro.

Ref: n/a

Date: 2025-08-04, Version: v0.2507.01

Example: n/a

Parameters
$model : ProductOrder
Tags
throws
InvalidConfigException
Return values
float

        
On this page

Search results