本文整理汇总了PHP中RequestCore::completeTask方法的典型用法代码示例。如果您正苦于以下问题:PHP RequestCore::completeTask方法的具体用法?PHP RequestCore::completeTask怎么用?PHP RequestCore::completeTask使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类RequestCore
的用法示例。
在下文中一共展示了RequestCore::completeTask方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: consolidarRequisiciones
/**
* Consolida las requisiciones correspondientes y mueve las solicitudes en EF
* @return Array
*/
public function consolidarRequisiciones()
{
$returnArray = array('status' => true, 'message' => '');
$input = Request::createFromGlobals();
$requestCore = new \RequestCore();
$flow = $_SESSION['user_flow'];
$step = FlowSettings::get($_SESSION['user_flow'], 'ADQ_STEP_CONSOLIDATION');
$requisiciones = Requisicion::getRequisicionesParaConsolidar();
$ordenescompra = OrdenCompra::getOrdenesCompraParaConsolidar();
// Tomar la tarea actual, si no está completada salir
foreach ($requisiciones as $requisicion) {
if ($requisicion->asignada_totalmente == 0) {
$returnArray['status'] = false;
$returnArray['message'] = 'La requisición ' . $requisicion->id . ' no se encuentra asignada por completo. No se puede continuar';
return $returnArray;
}
}
// Cambiar estado de las ordenes de compra cuyas requisiciones estén totalmente asignadas
foreach ($ordenescompra as $ordencompra) {
$ordencompra->estado = 'C';
$ordencompra->save();
}
foreach ($requisiciones as $requisicion) {
// Solo completar tareas de requisiciones asignadas totalmente
if ($requisicion->asignada_totalmente == 1) {
// Cambiar estado a 'C' (Consolidada)
$requisicion->estado = 'C';
$requisicion->save();
$task = $requisicion->ef_request->open_tasks[0];
// Completar tareas diferentes a la actual
// (No se completa la actual porque EF lo hace por default)
if ($task->task_id != $input->task_id) {
$requestCore->completeTask($task->task_request, $task->task_id, $input->flow_id, $input->step_id, $input->user_id, 'Requisición consolidada por el usuario ' . $_SESSION['user_id'], 'next');
}
}
}
return $returnArray;
}
示例2: procesarOrdenesCompra
public function procesarOrdenesCompra()
{
$input = Request::createFromGlobals();
$returnArray = array('status' => true, 'message' => '');
$requestCore = new \RequestCore();
$arrayRequisiciones = [];
// Traer ordenes de compra
$ordenes_compra = $this->getOrdenesCompra($input->request_id);
// Iterar las ordenes de compra
foreach ($ordenes_compra as $orden_compra) {
// Verificar solo las que tengan cotización seleccionada
$seleccionada = false;
$cotizaciones = $orden_compra->cotizaciones;
foreach ($cotizaciones as $cotizacion) {
if ($cotizacion->estado == 'S') {
$seleccionada = true;
break;
}
}
if ($seleccionada) {
// Actualizar cabecera de OC
$orden_compra->update(['estado' => 'S']);
// Llenar arreglo con número de requisiciones correspondientes
foreach ($orden_compra->lineas as $linea) {
$arrayRequisiciones[] = $linea->linea_requisicion->requisicion->id;
}
}
}
// Mover ef_requests correspondientes
$arrayRequisiciones = array_unique($arrayRequisiciones);
foreach ($arrayRequisiciones as $id_requisicion) {
$requisicion = Requisicion::find($id_requisicion);
$task = $requisicion->ef_request->open_tasks[0];
// Completar tareas diferentes a la actual
// (No se completa la actual porque EF lo hace por default)
if ($task->task_id != $input->task_id) {
$requestCore->completeTask($task->task_request, $task->task_id, $input->flow_id, $input->step_id, $input->user_id, 'Proveedor seleccionado por el usuario ' . $_SESSION['user_id'], 'next');
}
}
return $returnArray;
}
示例3: generarOrdenCompra
public function generarOrdenCompra()
{
$input = Request::createFromGlobals();
$returnArray = array("status" => true, "message" => "");
$requestCore = new \RequestCore();
$arrayRequisiciones = [];
$ordenes_compra = $this->getOrdenesCompra($input->request_id);
$handlerWebServiceCore = new WebServiceCore();
foreach ($ordenes_compra as $orden_compra) {
$clase = Clase::find($orden_compra->id_clase);
if ($orden_compra->ext_id == '') {
$wsdl = FlowSettings::get(FLOW_ADQUISICIONES, "ADQ_WS_CREAOCHACIENDAS_WSDL");
$operation = FlowSettings::get(FLOW_ADQUISICIONES, "ADQ_WS_CREAOCHACIENDAS_OPERATION");
$namespace = FlowSettings::get(FLOW_ADQUISICIONES, "ADQ_WS_CREAOCHACIENDAS_NAMESPACE");
$soapAction = FlowSettings::get(FLOW_ADQUISICIONES, "ADQ_WS_CREAOCHACIENDAS_SOAPACTION");
$params = ['Tipo' => 'OCRE', 'Hph_phwhse' => $orden_compra->bodega, 'Hph_phvend' => $orden_compra->proveedor->codigo, 'Hph_phbamt' => $orden_compra->valor_total, 'Hpo_pprod' => $clase->bien_economico, 'Hpo_pqord' => $orden_compra->cantidad_total, 'Hpo_pecst' => $orden_compra->valor_total, 'Hpo_podesc' => 'Orden de compra BPM - ' . $orden_compra->id];
$result = $handlerWebServiceCore->callWebService($wsdl, $operation, $namespace, $soapAction, $params, true);
if (!$result) {
$returnArray['status'] = false;
$returnArray['message'] = 'No se pudo consumir el servicio web para creación de orden de compra';
return;
}
if ($result['Longvarchar'] != '') {
$returnArray['status'] = false;
$returnArray['message'] = 'Error BPCS: ' . $result['Longvarchar'];
return;
}
$numero_oc = $result['Hph_phord'];
// Cambiar estado de orden de compra
$orden_compra->update(['estado' => 'G', 'fecha_creacion_erp' => date('Y-m-d H:i:s'), 'id_creador' => $_SESSION['user_id'], 'ext_id' => $numero_oc]);
// Agregar recepción planificada del total de OC
RecepcionPlanificada::create(['id_ordencompra' => $orden_compra->id, 'fecha' => date('Y-m-d', strtotime('+' . $orden_compra->tiempo_entrega . ' day')), 'observacion' => 'Entrega total estimada de la orden de compra']);
// Llenar arreglo con número de requisiciones correspondientes
foreach ($orden_compra->lineas as $linea) {
$arrayRequisiciones[] = $linea->linea_requisicion->requisicion->id;
}
// Guardar registros de precio en la base de datos
foreach ($orden_compra->lineas as $linea) {
ProductoPrecio::create(['id_producto' => $linea->id_producto, 'id_proveedor' => $orden_compra->id_proveedor, 'fecha' => date('Y-m-d H:i:s'), 'precio' => $linea->valor, 'tiempo' => $orden_compra->tiempo_entrega]);
}
// Notificar a responsable(s) de bodega
$responsableArray = explode(',', $orden_compra->clase->responsable_bodegas);
// Notificar a usuarios creadores de requisición
foreach ($orden_compra->lineas as $linea) {
$responsableArray[] = $linea->linea_requisicion->requisicion->id_solicitante;
}
$responsableArray = array_unique($responsableArray);
foreach ($responsableArray as $responsable) {
$usuario = User::find($responsable);
if ($usuario) {
MailController::sendGeneralMail([['email' => $usuario->user_email]], 'Nueva Orden de Compra generada - ' . $orden_compra->clase->nombre, view('Adquisiciones.Emails.orden_compra_interna', compact('usuario', 'orden_compra')));
}
}
// Notificar a proveedor
// Consultar la cotización seleccionada para la OC
$cotizacion_seleccionada = Cotizacion::with(['lineas.linea_ordencompra.producto', 'contacto.proveedor'])->whereEstado('S')->whereIdOrdencompra($orden_compra->id)->first();
MailController::sendGeneralMail([['email' => $cotizacion_seleccionada->contacto->email]], 'Nueva orden de compra', view('Adquisiciones.Emails.orden_compra_proveedor', compact('orden_compra', 'cotizacion_seleccionada')));
}
}
// Mover ef_requests correspondientes
$arrayRequisiciones = array_unique($arrayRequisiciones);
foreach ($arrayRequisiciones as $id_requisicion) {
$requisicion = Requisicion::find($id_requisicion);
$task = $requisicion->ef_request->open_tasks[0];
$this->generarOrdenCompraPDF($task->task_request);
// Completar tareas diferentes a la actual
// (No se completa la actual porque EF lo hace por default)
if ($task->task_id != $input->task_id) {
$requestCore->completeTask($task->task_request, $task->task_id, $input->flow_id, $input->step_id, $input->user_id, 'Orden de compra generada en el ERP', 'next');
}
// Generar PDF de orden de compra y adjuntar a solicitud
$this->generarOrdenCompraPDF($task->task_request);
}
return $returnArray;
}
示例4: AprobarCotizacion
public function AprobarCotizacion()
{
$input = Request::createFromGlobals();
$returnArray = array("status" => true, "message" => "");
$requestCore = new \RequestCore();
$arrayRequisiciones = [];
// Traer ordenes de compra
$ordenes_compra = $this->getCotizaciones($input->request_id);
foreach ($ordenes_compra as $orden_compra) {
// Iterar las cotizaciones
foreach ($orden_compra->cotizaciones as $cotizacion) {
if ($cotizacion->estado == "S") {
// Depende del siguiente paso:
// - Si es selección de proveedor cambiar el estado de OC a 'I' - Ingresada
// - Si es generación de OC cambiar el estado a 'A' - Aprobada. Copiar cantidades de Cotización
if ($input->step_id == FlowSettings::get($_SESSION['user_flow'], 'ADQ_STEP_SELECCIONPROV')) {
$cotizacion->ordencompra->update(['estado' => 'I']);
} else {
// Actualizar cabecera de OC
$cotizacion->ordencompra->update(['id_proveedor' => $cotizacion->contacto->id_proveedor, 'forma_pago' => $cotizacion->forma_pago, 'tiempo_entrega' => $cotizacion->tiempo_entrega, 'bodega' => FlowSettings::get(FLOW_ADQUISICIONES, "ADQ_BODEGA_DEFAULT_OC"), 'id_aprobador_cotizacion' => $_SESSION['user_id'], 'id_aprobador_ordencompra' => $_SESSION['user_id'], 'estado' => 'A']);
// Actualizar líneas de OC
foreach ($cotizacion->lineas as $linea) {
$linea->linea_ordencompra->update(['cantidad' => $linea->cantidad, 'valor' => $linea->valor_unitario_final, 'observacion' => $linea->observacion, 'estado' => 'A']);
}
}
// Llenar arreglo con número de requisiciones correspondientes
foreach ($cotizacion->lineas as $linea) {
$arrayRequisiciones[] = $linea->linea_ordencompra->linea_requisicion->requisicion->id;
}
}
}
}
// Mover ef_requests correspondientes
$arrayRequisiciones = array_unique($arrayRequisiciones);
foreach ($arrayRequisiciones as $id_requisicion) {
$requisicion = Requisicion::find($id_requisicion);
$task = $requisicion->ef_request->open_tasks[0];
// Completar tareas diferentes a la actual
// (No se completa la actual porque EF lo hace por default)
if ($task->task_id != $input->task_id) {
// TODO: Este valor cambia de acuerdo al siguiente paso
if ($input->step_id == FlowSettings::get($_SESSION['user_flow'], 'ADQ_STEP_SELECCIONPROV')) {
$description = 'Cotización no aprobada';
} else {
$description = 'Cotización aprobada por el usuario ' . $_SESSION['user_id'];
}
$requestCore->completeTask($task->task_request, $task->task_id, $input->flow_id, $input->step_id, $input->user_id, $description, 'next');
}
}
return $returnArray;
}
示例5: AprobarOrdenCompra
public function AprobarOrdenCompra()
{
$input = Request::createFromGlobals();
$returnArray = array("status" => true, "message" => "");
$requestCore = new \RequestCore();
$arrayRequisiciones = [];
// Traer ordenes de compra
$ordenes_compra = OrdenCompra::getOrdenesCompraParaAprobacionOrdenCompra($input->request_id);
foreach ($ordenes_compra as $orden_compra) {
// Depende del siguiente paso:
// - Si es selección de proveedor cambiar el estado de OC a 'C' - Consolidada
// - Si es generación de OC cambiar el estado a 'O' - orden de compra aprobada. Copiar cantidades de Cotización
if ($input->step_id == FlowSettings::get($_SESSION['user_flow'], 'ADQ_STEP_SELECCIONPROV')) {
$orden_compra->update(['estado' => 'C']);
} else {
// Actualizar cabecera de OC
$orden_compra->update(['id_aprobador_ordencompra' => $_SESSION['user_id'], 'estado' => 'O']);
// Actualizar líneas de OC
foreach ($orden_compra->lineas as $linea) {
$linea->update(['estado' => 'O']);
// Llenar arreglo con número de requisiciones correspondientes
$arrayRequisiciones[] = $linea->linea_requisicion->requisicion->id;
}
}
}
// Mover ef_requests correspondientes
$arrayRequisiciones = array_unique($arrayRequisiciones);
foreach ($arrayRequisiciones as $id_requisicion) {
$requisicion = Requisicion::find($id_requisicion);
$task = $requisicion->ef_request->open_tasks[0];
// Completar tareas diferentes a la actual
// (No se completa la actual porque EF lo hace por default)
if ($task->task_id != $input->task_id) {
// TODO: Este valor cambia de acuerdo al siguiente paso
if ($input->step_id == FlowSettings::get($_SESSION['user_flow'], 'ADQ_STEP_SELECCIONPROV')) {
$description = 'Orden de Compra no aprobada';
} else {
$description = 'Orden de Compra aprobada por el usuario ' . $_SESSION['user_id'];
}
$requestCore->completeTask($task->task_request, $task->task_id, $input->flow_id, $input->step_id, $input->user_id, $description, 'next');
}
}
return $returnArray;
}