Esempio n. 1
0
    public function appendPosList ($client_id,$project_list,$doc_type){

        $condition = new CDbCriteria();
        $condition->condition =' documents.Client_ID = '.$client_id;
        $condition->addInCondition('documents.Project_ID ',$project_list);
        $condition->join = 'left join documents on documents.Document_ID = t.Document_ID';

        $models = Pos::model()->with('document')->findAll($condition);

        $xml_doc = $this->xml->createElement("document");
        if($models) {
            foreach ($models as $model) {
                $xml_row = $this->xml->createElement("row");

                foreach ($model->attributes as $key => $value) {
                    $xml_field = $this->xml->createElement("field",htmlentities($value,ENT_QUOTES | 'ENT_XML1'));
                    $xml_field->setAttribute('name', $key);
                    $xml_row->appendChild($xml_field);
                }

                //+ we need to insert several columns from document model
                    $xml_field = $this->xml->createElement("field",htmlentities($model->document->Origin,ENT_QUOTES | 'ENT_XML1'));
                    $xml_field->setAttribute('name', 'DocumentsOrigin');
                    $xml_row->appendChild($xml_field);
                            $xml_field = $this->xml->createElement("field",htmlentities($model->document->Created,ENT_QUOTES | 'ENT_XML1'));
                            $xml_field->setAttribute('name', 'DocumentsCreated');
                            $xml_row->appendChild($xml_field);
                                    $xml_field = $this->xml->createElement("field",htmlentities($model->document->Project_ID,ENT_QUOTES | 'ENT_XML1'));
                                    $xml_field->setAttribute('name', 'DocumentsProject_ID');
                                    $xml_row->appendChild($xml_field);
                // end of block

                /*documents processing*/
                $xml_doc_row = $this->xml->createElement("documents");
                foreach ($model->document->attributes as $key => $value) {
                    $xml_field = $this->xml->createElement("field",htmlentities($value,ENT_QUOTES | 'ENT_XML1'));
                    $xml_field->setAttribute('name', $key);
                    $xml_doc_row->appendChild($xml_field);
                }
                /*end of documents processing*/


                /*bacups processing*/

                $bacup = Documents::model()->findByPk($model->PO_Backup_Document_ID);
                $xml_backup_row = $this->xml->createElement("backup");
                if ($bacup){
                    foreach ($bacup->attributes as $key => $value) {
                        $xml_field = $this->xml->createElement("field",htmlentities($value,ENT_QUOTES | 'ENT_XML1'));
                        $xml_field->setAttribute('name', $key);
                        $xml_backup_row->appendChild($xml_field);
                    }
                }
                /*end of bacups processing*/

                /*po descriptions connected processing*/
                $xml_desc = $this->xml->createElement("po_desc_detail");
                foreach ($model->decr_details as $descs) {
                    $xml_dist_row = $this->xml->createElement("desc_row");

                    foreach ($descs as $key=>$value) {
                        $xml_field = $this->xml->createElement("field",htmlentities($value,ENT_QUOTES | 'ENT_XML1'));
                        $xml_field->setAttribute('name', $key);
                        $xml_dist_row->appendChild($xml_field);
                    }
                    $xml_desc->appendChild($xml_dist_row);
                /*end of descriptions processing*/

                /*dists processing*/
                $xml_dists = $this->xml->createElement("po_dists");
                foreach ($model->dists as $dist) {
                    $xml_dist_row = $this->xml->createElement("dist_row");

                    foreach ($dist as $key=>$value) {
                        $xml_field = $this->xml->createElement("field",htmlentities($value,ENT_QUOTES | 'ENT_XML1'));
                        $xml_field->setAttribute('name', $key);
                        $xml_dist_row->appendChild($xml_field);
                    }



                    $xml_dists->appendChild($xml_dist_row);
                }

                /*end of dists processing*/


                /*images processing*/
                $xml_image_row = $this->xml->createElement("images");
                $xml_field = $this->xml->createElement("field",$model->document->image->Image_ID);
                $xml_field->setAttribute('name', 'Image_ID');
                $xml_image_row->appendChild($xml_field);

                $filename = FileModification::prepareFileForExport($model->document->image->Document_ID,$doc_type,$this->filepath);
                $xml_field = $this->xml->createElement("field",$filename);
                $xml_field->setAttribute('name', 'File_Name');
                $xml_image_row->appendChild($xml_field);
                    $xml_row->appendChild($xml_field);

                $xml_field = $this->xml->createElement("field",$model->document->image->Mime_Type);
                $xml_field->setAttribute('name', 'Mime_Type');
                $xml_image_row->appendChild($xml_field);
                    $xml_row->appendChild($xml_field);

                $xml_field = $this->xml->createElement("field",$model->document->image->Pages_Count);
                $xml_field->setAttribute('name', 'Pages_Count');
                $xml_image_row->appendChild($xml_field);
                    $xml_row->appendChild($xml_field);
                /*end of images processing*/

                $xml_row->appendChild($xml_dists);
                $xml_row->appendChild($xml_desc);
                $xml_row->appendChild($xml_backup_row);
                $xml_row->appendChild($xml_doc_row);
                $xml_row->appendChild($xml_image_row);
                $xml_doc->appendChild($xml_row);


            }



            $this->wrapper->appendChild($xml_doc);


        }
    }
    }