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
GST_PERCENT
public
mixed
GST_PERCENT
= 5
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
$action_log_details
public
mixed
$action_log_details
$checkout
public
string
$checkout
Tipo de plataforma de pago a usar.
$confirmed_at
public
string|null
$confirmed_at
$coupon_applied
public
string|null
$coupon_applied
Cupon aplicado
$created_at
public
string|null
$created_at
$customer
public
Customer
$customer
$customer_id
public
int
$customer_id
ID del
$discount
public
float
$discount
Descuento en %;
$enable_notes_1
public
int
$enable_notes_1
Habilitar notas 1
$enable_notes_2
public
int
$enable_notes_2
Habilitar notas 2
$id
public
int
$id
$modified
public
int
$modified
$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.
$only_discount
public
mixed
$only_discount
$open_po
public
int
$open_po
$origin
public
string
$origin
$parent_po_id
public
int
$parent_po_id
$payment_request_id
public
string|null
$payment_request_id
ID de la solicitud proporcionado por la pasarela de pago
$po
public
string
$po
Numero de la orden de compra
$po_no
public
string
$po_no
Numero consecutivo de la orden;
$po_status
public
string
$po_status
Estatus de la orden de pago.
$productOrderDetails
public
array<string|int, ProductOrderDetail>
$productOrderDetails
$receipt_no
public
string|null
$receipt_no
Numero de recibo de clip
$revision_no
public
int
$revision_no
$shipping_address
public
string
$shipping_address
$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.
$total
public
float
$total
Total a pagar
$type
public
string
$type
$updated_at
public
string|null
$updated_at
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
ProductOrderdateFormatter()
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|nullextraFields()
public
extraFields() : mixed
fields()
Desc: Columnas a utilizar de los registros
public
fields() : array<string|int, mixed>
Notes: n/a
Ref: https://www.yiiframework.com/doc/api/2.0/yii-db-activerecord#fields()-detail
Date: 2025-08-04, Version: v0.2507.01
Example: n/a
Return values
array<string|int, mixed>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|ProductOrdergeneratePaymentLink()
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
stringgeneratePoNumber()
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
stringgenerateToken()
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
getCustomer()
Desc: Obtiene query para [[Customer]].
public
getCustomer() : ActiveQuery
Notes: n/a,
Ref: https://www.yiiframework.com/doc/api/2.0/yii-db-activequery
Date: 2025-08-04, Version: v0.2507.01
Example: n/a
Return values
ActiveQuerygetProductOrderDetails()
Desc: Obtiene query para [[ProductOrderDetails]].
public
getProductOrderDetails() : ActiveQuery
Notes: n/a,
Ref: https://www.yiiframework.com/doc/api/2.0/yii-db-activequery
Date: 2025-08-04, Version: v0.2507.01
Example: n/a
Return values
ActiveQuerygetTimeFromToken()
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
intgetTimeRemaining()
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
intgetTotalReturns()
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
stringrequestCheckAvailableStock()
public
static requestCheckAvailableStock(ProductOrder $po) : mixed
Parameters
- $po : ProductOrder
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
rules()
Desc: Reglas de validación.
public
rules() : array<string|int, mixed>
Notes: n/a
Ref: https://www.yiiframework.com/doc/api/2.0/yii-base-model#rules()-detail
Date: 2025-08-04, Version: v0.2507.01
Example: n/a
Return values
array<string|int, mixed>scenarios()
Desc: Retorna la lista de escenarios posibles para la validación de atributos.
public
scenarios() : array<string|int, mixed>
Notes: Deshabilita o deshabilita validaciones en atributos según se requiera.
Ref: https://www.yiiframework.com/doc/api/2.0/yii-db-activerecord#scenarios()-detail
Date: 2025-08-04, Version: v0.2507.01
Example: n/a
Return values
array<string|int, mixed> —Scenarios con los correspondientes atributos activos.
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
boolsendOwnerNotification()
public
static sendOwnerNotification(string $po) : bool
Parameters
- $po : string
Return values
boolsendReceiptByEmail()
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
booltableName()
Desc: Nombre de la tabla de la base de datos.
public
static tableName() : string
Notes: n/a
Ref: https://www.yiiframework.com/doc/api/2.0/yii-db-activerecord#tableName()-detail
Date: 2025-08-04, Version: v0.2507.01
Example: n/a
Return values
string —Nombre de la tabla
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