function buildFooterModel()
 {
     $footerModel = new Vtiger_PDF_Model();
     $termsconditionLabel = getTranslatedString('Description', $this->moduleName);
     $footerModel->set('title', $termsconditionLabel);
     $footerModel->set('content', from_html($this->focusColumnValue("description")));
     return $footerModel;
 }
 function buildSummaryModel()
 {
     if (isset($this->focus->column_fields['currency_id'])) {
         $currencyInfo = getCurrencyInfo($this->focus->column_fields['currency_id']);
         $currency = $currencyInfo['code'];
     } else {
         $currency = 'RUB';
     }
     $associated_products = $this->associated_products;
     $final_details = $associated_products[1]['final_details'];
     $summaryModel = new Vtiger_PDF_Model();
     $netTotal = $netTotalGoods = $netTotalServices = $discount = $handlingCharges = $handlingTaxes = 0;
     $adjustment = $grandTotal = 0;
     $productLineItemIndex = 0;
     $sh_tax_percent = 0;
     foreach ($associated_products as $productLineItem) {
         ++$productLineItemIndex;
         $netTotal += $productLineItem["netPrice{$productLineItemIndex}"];
         if ($productLineItem["entityType{$productLineItemIndex}"] == 'Products') {
             $netTotalGoods += $productLineItem["netPrice{$productLineItemIndex}"];
         }
         if ($productLineItem["entityType{$productLineItemIndex}"] == 'Services') {
             $netTotalServices += $productLineItem["netPrice{$productLineItemIndex}"];
         }
     }
     $summaryModel->set("summaryNetTotal", $this->formatPrice($netTotal));
     $summaryModel->set("summaryNetTotalGoods", $this->formatPrice($netTotalGoods));
     $summaryModel->set("summaryNetTotalServices", $this->formatPrice($netTotalServices));
     $discount_amount = $final_details["discount_amount_final"];
     $discount_percent = $final_details["discount_percentage_final"];
     $discount = 0.0;
     $discountGoods = 0.0;
     $discountServices = 0.0;
     if (!empty($discount_amount)) {
         $discount = $discount_amount;
         $discountGoods = $discount_amount;
         $discountServices = $discount_amount;
     }
     if (!empty($discount_percent)) {
         $discount = $discount_percent * $final_details["hdnSubTotal"] / 100;
         $discountGoods = $discount_percent * $netTotalGoods / 100;
         $discountServices = $discount_percent * $netTotalServices / 100;
     }
     $summaryModel->set("summaryDiscount", $this->formatPrice($discount));
     $summaryModel->set("summaryDiscountGoods", $this->formatPrice($discountGoods));
     $summaryModel->set("summaryDiscountServices", $this->formatPrice($discountServices));
     $group_total_tax_percent = '0.00';
     $overall_tax = 0;
     $overall_tax_goods = 0;
     $overall_tax_services = 0;
     //To calculate the group tax amount
     if ($final_details['taxtype'] == 'group') {
         $group_tax_details = $final_details['taxes'];
         for ($i = 0; $i < count($group_tax_details); $i++) {
             $group_total_tax_percent += $group_tax_details[$i]['percentage'];
         }
         $summaryModel->set("summaryTax", $this->formatPrice($final_details['tax_totalamount']));
         $summaryModel->set("summaryTaxLiteral", $this->num2str($final_details['tax_totalamount'], false, $currency));
         $summaryModel->set("summaryTaxPercent", $group_total_tax_percent);
         $overall_tax += $final_details['tax_totalamount'];
         $summaryModel->set("summaryTaxGoods", $this->formatPrice(($netTotalGoods - $discountGoods) * $group_total_tax_percent / 100.0));
         $summaryModel->set("summaryTaxGoodsLiteral", $this->num2str(($netTotalGoods - $discountGoods) * $group_total_tax_percent / 100.0, false, $currency));
         $summaryModel->set("summaryTaxGoodsPercent", $group_total_tax_percent);
         $overall_tax_goods += ($netTotalGoods - $discountGoods) * $group_total_tax_percent / 100.0;
         $summaryModel->set("summaryTaxServices", $this->formatPrice(($netTotalServices - $discountServices) * $group_total_tax_percent / 100.0));
         $summaryModel->set("summaryTaxServicesLiteral", $this->num2str(($netTotalServices - $discountServices) * $group_total_tax_percent / 100.0, false, $currency));
         $summaryModel->set("summaryTaxServicesPercent", $group_total_tax_percent);
         $overall_tax_services += ($netTotalServices - $discountServices) * $group_total_tax_percent / 100.0;
     } else {
         if ($final_details['taxtype'] == 'group_tax_inc') {
             $group_tax_details = $final_details['taxes'];
             for ($i = 0; $i < count($group_tax_details); $i++) {
                 $group_total_tax_percent += $group_tax_details[$i]['percentage'];
             }
             $summaryModel->set("summaryTax", $this->formatPrice($final_details['tax_totalamount']));
             $summaryModel->set("summaryTaxLiteral", $this->num2str($final_details['tax_totalamount'], false, $currency));
             $summaryModel->set("summaryTaxPercent", $group_total_tax_percent);
             $overall_tax += $final_details['tax_totalamount'];
             $summaryModel->set("summaryNetTotal", $this->formatPrice($netTotal - $final_details['tax_totalamount']));
             $summaryModel->set("summaryTaxGoods", $this->formatPrice(($netTotalGoods - $discountGoods) * $group_total_tax_percent / (100.0 + $group_total_tax_percent)));
             $summaryModel->set("summaryTaxGoodsLiteral", $this->num2str(($netTotalGoods - $discountGoods) * $group_total_tax_percent / (100.0 + $group_total_tax_percent), false, $currency));
             $summaryModel->set("summaryTaxGoodsPercent", $group_total_tax_percent);
             $overall_tax_goods += ($netTotalGoods - $discountGoods) * $group_total_tax_percent / (100.0 + $group_total_tax_percent);
             $summaryModel->set("summaryNetTotalGoods", $this->formatPrice($netTotalGoods - ($netTotalGoods - $discountGoods) * $group_total_tax_percent / (100.0 + $group_total_tax_percent)));
             $summaryModel->set("summaryTaxServices", $this->formatPrice(($netTotalServices - $discountServices) * $group_total_tax_percent / (100.0 + $group_total_tax_percent)));
             $summaryModel->set("summaryTaxServicesLiteral", $this->num2str(($netTotalServices - $discountServices) * $group_total_tax_percent / (100.0 + $group_total_tax_percent), false, $currency));
             $summaryModel->set("summaryTaxServicesPercent", $group_total_tax_percent);
             $overall_tax_services += ($netTotalServices - $discountServices) * $group_total_tax_percent / (100.0 + $group_total_tax_percent);
             $summaryModel->set("summaryNetTotalServices", $this->formatPrice($netTotalServices - ($netTotalServices - $discountServices) * $group_total_tax_percent / (100.0 + $group_total_tax_percent)));
         } else {
             $summaryModel->set("summaryTax", $this->formatPrice($this->totaltaxes));
             $summaryModel->set("summaryTaxLiteral", $this->num2str($this->totaltaxes, false, $currency));
             if ($netTotal > 0) {
                 $summaryModel->set("summaryTaxPercent", $this->totaltaxes / $netTotal * 100);
             } else {
                 $summaryModel->set("summaryTaxPercent", 0);
             }
             $overall_tax += $this->totaltaxes;
             $summaryModel->set("summaryTaxGoods", $this->formatPrice($this->totaltaxesGoods));
             $summaryModel->set("summaryTaxGoodsLiteral", $this->num2str($this->totaltaxesGoods, false, $currency));
             if ($netTotalGoods > 0) {
                 $summaryModel->set("summaryTaxGoodsPercent", $this->totaltaxesGoods / $netTotalGoods * 100);
             } else {
                 $summaryModel->set("summaryTaxGoodsPercent", 0);
             }
             $overall_tax_goods += $this->totaltaxesGoods;
             $summaryModel->set("summaryTaxServices", $this->formatPrice($this->totaltaxesServices));
             $summaryModel->set("summaryTaxServicesLiteral", $this->num2str($this->totaltaxesServices, false, $currency));
             if ($netTotalServices > 0) {
                 $summaryModel->set("summaryTaxServicesPercent", $this->totaltaxesServices / $netTotalServices * 100);
             } else {
                 $summaryModel->set("summaryTaxServicesPercent", 0);
             }
             $overall_tax_services += $this->totaltaxesServices;
         }
     }
     //Shipping & Handling taxes
     $sh_tax_details = $final_details['sh_taxes'];
     for ($i = 0; $i < count($sh_tax_details); $i++) {
         $sh_tax_percent = $sh_tax_percent + $sh_tax_details[$i]['percentage'];
     }
     //obtain the Currency Symbol
     $currencySymbol = $this->buildCurrencySymbol();
     $summaryModel->set("summaryShipping", $this->formatPrice($final_details['shipping_handling_charge']));
     $summaryModel->set("summaryShippingTax", $this->formatPrice($final_details['shtax_totalamount']));
     $summaryModel->set("summaryShippingTaxPercent", $sh_tax_percent);
     $summaryModel->set("summaryAdjustment", $this->formatPrice($final_details['adjustment']));
     $summaryModel->set("summaryGrandTotal", $this->formatPrice($final_details['grandTotal']));
     // TODO add currency string
     $summaryModel->set("summaryGrandTotalLiteral", $this->num2str($final_details['grandTotal'], false, $currency));
     $overall_tax += $final_details['shtax_totalamount'];
     $overall_tax_goods += $final_details['shtax_totalamount'];
     $summaryModel->set("summaryOverallTax", $this->formatPrice(round($overall_tax)));
     $summaryModel->set("summaryOverallTaxLiteral", $this->num2str(round($overall_tax), false, $currency));
     $summaryModel->set("summaryOverallTaxGoods", $this->formatPrice(round($overall_tax_goods)));
     $summaryModel->set("summaryOverallTaxGoodsLiteral", $this->num2str(round($overall_tax_goods), false, $currency));
     $summaryModel->set("summaryOverallTaxServices", $this->formatPrice(round($overall_tax_services)));
     $summaryModel->set("summaryOverallTaxServicesLiteral", $this->num2str(round($overall_tax_services), false, $currency));
     if ($final_details['taxtype'] == 'group_tax_inc') {
         $summaryModel->set("summaryGrandTotalGoods", $this->formatPrice($netTotalGoods - $discountGoods + $final_details['shipping_handling_charge'] + $final_details['adjustment']));
         $summaryModel->set("summaryGrandTotalGoodsLiteral", $this->num2str($netTotalGoods - $discountGoods + $final_details['shipping_handling_charge'] + $final_details['adjustment'], false, $currency));
         $summaryModel->set("summaryGrandTotalServices", $this->formatPrice($netTotalServices - $discountServices + $final_details['adjustment']));
         $summaryModel->set("summaryGrandTotalServicesLiteral", $this->num2str($netTotalServices - $discountServices + $final_details['adjustment'], false, $currency));
     } else {
         $summaryModel->set("summaryGrandTotalGoods", $this->formatPrice($netTotalGoods - $discountGoods + $overall_tax_goods + $final_details['shipping_handling_charge'] + $final_details['adjustment']));
         $summaryModel->set("summaryGrandTotalGoodsLiteral", $this->num2str($netTotalGoods - $discountGoods + $overall_tax_goods + $final_details['shipping_handling_charge'] + $final_details['adjustment'], false, $currency));
         $summaryModel->set("summaryGrandTotalServices", $this->formatPrice($netTotalServices - $discountServices + $overall_tax_services + $final_details['adjustment']));
         $summaryModel->set("summaryGrandTotalServicesLiteral", $this->num2str($netTotalServices - $discountServices + $overall_tax_services + $final_details['adjustment'], false, $currency));
     }
     return $summaryModel;
 }
 function buildWatermarkModel()
 {
     $watermarkModel = new Vtiger_PDF_Model();
     $watermarkModel->set('content', $this->getWatermarkContent());
     return $watermarkModel;
 }
Exemplo n.º 4
0
 /**
  * Function transforms Advance filter to workflow conditions
  */
 function transformAdvanceFilterToWorkFlowFilter(Vtiger_PDF_Model &$pdfModel)
 {
     $conditions = $pdfModel->get('conditions');
     $wfCondition = [];
     if (!empty($conditions)) {
         foreach ($conditions as $index => $condition) {
             $columns = $condition['columns'];
             if ($index == '1' && empty($columns)) {
                 $wfCondition[] = array('fieldname' => '', 'operation' => '', 'value' => '', 'valuetype' => '', 'joincondition' => '', 'groupid' => '0');
             }
             if (!empty($columns) && is_array($columns)) {
                 foreach ($columns as $column) {
                     $wfCondition[] = array('fieldname' => $column['columnname'], 'operation' => $column['comparator'], 'value' => $column['value'], 'valuetype' => $column['valuetype'], 'joincondition' => $column['column_condition'], 'groupjoin' => $condition['condition'], 'groupid' => $column['groupid']);
                 }
             }
         }
     }
     $pdfModel->set('conditions', $wfCondition);
 }