function crearDocumentoYSolicitud($arrayCabecera, $arrayLineas, $tmpString, $rideContent, $rideExtension, $fullXml) { $handlerRequestCore = new RequestCore(); $handlerAttachmentCore = new AttachmentCore(); $handlerRequestMetadataCore = new RequestMetadataCore(); // Verificar el usuario creador / al que se asignará $creator = Responsable::whereRuc($arrayCabecera['ruc'])->lists('responsable')->implode(','); if (empty($creator)) { $creator = FlowSettingsCore::get(FLOW_RECEPCIONDOCUMENTOS, "RDE_DEF_ASIGNACION"); } if ($arrayCabecera["tipo_doc"] == "FAC") { $customStep = FlowSettingsCore::get(FLOW_RECEPCIONDOCUMENTOS, "RDE_STEP_FACTURAS"); } else { $customStep = FlowSettingsCore::get(FLOW_RECEPCIONDOCUMENTOS, "RDE_STEP_OTROS"); $creator = ''; } // Crear solicitud por cada proveedor $request_flow = FLOW_RECEPCIONDOCUMENTOS; $request_id = $handlerRequestCore->getLastGeneralRequestId() + 1; $inner_request_id = $handlerRequestCore->getLastGeneralRequestId($request_flow) + 1; $request_name = $request_description = $arrayCabecera["tipo_doc"] . " - " . $arrayCabecera["razonSocial"]; $request_createdby = "admin"; $request_id = $handlerRequestCore->createNewRequest($request_id, $inner_request_id, $request_flow, $request_name, $request_description, $request_createdby, $creator, $customStep); // Crear documento $arrayCabecera['ef_id'] = $request_id; $documento = Documento::create($arrayCabecera); // Setear id_documento en líneas e insertar foreach ($arrayLineas as &$linea) { $linea['id_documento'] = $documento->id; DocumentoLinea::create($linea); } // Guardar archivos temporales en disco $xmlFile = dirname(__FILE__) . "/facturas/tmpAttachments/tmp.xml"; $pdfFile = dirname(__FILE__) . "/facturas/tmpAttachments/tmp." . $rideExtension; $filetypeXml = FlowSettingsCore::get(FLOW_RECEPCIONDOCUMENTOS, "RDE_FILE_XML"); $filetypePdf = FlowSettingsCore::get(FLOW_RECEPCIONDOCUMENTOS, "RDE_FILE_PDF"); //file_put_contents($xmlFile, $tmpString); file_put_contents($xmlFile, $fullXml); $handlerAttachmentCore->addAttachmentToRequest($request_id, $filetypeXml, $xmlFile, $_SESSION["environment_path"], "admin", "Documento XML"); if (!empty($rideExtension) && !empty($rideContent)) { file_put_contents($pdfFile, $rideContent); $handlerAttachmentCore->addAttachmentToRequest($request_id, $filetypePdf, $pdfFile, $_SESSION["environment_path"], "admin", "Documento PDF"); } // Setear variables de solicitud $handlerRequestMetadataCore->setVariable($request_id, "RDE-TIPO-DOCUMENTO", $arrayCabecera["tipo_doc"]); $handlerRequestMetadataCore->setVariable($request_id, "RDE-NUM-DOCUMENTO", $arrayCabecera["estab"] . "-" . $arrayCabecera["ptoEmi"] . "-" . $arrayCabecera["secuencial"]); $handlerRequestMetadataCore->setVariable($request_id, "RDE-NOMBRE-PROVEEDOR", $arrayCabecera["razonSocial"]); }
$tmpArray = explode("||", $_POST["detalles"][$i]); $reclamoDetalleData = array("reclamo" => $reclamo_id, "factura" => $tmpArray[0], "factura_fecha" => $tmpArray[9], "producto_comercial" => $tmpArray[2], "codigo_item" => $tmpArray[1], "descripcion_item" => $tmpArray[3], "precio_unitario" => $tmpArray[4], "cantidad_original" => $tmpArray[5], "cantidad_reclamo" => $tmpArray[6], "valor_reclamo" => $tmpArray[7], "lote_reclamo" => $tmpArray[8]); $handlerReclamoDetalleCore->insert($reclamoDetalleData); $listaFacturas[] = $tmpArray[0]; } } $listaFacturas = array_unique($listaFacturas); if (isset($_REQUEST["archivos"])) { for ($i = 0; $i < count($_POST["archivos"]); $i++) { $tmpArray = explode("||", $_POST["archivos"][$i]); if ($tmpArray[0] != "" && $tmpArray[1] != "") { $handlerAttachmentCore->addAttachmentToRequest($request_id, $tmpArray[0], $tmpArray[1], $_SESSION["environment_path"], "admin", "Adjunto del cliente"); } } } $status = $reclamo_id; $handlerRequestMetadataCore->setVariable($request_id, "REC-CODIGO-CLIENTE", $_POST["cliente_codigo"]); $handlerRequestMetadataCore->setVariable($request_id, "REC-NOMBRE-CLIENTE", $_POST["cliente_nombre"]); $handlerRequestMetadataCore->setVariable($request_id, "REC-IDENTIFICACION-CLIENTE", $_POST["cliente_identificacion"]); $handlerRequestMetadataCore->setVariable($request_id, "REC-EMAIL-CLIENTE", $_POST["cliente_email"]); $handlerRequestMetadataCore->setVariable($request_id, "REC-EMAIL-CONTACTO", $_POST["contacto_email"]); $claseData = $handlerClaseCore->getRecordById($_POST["reclamo_clase"]); $handlerRequestMetadataCore->setVariable($request_id, "REC-CLASE", $claseData["nombre"]); $handlerRequestMetadataCore->setVariable($request_id, "REC-TIPO", $handlerGeneralCore->getLabelTipoReclamo($tipo)); $handlerRequestMetadataCore->setVariable($request_id, "REC-NUMERO-FACTURA", implode(",", $listaFacturas)); $handlerRequestMetadataCore->setVariable($request_id, "REC-NUMERO-INTERNO", $reclamoResult[0]["inner_id"]); $handlerRequestMetadataCore->setVariable($request_id, "REC-NUMERO-REC-CLIENTE", $_POST["reclamo_num_interno"]); $handlerRequestMetadataCore->setVariable($request_id, "REC-DESCRIPCION", $_POST["reclamo_descripcion"]); $handlerRequestMetadataCore->setVariable($request_id, "REC-MONTO-DECISION", $reclamo_monto); $handlerRequestMetadataCore->setVariable($request_id, "REC-MONTO-NC", 0); echo $status;