From 5094f49a18d50f401694fa8aae36168ff9b52f24 Mon Sep 17 00:00:00 2001 From: velz Date: Fri, 15 Mar 2019 11:18:32 +0530 Subject: [PATCH] SCORE CHART SMALL ISSUES PANTHOMJS --- api/application/controllers/PD_Controller.php | 96 +++++--- api/application/docs/sample.pdf | Bin 39233 -> 69149 bytes .../helpers/getprocessedjson_helper.php | 2 +- api/application/libraries/Pdfgenerator.php | 9 +- api/application/models/PD_Model.php | 16 +- api/application/views/js/phantomchart.js | 12 + .../views/report_templates/JSONTOREPORT.php | 82 +++++-- .../views/report_templates/chart.png | Bin 0 -> 20089 bytes .../views/report_templates/pdscorechart.html | 137 +++++++++++ .../switched-column-chart.png | Bin 9492 -> 0 bytes api/application/views/welcome_message.php | 214 +++++++++++------- 11 files changed, 420 insertions(+), 148 deletions(-) create mode 100644 api/application/views/js/phantomchart.js create mode 100644 api/application/views/report_templates/chart.png create mode 100644 api/application/views/report_templates/pdscorechart.html delete mode 100644 api/application/views/report_templates/switched-column-chart.png diff --git a/api/application/controllers/PD_Controller.php b/api/application/controllers/PD_Controller.php index cb225940..d6dc7dda 100644 --- a/api/application/controllers/PD_Controller.php +++ b/api/application/controllers/PD_Controller.php @@ -659,7 +659,7 @@ class PD_Controller extends REST_Controller { $ch = curl_init(); $timeout = 5; - $url = 'https:/ssa.sineedge.com/officertracking/'.$randomString; + $url = 'https://ssa.sineedge.com/officertracking/'.$randomString; //echo "$url"; curl_setopt($ch,CURLOPT_URL,'http://tinyurl.com/api-create.php?url='.$url); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); @@ -682,8 +682,8 @@ class PD_Controller extends REST_Controller { unset($pd_details['mobile_no']); $pd_details['OTP'] = $OTP; - $client = new \GuzzleHttp\Client(); - $response = $client->post( $url); + // $client = new \GuzzleHttp\Client(); + // $response = $client->post($url); SMS_GUPSHUP::sendSMS($msg,$no); } @@ -3344,14 +3344,14 @@ class PD_Controller extends REST_Controller { $temp_netmargin = ($temp_netprofit/$total_sales_itemwise) * 100; } - $overall_summary_report['sales_calculated_by_itemwise']['sales_revenue'] = $total_sales_itemwise; - $purchases_flag ? $overall_summary_report['sales_calculated_by_itemwise']['purchases'] = $temp_purchases : $overall_summary_report['sales_calculated_by_itemwise']['cost_of_goods_sold'] = $temp_purchases; - $overall_summary_report['sales_calculated_by_itemwise']['grossprofit'] = $temp_grossprofit; - $overall_summary_report['sales_calculated_by_itemwise']['business_expenses'] = $overall_business_expenses_total; - $overall_summary_report['sales_calculated_by_itemwise']['netprofit'] = $temp_netprofit; - $overall_summary_report['sales_calculated_by_itemwise']['house_hold_expenses'] = $overall_household_total; - $overall_summary_report['sales_calculated_by_itemwise']['disposable_income'] = $temp_netprofit - $overall_household_total; - $overall_summary_report['sales_calculated_by_itemwise']['netmargin'] = $temp_netmargin; + $overall_summary_report['sales_calculated_by_itemwise']['sales_revenue'] = round($total_sales_itemwise); + $purchases_flag ? $overall_summary_report['sales_calculated_by_itemwise']['purchases'] = round($temp_purchases) : $overall_summary_report['sales_calculated_by_itemwise']['cost_of_goods_sold'] = round($temp_purchases); + $overall_summary_report['sales_calculated_by_itemwise']['grossprofit'] = round($temp_grossprofit); + $overall_summary_report['sales_calculated_by_itemwise']['business_expenses'] = round($overall_business_expenses_total); + $overall_summary_report['sales_calculated_by_itemwise']['netprofit'] = round($temp_netprofit); + $overall_summary_report['sales_calculated_by_itemwise']['house_hold_expenses'] = round($overall_household_total); + $overall_summary_report['sales_calculated_by_itemwise']['disposable_income'] = round($temp_netprofit - $overall_household_total); + $overall_summary_report['sales_calculated_by_itemwise']['netmargin'] = round($temp_netmargin,2); } if($sales_by_item_monthwise_flag == 1) @@ -3403,14 +3403,14 @@ class PD_Controller extends REST_Controller { $temp_netmargin = ($temp_netprofit/$total_sales_monthwise) * 100; } - $overall_summary_report['sales_calculated_by_monthwise']['sales_revenue'] = $total_sales_monthwise; - $purchases_flag ? $overall_summary_report['sales_calculated_by_monthwise']['purchases'] = $temp_purchases : $overall_summary_report['sales_calculated_by_monthwise']['cost_of_goods_sold'] = $temp_purchases; - $overall_summary_report['sales_calculated_by_monthwise']['grossprofit'] = $temp_grossprofit; - $overall_summary_report['sales_calculated_by_monthwise']['business_expenses'] = $overall_business_expenses_total; - $overall_summary_report['sales_calculated_by_monthwise']['netprofit'] = $temp_netprofit; - $overall_summary_report['sales_calculated_by_monthwise']['house_hold_expenses'] = $overall_household_total; - $overall_summary_report['sales_calculated_by_monthwise']['disposable_income'] = $temp_netprofit - $overall_household_total; - $overall_summary_report['sales_calculated_by_monthwise']['netmargin'] = $temp_netmargin; + $overall_summary_report['sales_calculated_by_monthwise']['sales_revenue'] = round($total_sales_monthwise); + $purchases_flag ? $overall_summary_report['sales_calculated_by_monthwise']['purchases'] = round($temp_purchases) : $overall_summary_report['sales_calculated_by_monthwise']['cost_of_goods_sold'] = round($temp_purchases); + $overall_summary_report['sales_calculated_by_monthwise']['grossprofit'] = round($temp_grossprofit); + $overall_summary_report['sales_calculated_by_monthwise']['business_expenses'] = round($overall_business_expenses_total); + $overall_summary_report['sales_calculated_by_monthwise']['netprofit'] = round($temp_netprofit); + $overall_summary_report['sales_calculated_by_monthwise']['house_hold_expenses'] = round($overall_household_total); + $overall_summary_report['sales_calculated_by_monthwise']['disposable_income'] = round($temp_netprofit - $overall_household_total); + $overall_summary_report['sales_calculated_by_monthwise']['netmargin'] = round($temp_netmargin,2); @@ -3441,14 +3441,14 @@ class PD_Controller extends REST_Controller { } - $overall_summary_report['sales_declared_by_customer']['sales_revenue'] = $total_sales_declared_by_customer; - $purchases_flag ? $overall_summary_report['sales_declared_by_customer']['purchases'] = $temp_purchases : $overall_summary_report['sales_declared_by_customer']['cost_of_goods_sold'] = $temp_purchases; - $overall_summary_report['sales_declared_by_customer']['grossprofit'] = $temp_grossprofit; - $overall_summary_report['sales_declared_by_customer']['business_expenses'] = $overall_business_expenses_total; - $overall_summary_report['sales_declared_by_customer']['netprofit'] = $temp_netprofit; - $overall_summary_report['sales_declared_by_customer']['house_hold_expenses'] = $overall_household_total; - $overall_summary_report['sales_declared_by_customer']['disposable_income'] = $temp_netprofit - $overall_household_total; - $overall_summary_report['sales_declared_by_customer']['netmargin'] = $temp_netmargin; + $overall_summary_report['sales_declared_by_customer']['sales_revenue'] = round($total_sales_declared_by_customer); + $purchases_flag ? $overall_summary_report['sales_declared_by_customer']['purchases'] = round($temp_purchases) : $overall_summary_report['sales_declared_by_customer']['cost_of_goods_sold'] = round($temp_purchases); + $overall_summary_report['sales_declared_by_customer']['grossprofit'] = round($temp_grossprofit); + $overall_summary_report['sales_declared_by_customer']['business_expenses'] = round($overall_business_expenses_total); + $overall_summary_report['sales_declared_by_customer']['netprofit'] = round($temp_netprofit); + $overall_summary_report['sales_declared_by_customer']['house_hold_expenses'] = round($overall_household_total); + $overall_summary_report['sales_declared_by_customer']['disposable_income'] = round($temp_netprofit - $overall_household_total); + $overall_summary_report['sales_declared_by_customer']['netmargin'] = round($temp_netmargin,2); } @@ -3465,9 +3465,9 @@ class PD_Controller extends REST_Controller { if(isset($overall_summary_report['sales_calculated_by_monthwise']['netmargin'])){ $temp_netmargin_array = array_merge($temp_netmargin_array,array($overall_summary_report['sales_calculated_by_monthwise']['netmargin'])); } if(isset($overall_summary_report['sales_calculated_by_itemwise']['netmargin'])){ $temp_netmargin_array = array_merge($temp_netmargin_array,array($overall_summary_report['sales_calculated_by_itemwise']['netmargin'])); } - $overall_summary_report['consolidated_report']['consolidated_sales_revenue'] = round(array_sum($temp_sales_array) / count($temp_sales_array),2); + $overall_summary_report['consolidated_report']['consolidated_sales_revenue'] = round(array_sum($temp_sales_array) / count($temp_sales_array)); $overall_summary_report['consolidated_report']['consolidated_nermagin'] = round(array_sum($temp_netmargin_array) / count($temp_netmargin_array),2); - $overall_summary_report['consolidated_report']['consolidated_nerprofit'] = round($overall_summary_report['consolidated_report']['consolidated_sales_revenue'] * ($overall_summary_report['consolidated_report']['consolidated_nermagin'] / 100 ),2); + $overall_summary_report['consolidated_report']['consolidated_nerprofit'] = round($overall_summary_report['consolidated_report']['consolidated_sales_revenue'] * ($overall_summary_report['consolidated_report']['consolidated_nermagin'] / 100 )); return ($overall_summary_report); @@ -3489,7 +3489,9 @@ class PD_Controller extends REST_Controller { public function getLatestPDReportBlob_post() { $records = $this->post('records'); - $pdid = $records['pd_id']; + //print_r($records);die(); + $records = $records['pd_id']; + $pdid = $records['startId']; $version_id = $records['version_id']; $version_no = ""; @@ -3593,12 +3595,12 @@ class PD_Controller extends REST_Controller { { //$result_array[0]['content'] $where_condition_array = array("pd_id" => $pdid); - $temp_array = array('is_original_report_created'=>1,'pd_report_latest_version_blob'=>null,'pd_report_latest_version' => 0); + $temp_array = array('is_original_report_created'=>1,'pd_report_latest_version_blob'=>$temp,'pd_report_latest_version' => 0); if($is_regenerate != 0) { //$result_array[0]['content'] - $temp_array = array('is_original_report_created'=>1,'pd_report_latest_version_blob'=>null,'pd_report_latest_version'=>$data['pd_master_details'][0]['pd_report_latest_version'] + 1); + $temp_array = array('is_original_report_created'=>1,'pd_report_latest_version_blob'=>$temp,'pd_report_latest_version'=>$data['pd_master_details'][0]['pd_report_latest_version'] + 1); } @@ -3651,7 +3653,7 @@ class PD_Controller extends REST_Controller { $pdid = $records['pd_id']; $blob = $records['content']; $fk_updatedby = $records['fk_updatedby']; - $fk_createdby = $records['fk_createdby']; + //$fk_createdby = $records['fk_createdby']; //Get PD Master Details $pd_master_details = $this->PD_Model->getPDMasterDetails($pdid); $main_applicant_name = $pd_master_details[0]['main_applicant']; @@ -3696,7 +3698,7 @@ class PD_Controller extends REST_Controller { if(is_object($s3result) && $s3result['ObjectURL'] != '' && $s3result['@metadata']['statusCode'] == 200) { - $urls = $this->getALLPDReportsSingedURLs($bucketname,$key); + $urls = $this->getALLPDReportsSingedURLs($bucketname,$key,$pdid); if($id != null || $id != "" ) { $data['dataStatus'] = true; @@ -4283,6 +4285,8 @@ class PD_Controller extends REST_Controller { public function codeigniterViewTest_post() { + $records = $this->post('records'); + $pdid = $records['pd_id']; $is_regenerate = 0; if(isset($records['regenerate'])) { @@ -4293,6 +4297,28 @@ class PD_Controller extends REST_Controller { $data['applicants_details'] = $this->PD_Model->getApplicantsDetails($pdid); $data['pd_additional_requirements'] = $this->PD_Model->getPDAdditionalRequirements($pdid); $data['pd_score'] = $this->calculateScore($pdid); + $score_for_chart = $data['pd_score']['score_summary']['overall_score']['final_score'] ? round($data['pd_score']['score_summary']['overall_score']['final_score'],2) : 0; + //echo $score_for_chart; + //GENERATE CHART PART + + $jsdata = file_get_contents(APPPATH.'/views/js/phantomchart.js'); + $jsdata = substr_replace($jsdata,$score_for_chart,(strpos($jsdata,"score")+8),5); + //echo $jsdata; + file_put_contents(APPPATH.'/views/js/phantomchart.js',$jsdata,LOCK_EX); + $str = 'phantomjs '.APPPATH.'/views/js/phantomchart.js'; + exec($str,$ou); + //print_r($ou); + + $chart_img_path = APPPATH.'/views/report_templates/chart.png'; + $type = pathinfo($chart_img_path, PATHINFO_EXTENSION); + $chart_img_content = file_get_contents($chart_img_path); + $base64_pdscore_chart_url = 'data:image/' . $type . ';base64,' . base64_encode($chart_img_content); + $data['base64_pdscore_chart_url'] = $base64_pdscore_chart_url; + // echo $data['base64_pdscore_chart_url']; + //die(); + + + //GENERATE CHART PART //print_r($data['pd_score']);die(); //GET ALL PROCESSED JSON for($i = 1;$i<=25;$i++) @@ -4317,7 +4343,7 @@ class PD_Controller extends REST_Controller { //End of PDF Gen using DOM PDF $output_file2 = APPPATH."/docs/sample.pdf"; $ti = file_put_contents($output_file2, $pdf_doc); - //echo $ti; + echo $ti; die(); $dat['dataStatus'] = true; $dat['status'] = REST_Controller::HTTP_OK; $dat['records'] = $ti; diff --git a/api/application/docs/sample.pdf b/api/application/docs/sample.pdf index a8da6c8696a9b6e4f4b38456edd369d990cb8031..cc4d879b455276e9661c760444eb1c50e079bccb 100644 GIT binary patch delta 34191 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≶y6<1W4o{Mc z=o*IQVHRrAEvxLMqxAw#K-qaeiG>vw#DXz0J3kNiHlh>=fsyhbf9Rgr6Qr<){q2#$ z+yvtQ8~$R*qhZ(yOaf&Vy1L_;eup5kT93uu0JEuJVrLg;u{pqJS3S=k5O^uKI8H6BNt91+%fP zo8DINtnrbZ20RyVy%YYCB*#pA9ZS~*?^=CEg zzL7&Ypo3Rhpj%o%@_!9w21j;Y!ifB-`2GG4d++RKKr0a(d}33XdO^*DUtD z%gg`E%j)G9_e9J@Q}EjwQd2!BB?R=iT@B2sqN`7<-9&8!ZorcXSq$RyXJ5Z<{$PYH zOEQcxtyUfcxzM>k-Dq+Dnuz85@cFXb@bBcwhA4$>sBLIztZ}A)mL-0NU0??zYNW&@UE9*19!?*n=Iqmq%To3oee5|$?4X#<9# zao7|Cw;y`uP3AH~1~xSH|NaexjKW<1`PH-bivzlc+}lgSB?hM!Q#9jCUiC$mw(^bv z*0VZP#Pdax21e^M!l+kfr6unT_-RM8n%UBl+8&3X9_c!7_nF?P8irmTkGVfj|KWs< z(RQj=?ON9p^MDS&GkDZ~IF?!~5da5sg@azIv@u#c*;|-w+m{u+Mi2)3H#RmNEzE51 zcoJ+QVaeD}u%rg7^gdGx$&j)r2pbtfk}nRkD8L=Qie_XHPmBEyUUy`aN-D*2}? z9{bMX7jDI?+jwq|j-zlz29dXdcl!paZ58>6K}dqee`LJg69$g1?e^Yse1s%jrn0iJ zqAwmexaV251UESwfcX+nDn(AV?xYEV~#?m8v--em2SDs<1 zarXl(yi1xQmC(k*0%O|{sCD<|S-IU*Xt!_E(r3b^5aX85w7bR>CW-yr<)QhSx1IQk z6>{S1_9Vc1rR%aCPFCuB2h1E(?F5G!5xT+tPkV7|h$7^nNnA0m$Y&ea+({EuO$Jpv zmSbrdv>Hk(JH|?-dxyS4vw-Ao?v@9ltIxS;fy2{gG0uV8 z*4ZHHo9NXQ0J(_jq#uBUH{lEKGR^cBXtE{&DSUvOp?I64zPR{W@@;GbJ?DG$z+Uow zAanv#0FC|L8Lu-|J@J~M22x0)%L<%5l)f1pT+!D!c9WvKSzY%JgPHsPRoPoc#kFi} z!$@#<4bnJ48*M^xcXxujdw@VExNC5CcM0wU5AN5bZG5C%RhRbRwCs80w2q59;Y^eyncshU?Gw zgxhtiM431zBn+&4M_ugbyRJR+@b*~a)3W^!4_`g)6NiDYjt?+E4i5eAZ;ByvA_c`U zK@bxwQhCGyu3vjVdya-Jh~io`@5$Gs2?cT)*u`bB++arCb_LAM#!p+}J~UieS4=wK zmSIej`vQ$CaC2PyaGRhFQ2>(m`ML@!Il33LX@v+ZckY}-F#(9rROt!pAxZ^F>zZmM zzp9nG&DgWksHs!yTiR?C8+=pd-GXk$%tX1)qmG$Kvru`#OAh9i<8$osv}5n+Jywk) zLsl}*;m9Mvkz^x~CUadzmdhHVLagZQGsiLZQ{g0S9gA?3-hS(+7Sj21Q07v~_m=E7 zJ;zD6pjkJS(sP^Jpv=H+H}jHXd}!E@u2XHZyFKnnk!C9r?@`4GDoh}Dju`;4MaNUS za@h;rZy(27-e@B`=43_dO$}Ey91E!JdX{X)$bzZ#_kU9$!RCf17+^LcGXF~pjLdz$ z9S@#;`iv)m6qSkdzM{u&%?+C~*tK4>gHk>2KBA`f<%w|C&qUjPJVWf4@1duK-y*M@ zp$Q)#NXnuNT@;ck4{{Zf72LgK}>NTBjtHV4YL~G>Z`9Y-X6tI z+GG-VjLr>9=jgSp;T_WYu?d|H;WaSCy*&9GB+*SEJt>{Ozq~B1QK#=)M=lmXaqYj| z_T;A&60T~+34t9Io^Z?hxsJ|rVQ;}V5Rc)T_j6`WELMBw7C#@{v_C9YyOE2j2^wM< zeeq6dW?7+6A2)MjRW4tj?6l({>AN<#+`J?>Vj1ItuUWPf%AKA3g*)DY+{v}LGv6GF zsGm=sK6d#y)n}rZvN8Iucv->2wW_TQVwBC*uiGj2%j?(9c|BoaJz@8OHY;F$?3qXh zx(b%6yv&(0Ee^2rtL6ct^#RrDb6^NP2lzA%E~NWQzss)*k#~?)aC!^krh0+4&e*%2 zz%`RSm&hVJY`(VMp(4 zk0)Nju{pe76{NZi`&=#`CmO(fW{E3Xm!DX4V>ZiUpv!+$q`7N)th0zzjU*@VyrW@A z9x+2B_p$W8WpD~ZA+V4+3V8L2hkz4g=g05gNl4)#``Z35_ULuqGYNw%J7%z(PszwL z!XMY6aiUU(oA09d?XY(M6~##IZ+Q48uIgv>&UpKAca*_!E*q);cEA`>+T1N+QzHPFIB?<_Ns|1Vb|CnkMXOI>% zljfqYgiEzaSTeI# z006^UEp5l-u_0iHTh6p({|BhP;vpwiO)1Jm@G!U%Y#l@+O8W5|tGM z3cz%;e{mnAJn3o=Y5L!XLCZem@Znt5B*6C~pNKz*sVOT%;GYscSJ9tcO@s?@{aqB@ z3gJxq4SdefNFKyxD`e0X>0n(MGP24d5MT5p37SqUqhi{T-^-N2wXk<0z7EM?2iGCW zWD^qad%U*_DQL(h7Ne$r2BNROFLvd2O-VA?755m@d2xR_53MJLFd;+quk!{d=~kDg z3{QfcSRoiB7$p8*?clQqa-=?-^+${OV93pu>9+cb8y9k2!i%eJ=6vdW)MtWly;$M^ z^Y8>j9(|}U)g(DY>>^+eKL{Y*g1q4joqwwm%RNi%Hv937Ytz6g6qL-4L-1%ZY;+gJ zNegq~;u70$;j&o~F|na0QF17u!TV)Oj-xIr7DOv+Ylt^;$q!yjW97e&>b_;h5ucSp zTyY22(Np9R$UKFmNI8U&-d`a)`*CaYJ9cIC+6P%soG6eLiBqI>y8qTjQ8>h~7IwIfG0IH>OM zKJ7fHToO!w2QO)1s2HL*lwA`Ld=xG`{AyCot_2YhR$ktbfI>Rpq^SohUMnAQVBGkbKcta@jOqt{fW`!Ud zgte(CJiYbu>CvYKH#dkgo|~HwrKU13xHhfe6q@{ikM$eyYTmuTZ1uKb%>)k$kxJyt zM`JWZ{pBIO_l8e%4lCRnlV31S?iR9#A2IOQ0dM+yLNF=#A?S0~Bgg5&?FR&Vo{SWP zMJ^xt3&yzfufHeEA8o)u)1v_|oJ&FN{+S)(&yA5j?|xkov}m^o90r-4!7y*YKFa?Z z(sPHUZGmYDb_;;YEj9SQb)R}BsOVjs?eV0cxm`;Y`FI==Uzm^MCRmnR7-gxVgwXPF zNemt46C^wc;qZ=CN;^nYJ^08fGfAnWjDhKdC}fwFiNZrsJ`3o|*bMf`_=52UYTVHp z*N`3}=I&WiT>fpV%+nU%H%KBX0P6Vl*>x7He(WA3k8} z6}h*NtG6g%xTUNBz(2p94aD(!BX6J`!$m=1a~Ku@6?IdaS$xT>C037nK0DZ~!+w}J z_IhaXtuPk;Ku-v9^0x4IKOOzomcxU2eAIZijOD7-cs)Y){e6LFNWKsTspHCRM=!j- zpctl~F(fp~lgj=8OU79(%}ScR_p2&${=uJ-77&qG$@^I^I8=0fy{DulW>qR|0TNf-{#TjUHj2(lyw@(FXi~j?~ zCn9DTC@3-Hi2wht_kV?LG5LQi|NmC}Sx}GVW~1&MWK9RNgV=cfGklp=xAQhPcKhSI zhuXyyMuMO>(0=KvoE&7)@eA9r>e2;Uq?SmvO^H&0`6maG&TERR2r_RNknq(Pn}!o- zRe08HTm?Bl?Xizv6+eFe#Q&ZXopt=P7iF|>_Iil#fM9$b29-+fiy9ndxQTck61e?w zbm%T6d-B`Ccb+7^X>nlD`wx{<{CQ=zsRZGDPp`Kg#Lq$md3;gEdS18^Sm9J)oPnZb z@nyE}E%a9>FY=zRiIr|Q>t~8QQB@*^{Nlq`nDl(8uKLwRms$BUiqf0TsCmhr%8m!W z*$tTDZS6w7C?ycs3>RIy$p{)mrh~r<4QZmkArEUywYuBNG1UX%BOHyGW~kKx+GR(q z=e=7IaxSzne+2&&+?AH_-*wK6iZ5rZC>!{;vaZsHY>4LB_h#xl1zF$deg)k7`_w!j zNl2Br5!671aA`;&u=p8O_4Ci(5RsE;@)Df8fd&eU+z-W5(b^|BqFkA+S|ngug7T5+ zati-S3zNk>qTi&L#uKP1L@E-! z_glw$r@Z#e9}mz-ie1KXor@xmqOYui#mK=-aUZX)jaLGKGxstUXu2Q%4bn%q7w~D$ zZJoT>GImw)k2Zks?LOTYAV-*wkkcZFkg8=%jKbN%86zRHk~Y(+h(iXK6%Yx(#EH;- z@h|uqN5&bsFRfiTJ+r}ZNV=Xv*c2okOSetb-t{^5n@#DZyrKL$2)g7;$wF*WjzlsV z#P+7qo&E{wZ^l$&UMf0NA`e3&V76L*+W0k;QL)+My zPnGdSoZk7aUq1^T2XZ&~s~J3{7$1+)8GI3$wu@zTQ?4Mo4C(3lNqZeL8gE-(!WdVc zp1Vhx(L0r)is)EOnzAVmC{5zSK%bfh7)(&4jK<}{n+W+R)Oj6(v!=wuj#|LpYq(Kx z39MEPoH3-1euVO*e9o}H8G9!D&hy>Klyb8LOH^+>)lIEH9LH(1UyL5n!%xgYZ(Fe3 z&ilS@QzO3x0Dlr_)yRnuQ zY_VV@0@M%F7PsFOjqSsl-qo}^F_jlssIeP_n?e3wH6NhXWE%DagU~4!p4iHG zhD6B4Eup|plzf;V1WVFmAIwOLgMqgZk!Ix7XXGR?dm`Hl53P$GyuW4G$a_KXE~xu! zIU`A*1%!ji$vc}2jk?~?z@#hW5ZtM7FkCpISeI}mey}E`iV5kNFIn9|&3GwO2%AcO z)sI?PQOlzu6|4+{p@ZSlcl&1h1v|=gh4NjKFy)MuC2@baH1n^v!Fe~@}6vqJA3B%Bv)r$A+9LVkV?_#O+^un zE9&_h}=~}e4J1WceT8yV=V5k zmK=wE{^t6!85FQ3GV$=XRJJ}k5wORFrHW=hkDI)F;uQIGE7(|0$zAuT5{LGWiXh zQE8+my0*V!40K~|aQO+}e|=Y=B#MmPHyY1>HU#uP0q^GzRs!;KFchtYOr18A1zknd zGHb{Q2_;96q$C3OB{$7t6c+`ou1edGzx7Y31i>q9y0AtC;uK$^f;hfJCE{eKE3=~d zj|h=t@-0tAs#BVX5NgpxQbxKOt7k$-qLt_M_gP=5y_d2N8npx&G2qHdv(|mKk8cq# z?j$n)43-W+Fxp_Zm-ubjjJ=sbg~87*8#%cph1TFJG&b{v{L(0&2qoI(O@`@5!v1}; z4b{`w{Ws0&T&?0nKxI;nK5=Dl>!_vaZl~e=*!;#(?J4>mxNfslha+TC8x^}j)l1DO zQ!w34E`QoVl;>V<*#|ED)5GldyW3Klx_hq8jNqeh9}B&~a#xKit^_m(V$O0(1k$G^ z($X@r$%exOhI_c~ezm+Mbq%8rh(7Qo;;FCea zC_naI4A#^qph0AFGDO?jt=1#`yqGr~**`^SybG{ChMEcOH)zPMrI1{MsgeV)-v)O z?pFR#a=3!LgknYLt*ce8i-rwQXD^kF98J~Ziq+Ejm8&Wqz+itq-30=>g8TG*NeAWFWKPoX09nz~60Vs{bhIL4 zpmi~GP|*DF$W95f%MF|vZ*zg}a|(E;a0Uh&fnJWFfb3k6uG!)cmKx9{`D%U&`@`tV ziQ^f;kikI>Cj2h9&BL$zm|4#R?jsFfv5}aWs_$8GUhT&hYvk4|D}Z|*)+jhDwS+dC z+6NkgJUyM55UmoU&6wQ!rEC<}0YIZrrvonVW?qfv$AbdQY}6lL7o|y+R89dl@6Ud{17K2=rYsCOCjGi+b$eu^#LE5;nIG(I8r4E zN(B4!zEBw(`+o!ZyJ9GwxJcot&0n4C3n#&Zo z@iS+0<&EB}Fn+V;HmhTMrSE5WMsM&Fqmq{IRFXJQI$6(Gb>W&;5+`~(5?a!A`0hN$ zqa9csxC7uMZ(>BE#*p9wx}SYM((dvp-tN?_s3ATqa-f>PeG}p8OFsp_9&gL^SMog@ zT;hJs2UzB5+NmiY_MS>E*9xQ>*kgSj9KWftDua>sdT*eqNbDoWn#xH?>!(%v@RNNZ zK)IMX>MW$+(mQ$bEjx6!?GZ8H%&8j*CA)T<^}1P;l2J?m11(||712zOFo6yo2^O+M zC_9sRVaaTYf6G#S!;TBKyPR{H*h&r*%-{_z# zX;Z-7AIFzp@d)>m$j!L45a!S#ZRZswr`?<6*3z2{x-qkqNb^c0QJ4(!jn8YaAgyb2 zV4zTpBz|rs-&rV6?g}hTHtry}Pb`1Tb2;;Q*3A{DhJ1V%WC{lxFegPB1nVuS9v6Ig z>vhOG?`Jil#~y{G3rr@m52*iUbD@WSnVNy_iSYikWYJ0y;e7^iYDOdBNhNLg?Mz}b z3rw?r;j1&XlP9*22oy|o6&$9_19LXaxnso?36c`GTkwDUnJ?IX^ptOkg~kmz{cBJbl|)g((OuZ3Hb z=hpy6hDUY4=(U`n@)tYQkfRHovbpObiwFYkma)+^rr>@s%+13%S^})=6Z$c7Cjo<4 zIDWr?Ho?wW?88n@%e{Cno8e*)?MbGAwCLp|P@1%KpyzA4rDD)4m8*zp6#v%=-9!=I zzz*92myuU25u6|#FZ=`9ou>hGq{%?>Rz*ZstYc4_%cmM)#m3~T86{%*jlYXUs{`3NVS>3JEC&BO4sC_ni2X7fX4~Vt+XX$#j-)m`yQORpSA)GU`d8*M z_$N!f@8T~VvY~|x+Oe*Ps3B8Ob?@s)&m%Z~f_BDDxLV=CD_9}$FVMl>pWb}RO;TqK z3StmZrc%x9MbAfaNRDAgAcL%qz@*qpxh#&$fTyY5Wu6zFH%IH$Gg%I zt?|3pM9Kuw&p}0#caUS0364yERwjG3Puv~D!M(dEI5=g9q>)cvRGR{_?iP>r$qC@N z^jRb$M874@L$Z3GaF9H6X;+l>J49^-NP%6TCNe=q_wMU;yFY9)eCZghu@U6K^O(1qJ2IcC&|oWqrkQPERm zscv$KefLRdG|Rx_{&f5tAGvgW6L(Y1H0tHD15}I=h^i0M$kkO+^ZjPs7A355-gLbh zz2B9Iv3Dq?+9*XY^Ct7quioP4sa^Z0+FLLhTZND0)i*{>sD#7SsC~~H`=Rea3+`?e zo;`@7XK9QI(;Xo^vJ9rQ1uyf*PO8uRK6!j*$a&#BREjHzkugR#Gq2`(+kJyCN6;pC4#iDiO~54ryJukw;2{&EQu2?FdD zQ(Tv1SS^+Z3&*hnX6dZYarF9X^)I=ftXiH4SqDDpkg6lWquV(8hu>@pc6D|I#Q%!L zsoM=)$AIDBi9a{i#QGP12E>N`DUd=wEq7|6-~C{c^1L?z7Dedjbf{nOFlUS>?z>nBw%?@MR?lb_2to8X5) zTYp=Rm43_itOBLbOqzt>yy{P@v)S#3bmxrsa# z*&2>1c}J}`&LG8W|4WvJ3QMKD7Sa#1MsDJ{6%Kv9G((1rkvaHSTf0Ige+1?$Q*qO# z(kYo?QS9-G@zwj?-NOVmjF^VgP_@?e(&t86*4bm1c0p!%GH?Pd({31=%7q^jeFevk zpBK;IDj9>hk8|iy{fYAlWgXK!splY1$%e}gM% zcgfhS!~kHm>zrHv)1_)4A9-m>VoaryR#VRK)$!BQ8Jx@^ICcL>O*Hidno~|8n(KbP z+3wbDISyP%GjQd*enLKIq}Vv%HJ?6sDAc%r>-woOnt9CmQ|>$z0wU*=5viJtR(6yh zMY?K&O@2xAPVj>om*Qy?6njMod#V?Qa-#rvpo)Yv(uTuREQHzHQeF_wE2 zvDgOc8n4Udw}WhUi4qZk*3M1mgN(hQTeSSmwL93Q+`anSNIO)cTi=3khQB-$J9?rh z#F-m}GDL3xc<5Q+V;_eWqmtTIsMHS^>4qWfSfc=BQ@bAYG4bEgHyJ&M(kUc6pQ67xld`DNjyRoW zCli6GhjIdS2^H%xdVh-HeWhkab zaNb_6F|T=T!WA}EU2&~Nco0w@S|`Jcy(^M z#S;|Ba_7iUi5>tnnk2#A&uG8nJ>HvN3AXV%ug{z{+e) z4I$S>s`Vj-M2$=YQUAvXnlNdvSSo;MoJaskif5e1*jWubeaD@Hp$ZXOK z@F7z88*xo>G=RK5+^|4pZ!buC;2(ForBWbM5+_ z|2Aeq`;*-9*x=FHKV~co?)4k5`STCQJ4atO-)h-0*22F`Sx*4R3R?9-jpO+>BlMez z(6T~Cs6y~*QVFbb{fy(8;pZNpAg0;8=)98s7IZ&6pta<7-;`QHV`ia_fp77w!n}9L&O{e?ykOanq8F;@zz)~7#~iX zPujhNEF3x^5xI!ti>@ig)vjyiq>#0Ofj18u=$N>(Ubb%*_Z8a&BuykiQW8$>Ur-Mk z3W<$#;MlA`C)@GWnVh(QS>glk=e@;q__5jp4qD!azBjD*qf?7$sRlz9StXl54*F{> z1|sYC#H3UzQok_PR(6UPu#|9Fw!NPPFnN^3iY#^NVq+evH_(Ge9}ElRe=kO*Uc zSk~a}16$h(+>ARe0Ez4^3Ug zlr+!}4X=EVU5n40BQ7LDt4D&^YG3>1+6}|z(f*#70k?R#Hlo-#2xve{46`L;AqH76 z(W;b0meXij_UQApeqYM{By~#-Bq_VNZhIlnTUPB0~?FU zMqn|cu+y&g6JinlppSqay0|9D=L_xKrg>>+2^cY}oJ9XJYn4ZKVB^%=)uBZry}1+WcqN**s(Azt z>U+v(GV*zwOYa(&aNdZc)T=O>6EbX94=3awIG=ej2z}dkcW)N>`7>Xf5vZiwy^F8p z=bp#pem~)b$th-3e=_K22{(Ov-oeo9L+cK zN4DJUk>%jj>X4*Jhu89K}Mq&(O@cbXUMo`_?QW?!L>Wlz+rLwOnv4P$q5 zm>UYTAwlg^uuxy0@x5EZPUc+eO!_d$4u!-sdn@^voF76rL=ZJzIy*ft2|qs)3pp$j z&@POhc>H(?Ag>%ZUUNn(=J_g1weU7x!-)utOR0Nn&oZGq`I?e|4}*pI6$MIVCxvjvjpb`#J06(&Bb{cQGYDVZ~D2QSFCwnOK5J z7-|mzHBw6Tb(g}UXQD%g>nWG_i(70lFvyz~Iah+0#W=$fn>vy?1RF?OD!xP8?IH#? zXdE!F`@nR`2}9Px;Hg98iQ72LA?~GpNu9sp$pRcRbW33kh`{TK-<#|64D955R6LDs zcWA^o&6Sh0BQzLLw#FC~u`UwYhw;cu70TDZVe9Y^m(SBEZiYGDf?Qeui!+d-mNT* zb>pV9nG7(wfRh$0WXjuMIq*z8b_Z#}5Xj{6sf!fj$omB_hXR0){7GV*&JE2lTE+t@kXKDaWphReV(I~@HS*sqgU<#I}& ztu3e0yqUbv=Lyhqw#M7vc{jQ1zsP5wYe|ehm>Owea2erB57XD?GR>pOP?_d3^Py*) zwl&U=&F_6`T`w=qXTo|{LK_Q^28e4=?}dqm21L+U56W%gQ?GGpeoq72gFrR#bt2{6 zsUl(2fwTKb|>QA9?W{z_s32B3`)y`}^1;v}33H8()wOHfxT0x0)z+ z&_Su3YW`Qcj1p|%UMUQzXnFen!-@Uf1oQbq=r_*F>`(@syc9r19Gtuea;hvtDisnD ziX2JAt@X!^GM~r$oYTrg9`8{iLjK>%KT)O3JlL_(zipe6#OQ!)wJia5DYjF+7O}SY z5k!UyR`Csjj5*3&oYjW~c?Q({agA=f^Z9@8Lqa&ne=PUnHKrmACVxW&8B@nCNP@IylX6 zyy@<$@Ui~T9v>W`E2>VkOQv|&#&e3n24z!O85dZ6JWUT?EpCWkNqzZtI`y#}sbogs zp{`i0@@<7sI(CyKWkYVP6&e|KFVQ(k^6Qe?k;Kwq!wj4%9D~tjwWdibKpzoKUF3&e zfof5IGF2LxMn;K@70%}&PMrm4y#yMDg-;Ovgq-un2ey2;=F3+;6>K9KWESI~tlHS;9px2-CX?4iW6RYMk-) zS-mh}`O4fOa)mMgms9|hCZX_*I=z(68e3^eCk)=djH!Q8rzx9%T`_62n%R^TsG4Y2x10WyKgu51~y_4K!~A?1T;m6bJYRMtfzJl%EWn%BD~)sRWvE zQ|^Qe22j~%Jqz0;=IQK<_r98tk9P{)N0H9~k51X^Z%p9XvyR_%h_eyxU1bLM(u`=(fBDSp6&O+3NKSVkV zyNjj7%T9`8aV8T7`J0db;5b?{(5o!HW81i(AJGHLdI!T=PH2jwVruxDlR$3AD>OEu9wpYjQd1JKTy{Gm`Dn2s%W%f${BG$GDk|Va0lcl!oaSJM@k<1|S8u9!d?)T&p*ubB>mp#o9E;y{C zMcf5%JT%7E=G&KCpqhgFGH$#sF1ilHFakgXDl3TO7S1oROH- zc)IJ$@3S#qmpbWnidQy)4fx)IIPh~T+TrD)@=iD;@=$t!un06yiHZHxaCKJW*mF+% z%l6~$HkF!ZOVmhN=$@{wJjcaYnY2_*s_b4GWQ`F-;P~9on7%zAFd$goqOE}QCQsIz zBu3^v@pOeH5f2oX=1i0*YrH=DTW&LM@m}U@M-@i40ggNG^X28S*+w(zeK4N^wa-pC zo)4ik40|H-3@N5^jnr&h}5gGOZ<7{kP+Uw?#U;p`a>xS>cce5ACsmhhLE;3iiuJ) zW5LfQhJ4OUv=pM1#hnfn8wJw|JpjM1ii)}>v5e1q3YJixR~7e3sf2#TOYjU9N(hNi zFJ$eTPQs~Uqy+gIV%}1rR{xBZrUE&OQ%S^0pq5*Xc0>|mF>taFgWv$bkEGi^5CWmQ z=B>f!>znsu_UMPIg^C#+mH}9bU!{E-kXe%}j)Y2)7 z%Zuv==a)`!ohNdKkNk9N2LWrLAT)%X!0{u;Fcnk~=uv>Xa(?lyb|2rV{D^%YPc}L3 zg;U0BS|Jt;9TYio_VVtU|N8*AW7*ZtTYu%Mhr*q3v|xN(ajIiU)dFUKYpY(0%=+CI zf4$Y3B7$o5_LUF!kzh;Q`kw`n!815T1Yd$_B&k_z?(9GLJH}*u?WA(!w|#aO*$gNz zU@Pdb&mS0Ej}=Mj66U(C4w4LkoZ^ZuKa&9hDpgoz5n$@y>C%E|E;Y=!2GCzIC1;rurj?|)b4 z{ugQm0{@O$^<9>^@qNatx=h}yQvIf_=E$&`qFt;Vsy2Y;NCj_xM^7uBr`60z(gr0G*z-JtpH)%Kc^`MkFA;;*bl)SN-_?^ zT_fKS5$wkb3V_MbV{k8@DNu=ryU=nzgyr&Lc-JwLN6jAHIat({7$z+D&@Rp>Q4F|p zrwJU3j8LaROV@$$56`pBtcjqBW`wPTBUu-0qq9=UUZ42O>gss5negBgPnao)ysyYP zhN*80eY|qph40a_6Z@?%D5o_&cHvvvG$o6Q)v9$O0>OMCS6yK8qu?XQR80a~_F6xHhi9T#W;l-0G&yPVvU%i4$9PNsd&*>`scx;KOuaffGj*q_;Ce zarA<)Lg2d?{dU0$f@bS{57t4g94aeGGoPUOs|?`WsjHDgH;<_I@eF7qUKMfNIUosodgS%pgjL$ zZt ztqd7YC?_n)sP0KvA+gGaA)|Fiily6UXB z4_`%&$68|R*lo&_TE_6$Ew4NDtM$q~)F{Jbp;m3YUG@=zADU+*~R8V2MHH+t{Gc z01g1sVY5U?Y{>Pl3}uOGfBniOylvfQ`t$RVRS%hWcNt9^>D|`)YP3yhaqU1isY#S`GNOGn$|9ewf^7o&<8o;k+e_Z4!o{9p=( zt3@3nQz7_Nno+~iORF(Ie(!c!OUg8GSGQbIt7=^gSrTv!5BN_}M|&mgrrUJ8*THYKcnF zOHLII)5wG*KA-?Xct|zRHdjp)mo(eRZ+CPbpI+3Dl87D1E)7heIihl-tDy;#$|~MK zjbd<5Jt%7(m7u{x{mr;Zh%cN-CC0a@5(O>I`;*!4&lJfB_*qviLO0vafZ^RqZjdoN zy`B3!ye>TQQP)GNvSQN&97SVyIxZAOscFN2P#5dyYwEtU@=3i%PWSD;4~Z^`wy}+c zR$=7I6zbp?y7?et!Wr7o4uKiphmUiMu@(m>sN?m~x|z^K7r3MfA6MkAa8rsF1}G#wKn4Kba{2=Dz-+4y~D?95145Zp`ZDC}G6K<06( zbm0qDJ!ibE2UQG#*9_vfe+cS)p|U-X4e&pOg-0Lat=}K~If3exe`HVaBZ4)ZBXt0} zy&XW20ut@={C1;ZA_Oc`=3OHc*NbeqiK`x>Z|VrNBXU;;P4Rc~p8*w#dsQNqdQ?WO zdZloKV~L!chTz>oz}LHh;`}A&viMH9)w+G4KtdwCpuvcqrUicyu?OVd%Ph4f$9qX9 zqkD_~z(4gsPL??IEEJ(lpzS|1V;Vqn4V%XBG~fls^5`E>e`s(b#SL^E8%O_{)%LlZ z+v9lrX4^=A{z7nb&>O`<|C~v%vMlX!P16+<4u{bL9;{LM))QB5TG3^0t>wPyZQ4_B z#%3nC+x%WGbC_yTolfOU({an!Q%`fJaBbZl{e5-kbPGS+wXcC-_aQ&O^-=jma3t_z zorz#CUD%^Ro|O7yM{C^9*?~bbI00^fo2t_1E2GtGJ>ge7ST=f+kn76&z}R#Vq-}5K zW7fi!a4_=gQD^W)r(7sFjl2T2d&J|D_w<33{W{Euz2HXM4xp80hVH>E+IU~`I$ zvB4~8ACAG6%$ifP#llG|HVm;^vT)G9GQ)R6BIv|patgU;-O&slPK&d zkpFsMW8;R9lm9)Bmz(P!c_41cXW~EUf9kS>INAT62V~>?M>!xnH-rzYFAG0QoDgmP zt~4hHFX%rM{L}xOJZ%5yLQWnK_dhE0vT^@iK`u6K_WuwFk;lcs1N?i7xj4E1p$r!% z4=?y10(m(9VT9alT)cnp1#WgO&c7QMH#;{c=x;s4%>m;2dqcQ+*tq`7w!nW3&ehq- z%GS*JFS=<}D=#z1+(c$oad2>@fHVVg^v)`6Z|*<=sqxpdm@dBwx4AjDF*_GzW^way xv6=HiG&D0Z;RFHA%y~??xdi^dOXws2bwLQ%$l3L;1>uhwb0gExh$~7U{~ukUq&olr delta 12813 zcmaibWk6iZvTlH26Wj?tFa(F0!2=|?yAucw!Gb$sf;(YwC%6W8mjrircMtA)oPE!I z@9ceky#Cdzy1J{ntGlaKt#75JzU-((j7mr2q2{1g0YJd;jMo4?0K2HI^Jgb&ZuqP& zkn67&c4-JTnET&VC^eYx-&Ia(2uF+tf+~RqxK|TYMIA_aeuyRXe#S>JwktW{wc6I%b)h06{aAf+E zNO-bai_ieuQ)!(xeIwUdsH%y+E_?mc*w^N_^5l|Of(Jb%nFF(~YG3naJ7f<3W2 z2V(VVmi40YjtO8)Wg|M*CdiW|xkz2N*)3lFbz32VkU*EBLAmS19Lwadb7rrbrF;Ana;|Ox1)2|w~*#ZN# zJjFFIbo$4%VSF672e*fIZI%ez;S;%kbZOxDM3VeAGrYiq1b_LPx4Y+GOgE-tz@EMm!2rghA@4X7$@8 z%$N%IocTAL3Dry2d3&WX*s#?>_#<`y8HulYwEt}}5`(~@9N$a!4bEXvYxc-PWkkX; zbkP+(&P1{wn?gf#MTxog%FSCHX+&(4px;ydD?1H|xwC^D-QbU*tRW6bG<0ty_>&7^ zQm4VX8(cyf^3aZ~#+s9#5^h_8clGq?l?(m{n@Nov?5_wEY4vf3Y=qTNUB6)B%hJ#6 zSjZ-xicch!M>Nx!X|^(X$vw%BP#MlKQ%9U%-l)pMvy=Rb5&Ik zxgjC�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 EAAeGconfig->item('master_tables_field_names'); $master_tables_pkid = $CI->config->item('master_tables_pkid'); - print_r($raw_json); + //print_r($raw_json); foreach($raw_json['addresses'] as $raw_json_key => $address) { // GET KEYS FROM MASTER TABLE FOR SUPPLIER FORM diff --git a/api/application/libraries/Pdfgenerator.php b/api/application/libraries/Pdfgenerator.php index 549c9767..f5b5473f 100644 --- a/api/application/libraries/Pdfgenerator.php +++ b/api/application/libraries/Pdfgenerator.php @@ -21,10 +21,17 @@ class Pdfgenerator public function generate($html, $filename='', $stream=TRUE, $paper = 'A4', $orientation = "portrait") { // echo 'stream'.$html.'tttt'; - $dompdf = new Dompdf(array('enable_remote' => true)); + $dompdf = new Dompdf(array('enable_remote' => true,'DOMPDF_ENABLE_PHP'=>true)); $dompdf->load_html($html); + $dompdf->set_paper($paper, $orientation); $dompdf->render(); + + $canvas = $dompdf->get_canvas(); + //$font = Font_Metrics::get_font("helvetica", "bold"); + $font = null; + $canvas->page_text(515,750, "Page {PAGE_NUM} of {PAGE_COUNT}", $font,8, array(0,0,0)); + if ($stream) { $dompdf->stream($filename.".pdf", array("Attachment" => 0)); } else { diff --git a/api/application/models/PD_Model.php b/api/application/models/PD_Model.php index 24bcf4d9..cae362cd 100644 --- a/api/application/models/PD_Model.php +++ b/api/application/models/PD_Model.php @@ -1067,7 +1067,7 @@ class PD_Model extends SPARQ_Model { if($result->OTP == $pddata['OTP']) { $fields = ('is_otp_done'); - $where_condition_array = array('pd_id' => $pdotp['pd_id']); + $where_condition_array = array('pd_id' => $pddata['pd_id']); $this->PD_Model->updateRecords($fields,PDTRIGGER,$where_condition_array); $result = true; @@ -1255,7 +1255,7 @@ class PD_Model extends SPARQ_Model { $assessed_income = array(); //get sales_declared_by_customer details - $fields = array('sdc_id','sales_declared_by_customer','margin_per','margin_value'); + $fields = array('sdc_id','sales_declared_by_customer','margin_per','margin_value','comments'); $where_condition_array = array('fk_pd_id'=>$pdid,'isactive'=>1); $sales_declared_by_customer = $this->selectCustomRecords($fields,$where_condition_array,SALESDECLAREDBYCUSTOMER); //get Gross Profit calculatio Mode details @@ -1264,7 +1264,7 @@ class PD_Model extends SPARQ_Model { $gross_profit_calculation_type = $this->selectCustomRecords($fields,$where_condition_array,PDASSESSEDINCOMEESTIMATIONOFGROSSPROFITTYPE); //get sales_calculated_by_itemwise details - $fields = array('sci_id','sales_item','sales_qty','UOM.name as uom_name','fk_uom_id','FREQUENCY.name as frequency_name','rate_per_unit','fk_frequency_id','annual_sale_value','margin_final_value','margin_per','margin_per_uom'); + $fields = array('sci_id','sales_item','sales_qty','UOM.name as uom_name','fk_uom_id','FREQUENCY.name as frequency_name','rate_per_unit','fk_frequency_id','annual_sale_value','margin_final_value','margin_per','margin_per_uom','uom_other','comments'); $table = SALESCALCULATEDBYITEMWISE.' as SALESCALCULATEDBYITEMWISE'; $where_condition_array = array('fk_pd_id'=>$pdid,'SALESCALCULATEDBYITEMWISE.isactive'=>1); $joins = array( @@ -1277,7 +1277,7 @@ class PD_Model extends SPARQ_Model { $sales_items_by_months = array(); - $this->db->SELECT('sim_id,sales_item,margin_value,margin_per'); + $this->db->SELECT('sim_id,sales_item,margin_value,margin_per,comments'); $this->db->FROM(SALESITEMMONTHWISE.' as SALESITEMMONTHWISE'); $this->db->WHERE('SALESITEMMONTHWISE.fk_pd_id',$pdid); $this->db->WHERE('SALESITEMMONTHWISE.isactive',1); @@ -1329,7 +1329,7 @@ class PD_Model extends SPARQ_Model { //Get purchase_details - $fields = array('purchase_id','purchase_item','purchase_qty','UOM.name as uom_name','fk_uom_id','FREQUENCY.name as frequency_name','rate_per_unit','fk_frequency_id','annual_purchase_value'); + $fields = array('purchase_id','purchase_item','purchase_qty','UOM.name as uom_name','fk_uom_id','FREQUENCY.name as frequency_name','rate_per_unit','fk_frequency_id','annual_purchase_value','uom_other','comments'); $table = PDPURCHASEDETAILS.' as PDPURCHASEDETAILS'; $where_condition_array = array('fk_pd_id'=>$pdid,'PDPURCHASEDETAILS.isactive'=>1); $joins = array( @@ -1339,7 +1339,7 @@ class PD_Model extends SPARQ_Model { //Get business_expenses - $fields = array('pd_expense_id','PDBUSINESSEXPENSES.expense_item_id','BUSINESSEXPENSES.expense_item','FREQUENCY.name as frequency_name','fk_frequency_id','expense_value','annual_expenses_value'); + $fields = array('pd_expense_id','PDBUSINESSEXPENSES.expense_item_id','BUSINESSEXPENSES.expense_item','FREQUENCY.name as frequency_name','fk_frequency_id','expense_value','annual_expenses_value','comments'); $table = PDBUSINESSEXPENSES.' as PDBUSINESSEXPENSES'; $where_condition_array = array('fk_pd_id'=>$pdid,'PDBUSINESSEXPENSES.isactive'=>1); $joins = array( @@ -1350,7 +1350,7 @@ class PD_Model extends SPARQ_Model { //Get house_hold_expenses - $fields = array('household_expense_id','expense_item','FREQUENCY.name as frequency_name','fk_frequency_id','expense_value','annual_expense_value'); + $fields = array('household_expense_id','expense_item','FREQUENCY.name as frequency_name','fk_frequency_id','expense_value','annual_expense_value','comments'); $table = PDHOUSEHOLDEXPENSES.' as PDHOUSEHOLDEXPENSES'; $where_condition_array = array('fk_pd_id'=>$pdid,'PDHOUSEHOLDEXPENSES.isactive'=>1); $joins = array( @@ -1359,7 +1359,7 @@ class PD_Model extends SPARQ_Model { //get Other Business Income details - $fields = array('PDBUSINESSINCOME.pd_business_income_id', 'PDBUSINESSINCOME.fk_pd_id', 'PDBUSINESSINCOME.business_income_id', 'PDBUSINESSINCOME.income_value', 'PDBUSINESSINCOME.fk_frequency_id', 'PDBUSINESSINCOME.annual_income_value','PDBUSINESSINCOME.fk_createdby','PDBUSINESSINCOME.other_income_item','PDBUSINESSINCOME.other_frequncy_item','FREQUENCY.name as frequency_name','BUSINESSINCOME.business_income_item'); + $fields = array('PDBUSINESSINCOME.pd_business_income_id', 'PDBUSINESSINCOME.fk_pd_id', 'PDBUSINESSINCOME.business_income_id', 'PDBUSINESSINCOME.income_value', 'PDBUSINESSINCOME.fk_frequency_id', 'PDBUSINESSINCOME.annual_income_value','PDBUSINESSINCOME.fk_createdby','PDBUSINESSINCOME.other_income_item','PDBUSINESSINCOME.other_frequncy_item','FREQUENCY.name as frequency_name','BUSINESSINCOME.business_income_item','comments'); $table = PDBUSINESSINCOME.' as PDBUSINESSINCOME'; $where_condition_array = array('fk_pd_id'=>$pdid,'PDBUSINESSINCOME.isactive'=>1); $joins = array( diff --git a/api/application/views/js/phantomchart.js b/api/application/views/js/phantomchart.js new file mode 100644 index 00000000..bbd1b84a --- /dev/null +++ b/api/application/views/js/phantomchart.js @@ -0,0 +1,12 @@ +var page = require('webpage').create(); +page.viewportSize = { width: 600, height: 350 }; +page.clipRect = { top: 0, left: 0, width: 600, height: 350 }; +var score = 69.08 ; +console.log('score card chart'); +var url = 'http://localhost:9999/AWSEC2/sparqapi/api?'+score; +page.open(url, function() { + setTimeout(function() { + page.render('C:/5.6/xampp/htdocs/AWSEC2/sparqapi/api/application/views/report_templates/chart.png'); + phantom.exit(); + }, 500); +}); \ No newline at end of file diff --git a/api/application/views/report_templates/JSONTOREPORT.php b/api/application/views/report_templates/JSONTOREPORT.php index 440aa300..6c90b7c3 100644 --- a/api/application/views/report_templates/JSONTOREPORT.php +++ b/api/application/views/report_templates/JSONTOREPORT.php @@ -12,14 +12,14 @@ defined('BASEPATH') OR exit('No direct script access allowed'); .page_break { page-break-before: always; } @page { margin: 100px 50px; - font-family:Helvetica, Arial, sans-serif; + font-family:Helvetica,Arial; } - footer { + header { position: fixed; - bottom: 5px; + top: -70px; left: 0px; right: 0px; - height: 30px; + height: 20px; /** Extra personal styles **/ /*background-color: #03a9f4; @@ -27,6 +27,21 @@ defined('BASEPATH') OR exit('No direct script access allowed'); text-align: right; /*line-height: 35px;*/ } + footer { + position: fixed; + bottom: 5px; + left: 0px; + right: 0px; + height: 30px; + font-size: 10px; + + /** Extra personal styles **/ + /*background-color: #03a9f4; + color: white;*/ + text-align: left; + /*line-height: 35px;*/ + } + .table2 { border: 1px solid black; @@ -48,28 +63,45 @@ defined('BASEPATH') OR exit('No direct script access allowed'); tfoot{ color:#e00201; } + /* metert gauge css */ + + + +.sc-gauge { width:200px; height:200px; margin:200px auto; } +.sc-background { position:relative; height:100px; margin-bottom:10px; background-color:#fff; border-radius:150px 150px 0 0; overflow:hidden; text-align:center; } +.sc-mask { position:absolute; top:20px; right:20px; left:20px; height:80px; background-color:#555888; border-radius:150px 150px 0 0 } +.sc-percentage { position:absolute; top:100px; left:-200%; width:400%; height:400%; margin-left:100px; background-color:#00aeef; } +.sc-percentage { transform:rotate(158deg); transform-origin:top center; } +.sc-min { float:left; } +.sc-max { float:right; } +.sc-value { position:absolute; top:50%; left:0; width:100%; font-size:48px; font-weight:700 } + + /* metert gauge css */ - - + +

-
+ Copyright@Sineedge
+
+ +
+
+
+







"; + echo "








"; setlocale(LC_MONETARY, 'en_IN'); echo "
"; echo "

PERSONAL DISCUSSION REPORT

"; @@ -91,7 +123,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); ?> - + Loan Amount Applied For

"; @@ -104,15 +136,27 @@ defined('BASEPATH') OR exit('No direct script access allowed');

"; + echo "
"; echo "

"; - echo "

Score Summary

"; - echo "General Section Score :".number_format($pd_score['score_summary']['general']['actual_score'],2,'.','.')."
"; - echo "Business Section Score :".number_format($pd_score['score_summary']['business']['actual_score'],2,'.','.')."
"; - echo "Final Remarks Score :".number_format($pd_score['score_summary']['final_remarks']['actual_score'],2,'.','.')."
"; - echo "Final PD Score :".number_format($pd_score['score_summary']['overall_score']['final_score'],2,'.','.')."
"; + echo "

Executive Summary

"; + // echo "General Section Score :".number_format($pd_score['score_summary']['general']['actual_score'],2,'.','.')."
"; + // echo "Business Section Score :".number_format($pd_score['score_summary']['business']['actual_score'],2,'.','.')."
"; + // echo "Final Remarks Score :".number_format($pd_score['score_summary']['final_remarks']['actual_score'],2,'.','.')."
"; + // echo "Final PD Score :".number_format($pd_score['score_summary']['overall_score']['final_score'],2,'.','.')."
"; + ?> + + + + + +
General Section Score
Business Section Score
Final Remarks Score
Final PD Score
+
"; + //####################### CHART ############################# + echo '

'; + //######################### CHART ########################### + echo "
"; - - //####################General Section Statred######################## $general_form = json_decode($pd_processed_forms[18][0]['processed_json'],true); diff --git a/api/application/views/report_templates/chart.png b/api/application/views/report_templates/chart.png new file mode 100644 index 0000000000000000000000000000000000000000..fdd8cb8cd308257b529757a5eef02685aea38ca9 GIT binary patch literal 20089 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 literal 0 HcmV?d00001 diff --git a/api/application/views/report_templates/pdscorechart.html b/api/application/views/report_templates/pdscorechart.html new file mode 100644 index 00000000..5b382fb8 --- /dev/null +++ b/api/application/views/report_templates/pdscorechart.html @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/api/application/views/report_templates/switched-column-chart.png b/api/application/views/report_templates/switched-column-chart.png deleted file mode 100644 index e26f9e64efa7c046112ad81771a1fe952f9d4a16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9492 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 QS`h?&QT;-eqUrtr0jWm5@&Et; diff --git a/api/application/views/welcome_message.php b/api/application/views/welcome_message.php index dee9bef1..6b06a9b8 100644 --- a/api/application/views/welcome_message.php +++ b/api/application/views/welcome_message.php @@ -1,95 +1,141 @@ - + +PDSCORE CHART - - Welcome to CodeIgniter - - - + + + + + + + \ No newline at end of file