public function pdfthongkeAction()
    {
        $translate = Zend_Registry::get('Zend_Translate');
        $this->view->title = 'Thống kê - ' . $translate->_('TEXT_DEFAULT_TITLE');
        $this->view->headTitle($this->view->title);
        $layoutPath = APPLICATION_PATH . '/templates/' . TEMPLATE_USED;
        $option = array('layout' => '1_column/layout', 'layoutPath' => $layoutPath);
        Zend_Layout::startMvc($option);
        $date = new Zend_Date();
        $date->subMonth(1);
        $thang = $this->_getParam('thang', $date->toString('M'));
        $nam = $this->_getParam('nam', $date->toString('Y'));
        $auth = Zend_Auth::getInstance();
        $identity = $auth->getIdentity();
        $em_id = $identity->em_id;
        $emModel = new Front_Model_Employees();
        $phongbanModel = new Front_Model_Phongban();
        $my_info = $emModel->fetchRow('em_id=' . $em_id . ' and em_status=1');
        $phong_ban_id = $list_phongban = $phong_ban = array();
        if ($my_info) {
            $phong_ban_id[] = $my_info->em_phong_ban;
            $list_phongban = $phongbanModel->fetchDataStatus($my_info->em_phong_ban, $phong_ban);
        }
        if (sizeof($list_phongban)) {
            foreach ($list_phongban as $phong_ban_info) {
                $phong_ban_id[] = $phong_ban_info->pb_parent;
            }
        }
        $phong_ban_id = implode(',', $phong_ban_id);
        $list_nhan_vien = $emModel->fetchAll("em_phong_ban in ({$phong_ban_id}) and em_status=1");
        $holidaysModel = new Front_Model_Holidays();
        $holidays = $holidaysModel->fetchData();
        $listHoliday = array();
        foreach ($holidays as $holiday) {
            $listHoliday[$holiday['hld_id']] = $holiday['hld_code'];
        }
        $k = 0;
        if ($list_nhan_vien) {
            $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
            $pdf->SetCreator(PDF_CREATOR);
            $pdf->SetAuthor(PDF_AUTHOR);
            $pdf->SetTitle(PDF_HEADER_TITLE);
            $pdf->SetSubject(PDF_HEADER_TITLE);
            $pdf->SetKeywords('bang luong');
            $pdf->setPrintHeader(false);
            $pdf->setFooterData(array(0, 64, 0), array(0, 64, 128));
            $pdf->setFooterFont(array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
            $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
            $pdf->SetMargins(5, PDF_MARGIN_TOP, 5);
            $pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
            $pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
            $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
            $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
            $pdf->setFontSubsetting(true);
            $pdf->SetFont('dejavusans', '', 14, '', true);
            $pdf->AddPage('L', 'A4');
            $pdf->setTextShadow(array('enabled' => true, 'depth_w' => 0.2, 'depth_h' => 0.2, 'color' => array(196, 196, 196), 'opacity' => 1, 'blend_mode' => 'Normal'));
            $text_outout = '
                        <style>
                            .ten-co-quan {
                                color: #000;
                                font-size: 10pt;
                                height: 50px;
                                text-align:center;
                            }
                            .ten-bang-luong{
                                height: 30px;
                                text-align:center;
                                font-size: 10pt;
                            }

                            table.first {
                                color: #003300;
                                font-family: helvetica;
                                font-size: 8pt;
                                border-left: 3px solid red;
                                border-right: 3px solid #FF00FF;
                                border-top: 3px solid green;
                                border-bottom: 3px solid blue;
                                background-color: #ccffcc;
                            }
                            .borders {
                                border: 1px solid #000;
                                font-size: 10px;
                            }

                            .tieu-de{
                                height: 20px;
                                font-size: 11px;
                            }
                            .noi-dung{
                                font-size: 10px;
                            }
                            td.second {
                                border: 2px dashed green;
                            }

                            .lowercase {
                                text-transform: lowercase;
                            }
                            .uppercase {
                                text-transform: uppercase;
                            }
                            .capitalize {
                                text-transform: capitalize;
                            }
                            
                            .error{
                                background-color: #dddddd;
                            }
                        </style>
                        <table width="100%">
                            <tr>
                                <td width="200" class="ten-co-quan uppercase">
                                    TỔNG CỤC HẢI QUAN
                                    <div><strong>CỤC HẢI QUAN HÀ TĨNH</strong></div>
                                </td>
                                <td colspan="2">&nbsp;</td>
                            </tr>
                            <tr>
                                <td colspan="3" class="ten-bang-luong uppercase">BẢNG CHẤM CÔNG VÀ XẾP LOẠI A,B,C THÁNG ' . $thang . '-' . $nam . '</td>
                            </tr>';
            $text_outout .= '<tr>
                                <td colspan="3">
                                    <br/>
                                    <table border="1" class="noi-dung" cellpadding="5" nobr="true">
                                        <tr>
                                            <td style="width: 25pt;" rowspan="2"><strong>STT</strong></td>
                                            <td style="width: 70pt;" rowspan="2"><strong>HỌ TÊN</strong></td>
                                            <td colspan="31" style="text-align:center;"><strong>Ngày Công Trong Tháng</strong></td>
                                            <td style="width: 50pt;" rowspan="2"><strong>Phân loại A,B,C</strong></td>
                                            <td style="width: 50pt;" rowspan="2"><strong>Ghi chú</strong></td>
                                        </tr>
                                        <tr>';
            for ($i = 1; $i <= 31; $i++) {
                $text_outout .= '<td >' . $i . '</td>';
            }
            $text_outout .= '</tr>';
            $k = 0;
            $chamcongModel = new Front_Model_ChamCong();
            foreach ($list_nhan_vien as $nhan_vien) {
                $phan_loai_label = 'A';
                $phan_loai = $this->view->viewGetPhanLoai($nhan_vien->em_id, $thang, $nam);
                if ($phan_loai) {
                    $phan_loai_label = $phan_loai->dg_ptccb_status;
                    if (!$phan_loai_label || $phan_loai_label == null || $phan_loai_label == '-') {
                        $phan_loai_label = 'A';
                    }
                } else {
                    $phan_loai_label = '';
                }
                $text_outout .= '<tr>';
                $k++;
                $cham_cong = $chamcongModel->fetchOneData(array('c_em_id' => $nhan_vien['em_id'], 'c_thang' => (int) $thang, 'c_nam' => (int) $nam));
                $text_outout .= '<td>' . $k . '</td>';
                $text_outout .= '<td>' . $nhan_vien->em_ho . ' ' . $nhan_vien->em_ten_dem . ' ' . $nhan_vien->em_ten . '</td>';
                for ($i = 1; $i <= 31; $i++) {
                    $ngay_chamcong = 'c_ngay_' . $i;
                    $trangthai_ngaycong = $cham_cong->{$ngay_chamcong};
                    $status = !empty($listHoliday[$trangthai_ngaycong]) ? $listHoliday[$trangthai_ngaycong] : '&nbsp;';
                    $text_outout .= '<td ' . $this->view->viewCheckChuNhatThuBay($i, (int) $thang, (int) $nam) . '>' . $status . '</td>';
                }
                $text_outout .= '<td>' . $phan_loai_label . '</td>';
                $text_outout .= '<td></td>';
                $text_outout .= '</tr>';
            }
            $text_outout .= '</table>
                                </td>
                            </tr>';
            $text_outout .= '</table>
                                </td>
                            </tr>';
            $text_outout .= '<tr><td style=""></td><td style="width: 120pt;">&nbsp;</td><td style="width: 50pt;">&nbsp;</td></tr>';
            foreach ($holidays as $holiday) {
                $text_outout .= '<tr class="noi-dung"><td style="width: 32pt;"></td><td style="width: 70pt;">' . $holiday['hld_name'] . '</td><td style="width: 50pt;">' . $holiday['hld_code'] . '</td></tr>';
            }
            $text_outout .= '</table> ';
            $pdf->writeHTMLCell(0, 0, '', '', $text_outout, 0, 1, 0, true, '', true);
            $pdf->Output($file_name, 'I');
            die;
            $k += 5;
            foreach ($holidays as $holiday) {
                $k++;
                $objPHPExcel->getActiveSheet()->SetCellValue('B' . ($k + 7), $holiday['hld_name']);
                $objPHPExcel->getActiveSheet()->SetCellValue('C' . ($k + 7), $holiday['hld_code']);
            }
            if ($k) {
                $objPHPExcel->getActiveSheet()->setTitle('Bảng lương');
                if ($pb_selected && $phong_ban_selected_info) {
                    $file_name = 'Thong_ke_luong_' . str_replace(' ', '_', $this->loc_tieng_viet($phong_ban_selected_info->pb_name)) . '_' . $thang . '-' . $nam . '.xls';
                } else {
                    $file_name = 'Thong_ke_luong_' . $thang . '-' . $nam . '.xls';
                }
                header('Content-Type: application/vnd.ms-excel');
                header('Content-Disposition: attachment;
                filename = "' . $file_name . '"');
                header('Cache-Control: max-age = 0');
                $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
                $objWriter->save('php://output');
                die;
                /*
                                  $file_name = 'Bang_luong_.xls';
                                  $objPHPExcel->getActiveSheet()->setTitle('Bảng lương');
                
                                  header('Content-Type: application/vnd.ms-excel');
                                  header('Content-Disposition: attachment;filename="hungnm.xls"');
                                  header('Cache-Control: max-age=0');
                                  $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
                                  $objWriter->save('php://output'); */
            } else {
                $this->_helper->viewRenderer->setRender('loi');
            }
        } else {
            $this->_helper->viewRenderer->setRender('loi');
        }
    }
 public function indexAction()
 {
     $translate = Zend_Registry::get('Zend_Translate');
     $this->view->title = 'Thống kê tháng - ' . $translate->_('TEXT_DEFAULT_TITLE');
     $this->view->headTitle($this->view->title);
     $layoutPath = APPLICATION_PATH . '/templates/' . TEMPLATE_USED;
     $option = array('layout' => '1_column/layout', 'layoutPath' => $layoutPath);
     Zend_Layout::startMvc($option);
     $date = new Zend_Date();
     $date->subMonth(1);
     $thang = $this->_getParam('thang', $date->toString("M"));
     $nam = $this->_getParam('nam', $date->toString("Y"));
     $auth = Zend_Auth::getInstance();
     $identity = $auth->getIdentity();
     $em_id = $identity->em_id;
     $holidaysModel = new Front_Model_Holidays();
     $list_holidays = $holidaysModel->fetchData(array(), 'hld_order ASC');
     $xinnghiphepModel = new Front_Model_XinNghiPhep();
     $list_nghi_phep = $xinnghiphepModel->fetchByDate($em_id, "{$nam}-{$thang}-01 00:00:00", "{$nam}-{$thang}-31 23:59:59");
     $chamcongModel = new Front_Model_ChamCong();
     $cham_cong = $chamcongModel->fetchOneData(array('c_em_id' => $em_id, 'c_thang' => $thang, 'c_nam' => $nam));
     $khenthuongModel = new Front_Model_KhenThuong();
     $khen_thuong = $khenthuongModel->fetchByDate($em_id, "{$nam}-{$thang}-01 00:00:00", "{$nam}-{$thang}-31 23:59:59");
     $kyluatModel = new Front_Model_KyLuat();
     $ky_luat = $kyluatModel->fetchByDate($em_id, "{$nam}-{$thang}-01 00:00:00", "{$nam}-{$thang}-31 23:59:59");
     $this->view->cham_cong = $cham_cong;
     $this->view->thang = $thang;
     $this->view->nam = $nam;
     $this->view->list_holidays = $list_holidays;
     $this->view->list_nghi_phep = $list_nghi_phep;
     $this->view->khen_thuong = $khen_thuong;
     $this->view->ky_luat = $ky_luat;
 }
 public function indexAction()
 {
     $translate = Zend_Registry::get('Zend_Translate');
     $this->view->title = 'Duyệt chấm công - ' . $translate->_('TEXT_DEFAULT_TITLE');
     $this->view->headTitle($this->view->title);
     $layoutPath = APPLICATION_PATH . '/templates/' . TEMPLATE_USED;
     $option = array('layout' => '1_column/layout', 'layoutPath' => $layoutPath);
     Zend_Layout::startMvc($option);
     $date = new Zend_Date();
     $date->subMonth(1);
     $thang = $this->_getParam('thang', $date->toString("M"));
     $nam = $this->_getParam('nam', $date->toString("Y"));
     $auth = Zend_Auth::getInstance();
     $identity = $auth->getIdentity();
     $em_id = $identity->em_id;
     $emModel = new Front_Model_Employees();
     $phongbanModel = new Front_Model_Phongban();
     $my_info = $emModel->fetchRow('em_id=' . $em_id . ' and em_status=1');
     $phong_ban_id = $list_phongban = $phong_ban = array();
     if ($my_info) {
         $phong_ban_id[] = $my_info->em_phong_ban;
         $list_phongban = $phongbanModel->fetchDataStatus($my_info->em_phong_ban, $phong_ban);
     }
     if (sizeof($list_phongban)) {
         foreach ($list_phongban as $phong_ban_info) {
             $phong_ban_id[] = $phong_ban_info->pb_parent;
         }
     }
     $phong_ban_id = implode(',', $phong_ban_id);
     $list_nhan_vien = $emModel->fetchAll("em_phong_ban in ({$phong_ban_id}) and em_status=1");
     $this->view->list_nhan_vien = $list_nhan_vien;
     $this->view->thang = $thang;
     $this->view->nam = $nam;
 }
Example #4
0
 /**
  * Test the network provided
  * @param $affiliateNetwork
  * @return none
  */
 public static function testNetwork($network)
 {
     //Start date, the first two months ago
     $startDate = new Zend_Date();
     $startDate->setDay(1);
     $startDate->subMonth(2);
     $startDate->setHour(00);
     $startDate->setMinute(00);
     $startDate->setSecond(00);
     //Yesterday, some networks don't give us the data for the same day, then is the safer way to have our data
     $endDate = new Zend_Date();
     $endDate->subDay(1);
     $endDate->setHour(23);
     $endDate->setMinute(59);
     $endDate->setSecond(59);
     //are we connected?
     if ($network->checkConnection()) {
         //Get all the payments for this network.
         $paymentsList = $network->getPaymentHistory();
         echo "Total Number of payments: " . count($paymentsList) . "\n\n";
         //Get all the Merhcants
         $merchantList = $network->getMerchantList(array());
         echo "Number of merchants: " . count($merchantList) . "\n\n";
         // Building the array of merchant Id we want to retrieve data from.
         $merchantIdList = array();
         foreach ($merchantList as $merchant) {
             $merchantIdList[] = $merchant['cid'];
         }
         //If we have joined any merchant
         if (!empty($merchantIdList)) {
             //Split the dates monthly, Most of the network don't allow us to retrieve more than a month data
             $dateArray = Oara_Utilities::monthsOfDifference($startDate, $endDate);
             for ($i = 0; $i < count($dateArray); $i++) {
                 // Calculating the start and end date for the current month
                 $monthStartDate = clone $dateArray[$i];
                 $monthEndDate = null;
                 if ($i != count($dateArray) - 1) {
                     $monthEndDate = clone $dateArray[$i];
                     $monthEndDate->setDay(1);
                     $monthEndDate->addMonth(1);
                     $monthEndDate->subDay(1);
                 } else {
                     $monthEndDate = $endDate;
                 }
                 $monthEndDate->setHour(23);
                 $monthEndDate->setMinute(59);
                 $monthEndDate->setSecond(59);
                 echo "\n importing from " . $monthStartDate->toString("dd-MM-yyyy HH:mm:ss") . " to " . $monthEndDate->toString("dd-MM-yyyy HH:mm:ss") . "\n";
                 $transactionList = $network->getTransactionList($merchantIdList, $monthStartDate, $monthEndDate);
                 echo "Number of transactions: " . count($transactionList) . "\n\n";
                 $overviewList = $network->getOverviewList($transactionList, $merchantIdList, $monthStartDate, $monthEndDate);
                 echo "Number register on the overview: " . count($overviewList) . "\n\n";
             }
         }
         echo "Import finished \n\n";
     } else {
         echo "Error connecting to the network, check credentials\n\n";
     }
 }
Example #5
0
 public function getBestsellerProducts()
 {
     $storeId = (int) Mage::app()->getStore()->getId();
     // Date
     $date = new Zend_Date();
     $toDate = $date->setDay(1)->getDate()->get('Y-MM-dd');
     $fromDate = $date->subMonth(1)->getDate()->get('Y-MM-dd');
     $collection = Mage::getResourceModel('catalog/product_collection')->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes())->addStoreFilter()->setPageSize(6);
     $collection->getSelect()->joinLeft(array('aggregation' => $collection->getResource()->getTable('sales/bestsellers_aggregated_monthly')), "e.entity_id = aggregation.product_id AND aggregation.store_id={$storeId} AND aggregation.period BETWEEN '{$fromDate}' AND '{$toDate}'", array('SUM(aggregation.qty_ordered) AS sold_quantity'))->group('e.entity_id')->order(array('sold_quantity DESC', 'e.created_at'));
     Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($collection);
     Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($collection);
     return $collection;
 }
Example #6
0
 public function getLoadedProductCollection()
 {
     if ($this->getRequest()->getParam('id') != null) {
         $id = $this->getRequest()->getParam('id');
         // benchmarking
         $memory = memory_get_usage();
         $time = microtime();
         $catId = $id;
         /** @var $collection Mage_Catalog_Model_Resource_Product_Collection */
         $collection = Mage::getResourceModel('catalog/product_collection');
         // join sales order items column and count sold products
         $expression = new Zend_Db_Expr("SUM(oi.qty_ordered)");
         $condition = new Zend_Db_Expr("e.entity_id = oi.product_id AND oi.parent_item_id IS NULL");
         $collection->addAttributeToSelect('*')->getSelect()->join(array('oi' => $collection->getTable('sales/order_item')), $condition, array('sales_count' => $expression))->group('e.entity_id')->order('sales_count' . ' ' . 'desc');
         // join category
         $condition = new Zend_Db_Expr("e.entity_id = ccp.product_id");
         $condition2 = new Zend_Db_Expr("c.entity_id = ccp.category_id");
         $collection->getSelect()->join(array('ccp' => $collection->getTable('catalog/category_product')), $condition, array())->join(array('c' => $collection->getTable('catalog/category')), $condition2, array('cat_id' => 'c.entity_id'));
         $condition = new Zend_Db_Expr("c.entity_id = cv.entity_id AND ea.attribute_id = cv.attribute_id");
         // cutting corners here by hardcoding 3 as Category Entiry_type_id
         $condition2 = new Zend_Db_Expr("ea.entity_type_id = 3 AND ea.attribute_code = 'name'");
         $collection->getSelect()->join(array('ea' => $collection->getTable('eav/attribute')), $condition2, array())->join(array('cv' => $collection->getTable('catalog/category') . '_varchar'), $condition, array('cat_name' => 'cv.value'));
         // if Category filter is on
         if ($catId) {
             $collection->getSelect()->where('c.entity_id = ?', $catId)->limit(20);
         }
         // unfortunately I cound not come up with the sql query that could grab only 1 bestseller for each category
         // so all sorting work lays on php
         $result = array();
         foreach ($collection as $product) {
             /** @var $product Mage_Catalog_Model_Product */
             if (isset($result[$product->getCatId()])) {
                 continue;
             }
             $result[$product->getCatId()] = 'Category:' . $product->getCatName() . '; Product:' . $product->getName() . '; Sold Times:' . $product->getSalesCount();
         }
     } else {
         $id = 2;
         $storeId = (int) Mage::app()->getStore()->getId();
         // Date
         $date = new Zend_Date();
         $toDate = $date->setDay(1)->getDate()->get('Y-MM-dd');
         $fromDate = $date->subMonth(1)->getDate()->get('Y-MM-dd');
         $collection = Mage::getResourceModel('catalog/product_collection')->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes())->addStoreFilter()->addPriceData()->addTaxPercents()->addUrlRewrite()->setPageSize(6);
         $collection->getSelect()->joinLeft(array('aggregation' => $collection->getResource()->getTable('sales/bestsellers_aggregated_monthly')), "e.entity_id = aggregation.product_id AND aggregation.store_id={$storeId} AND aggregation.period BETWEEN '{$fromDate}' AND '{$toDate}'", array('SUM(aggregation.qty_ordered) AS sold_quantity'))->group('e.entity_id')->order(array('sold_quantity DESC', 'e.created_at'))->limit(5);
         Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($collection);
         Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($collection);
     }
     return $collection;
 }
 public function indexAction()
 {
     $translate = Zend_Registry::get('Zend_Translate');
     $this->view->title = 'Duyệt đánh giá phân loại - ' . $translate->_('TEXT_DEFAULT_TITLE');
     $this->view->headTitle($this->view->title);
     $layoutPath = APPLICATION_PATH . '/templates/' . TEMPLATE_USED;
     $option = array('layout' => '1_column/layout', 'layoutPath' => $layoutPath);
     Zend_Layout::startMvc($option);
     $date = new Zend_Date();
     $date->subMonth(1);
     $thang = $this->_getParam('thang', $date->toString("M"));
     $nam = $this->_getParam('nam', $date->toString("Y"));
     $auth = Zend_Auth::getInstance();
     $identity = $auth->getIdentity();
     $em_id = $identity->em_id;
     $emModel = new Front_Model_Employees();
     $phongbanModel = new Front_Model_Phongban();
     $list_phong_ban = $phongbanModel->fetchAll();
     $pb_selected = $this->_getParam('phongban', 0);
     $phong_ban = array();
     $list_phong_ban_option = $phongbanModel->fetchData(0, $phong_ban);
     $phong_ban_choosed = array();
     $phongbanModel->fetchData($pb_selected, $phong_ban_choosed);
     $pb_ids = array($pb_selected);
     foreach ($phong_ban_choosed as $pb) {
         $pb_ids[] = $pb->pb_id;
     }
     if (!$pb_selected) {
         //$list_employees = $emModel->fetchData(array('em_delete' => 0));
         $list_employees = $emModel->callGetListNhanVien();
     } else {
         //$select = $emModel->select()->where('em_phong_ban in (?)', $pb_ids);
         $list_employees = $emModel->callGetListNhanVien($pb_ids);
     }
     $tieuchiModel = new Front_Model_TieuChiDanhGiaCB();
     $list_tieuchi = $tieuchiModel->fetchData(array('tcdgcb_status' => 1), 'tcdgcb_order ASC');
     $ketquaModel = new Front_Model_DanhGiaKetQuaCV();
     $list_ketqua = $ketquaModel->fetchData(array('dgkqcv_status' => 1), 'dgkqcv_order ASC');
     $this->view->tieu_chi = $list_tieuchi;
     $this->view->ket_qua = $list_ketqua;
     $this->view->thang = $thang;
     $this->view->nam = $nam;
     $this->view->list_nhan_vien = $list_employees;
     $this->view->list_phong_ban = $list_phong_ban;
     $this->view->list_phong_ban_option = $list_phong_ban_option;
     $this->view->pb_id = $pb_selected;
 }
 public function indexAction()
 {
     $translate = Zend_Registry::get('Zend_Translate');
     $this->view->title = 'Chấm công - ' . $translate->_('TEXT_DEFAULT_TITLE');
     $this->view->headTitle($this->view->title);
     $layoutPath = APPLICATION_PATH . '/templates/' . TEMPLATE_USED;
     $option = array('layout' => '1_column/layout', 'layoutPath' => $layoutPath);
     Zend_Layout::startMvc($option);
     $date = new Zend_Date();
     $date->subMonth(1);
     $thang = $this->_getParam('thang', $date->toString("M"));
     $nam = $this->_getParam('nam', $date->toString("Y"));
     $auth = Zend_Auth::getInstance();
     $identity = $auth->getIdentity();
     $em_id = $identity->em_id;
     $holidaysModel = new Front_Model_Holidays();
     $list_holidays = $holidaysModel->fetchData(array(), 'hld_order ASC');
     $xinnghiphepModel = new Front_Model_XinNghiPhep();
     $list_nghi_phep = $xinnghiphepModel->fetchByDate($em_id, "{$nam}-{$thang}-01 00:00:00", "{$nam}-{$thang}-31 23:59:59");
     $chamcongModel = new Front_Model_ChamCong();
     $cham_cong = $chamcongModel->fetchOneData(array('c_em_id' => $em_id, 'c_thang' => $thang, 'c_nam' => $nam));
     $error_message = array();
     $success_message = '';
     if ($this->_request->isPost()) {
         $data_cham_cong = $this->_arrParam['cham_cong'];
         $current_time = new Zend_Db_Expr('NOW()');
         if ($cham_cong && ($cham_cong->c_don_vi_status != '-1' || $cham_cong->c_ptccb_status != '-1')) {
             $error_message[] = 'Chấm công đã được duyệt nên không thể thay đổi.';
         }
         if (!sizeof($error_message)) {
             if ($cham_cong) {
                 $chamcongModel->update(array('c_ngay_1' => isset($data_cham_cong[1]) ? $data_cham_cong[1] : '', 'c_ngay_2' => isset($data_cham_cong[2]) ? $data_cham_cong[2] : '', 'c_ngay_3' => isset($data_cham_cong[3]) ? $data_cham_cong[3] : '', 'c_ngay_4' => isset($data_cham_cong[4]) ? $data_cham_cong[4] : '', 'c_ngay_5' => isset($data_cham_cong[5]) ? $data_cham_cong[5] : '', 'c_ngay_6' => isset($data_cham_cong[6]) ? $data_cham_cong[6] : '', 'c_ngay_7' => isset($data_cham_cong[7]) ? $data_cham_cong[7] : '', 'c_ngay_8' => isset($data_cham_cong[8]) ? $data_cham_cong[8] : '', 'c_ngay_9' => isset($data_cham_cong[9]) ? $data_cham_cong[9] : '', 'c_ngay_10' => isset($data_cham_cong[10]) ? $data_cham_cong[10] : '', 'c_ngay_11' => isset($data_cham_cong[11]) ? $data_cham_cong[11] : '', 'c_ngay_12' => isset($data_cham_cong[12]) ? $data_cham_cong[12] : '', 'c_ngay_13' => isset($data_cham_cong[13]) ? $data_cham_cong[13] : '', 'c_ngay_14' => isset($data_cham_cong[14]) ? $data_cham_cong[14] : '', 'c_ngay_15' => isset($data_cham_cong[15]) ? $data_cham_cong[15] : '', 'c_ngay_16' => isset($data_cham_cong[16]) ? $data_cham_cong[16] : '', 'c_ngay_17' => isset($data_cham_cong[17]) ? $data_cham_cong[17] : '', 'c_ngay_18' => isset($data_cham_cong[18]) ? $data_cham_cong[18] : '', 'c_ngay_19' => isset($data_cham_cong[19]) ? $data_cham_cong[19] : '', 'c_ngay_20' => isset($data_cham_cong[20]) ? $data_cham_cong[20] : '', 'c_ngay_21' => isset($data_cham_cong[21]) ? $data_cham_cong[21] : '', 'c_ngay_22' => isset($data_cham_cong[22]) ? $data_cham_cong[22] : '', 'c_ngay_23' => isset($data_cham_cong[23]) ? $data_cham_cong[23] : '', 'c_ngay_24' => isset($data_cham_cong[24]) ? $data_cham_cong[24] : '', 'c_ngay_25' => isset($data_cham_cong[25]) ? $data_cham_cong[25] : '', 'c_ngay_26' => isset($data_cham_cong[26]) ? $data_cham_cong[26] : '', 'c_ngay_27' => isset($data_cham_cong[27]) ? $data_cham_cong[27] : '', 'c_ngay_28' => isset($data_cham_cong[28]) ? $data_cham_cong[28] : '', 'c_ngay_29' => isset($data_cham_cong[29]) ? $data_cham_cong[29] : '', 'c_ngay_30' => isset($data_cham_cong[30]) ? $data_cham_cong[30] : '', 'c_ngay_31' => isset($data_cham_cong[31]) ? $data_cham_cong[31] : '', 'c_date_modifyed' => $current_time), 'c_id=' . $cham_cong->c_id);
             } else {
                 $chamcongModel->insert(array('c_em_id' => $em_id, 'c_thang' => $thang, 'c_nam' => $nam, 'c_ngay_1' => isset($data_cham_cong[1]) ? $data_cham_cong[1] : '', 'c_ngay_2' => isset($data_cham_cong[2]) ? $data_cham_cong[2] : '', 'c_ngay_3' => isset($data_cham_cong[3]) ? $data_cham_cong[3] : '', 'c_ngay_4' => isset($data_cham_cong[4]) ? $data_cham_cong[4] : '', 'c_ngay_5' => isset($data_cham_cong[5]) ? $data_cham_cong[5] : '', 'c_ngay_6' => isset($data_cham_cong[6]) ? $data_cham_cong[6] : '', 'c_ngay_7' => isset($data_cham_cong[7]) ? $data_cham_cong[7] : '', 'c_ngay_8' => isset($data_cham_cong[8]) ? $data_cham_cong[8] : '', 'c_ngay_9' => isset($data_cham_cong[9]) ? $data_cham_cong[9] : '', 'c_ngay_10' => isset($data_cham_cong[10]) ? $data_cham_cong[10] : '', 'c_ngay_11' => isset($data_cham_cong[11]) ? $data_cham_cong[11] : '', 'c_ngay_12' => isset($data_cham_cong[12]) ? $data_cham_cong[12] : '', 'c_ngay_13' => isset($data_cham_cong[13]) ? $data_cham_cong[13] : '', 'c_ngay_14' => isset($data_cham_cong[14]) ? $data_cham_cong[14] : '', 'c_ngay_15' => isset($data_cham_cong[15]) ? $data_cham_cong[15] : '', 'c_ngay_16' => isset($data_cham_cong[16]) ? $data_cham_cong[16] : '', 'c_ngay_17' => isset($data_cham_cong[17]) ? $data_cham_cong[17] : '', 'c_ngay_18' => isset($data_cham_cong[18]) ? $data_cham_cong[18] : '', 'c_ngay_19' => isset($data_cham_cong[19]) ? $data_cham_cong[19] : '', 'c_ngay_20' => isset($data_cham_cong[20]) ? $data_cham_cong[20] : '', 'c_ngay_21' => isset($data_cham_cong[21]) ? $data_cham_cong[21] : '', 'c_ngay_22' => isset($data_cham_cong[22]) ? $data_cham_cong[22] : '', 'c_ngay_23' => isset($data_cham_cong[23]) ? $data_cham_cong[23] : '', 'c_ngay_24' => isset($data_cham_cong[24]) ? $data_cham_cong[24] : '', 'c_ngay_25' => isset($data_cham_cong[25]) ? $data_cham_cong[25] : '', 'c_ngay_26' => isset($data_cham_cong[26]) ? $data_cham_cong[26] : '', 'c_ngay_27' => isset($data_cham_cong[27]) ? $data_cham_cong[27] : '', 'c_ngay_28' => isset($data_cham_cong[28]) ? $data_cham_cong[28] : '', 'c_ngay_29' => isset($data_cham_cong[29]) ? $data_cham_cong[29] : '', 'c_ngay_30' => isset($data_cham_cong[30]) ? $data_cham_cong[30] : '', 'c_ngay_31' => isset($data_cham_cong[31]) ? $data_cham_cong[31] : '', 'c_date_created' => $current_time, 'c_date_modifyed' => $current_time));
             }
             $success_message = 'Đã cập nhật thành công.';
             $cham_cong = $chamcongModel->fetchOneData(array('c_em_id' => $em_id, 'c_thang' => $thang, 'c_nam' => $nam));
         }
     }
     $this->view->success_message = $success_message;
     $this->view->error_message = $error_message;
     $this->view->thang = $thang;
     $this->view->nam = $nam;
     $this->view->cham_cong = $cham_cong;
     $this->view->list_holidays = $list_holidays;
     $this->view->list_nghi_phep = $list_nghi_phep;
 }
Example #9
0
 /**
  * (non-PHPdoc)
  * @see library/Oara/Network/Oara_Network_Publisher_Base#getTransactionList($merchantId, $dStartDate, $dEndDate)
  */
 public function getTransactionList($merchantList = null, Zend_Date $dStartDate = null, Zend_Date $dEndDate = null, $merchantMap = null)
 {
     $totalTransactions = array();
     $transactionNumber = rand(1, 200);
     $twoMonthsAgoDate = new Zend_Date();
     $twoMonthsAgoDate->subMonth(2);
     $dateArray = Oara_Utilities::daysOfDifference($dStartDate, $dEndDate);
     for ($i = 0; $i < $transactionNumber; $i++) {
         $dateIndex = rand(0, count($dateArray) - 1);
         $merchantIndex = rand(0, count($merchantList) - 1);
         $transaction = array();
         $transaction['unique_id'] = md5(mt_rand() . $dateArray[$dateIndex]->toString("yyyy-MM-dd HH:mm:ss"));
         $transaction['custom_id'] = "my_custom_id";
         $transaction['merchantId'] = $merchantList[$merchantIndex];
         $transaction['date'] = $dateArray[$dateIndex]->toString("yyyy-MM-dd HH:mm:ss");
         $transactionAmount = rand(1, 1000);
         $transaction['amount'] = $transactionAmount;
         $transaction['commission'] = $transactionAmount / 10;
         //$transaction['link'] = $this->_linkList[rand(0, count($this->_linkList)-1)];
         //$transaction['website'] = $this->_websiteList[rand(0, count($this->_websiteList)-1)];
         //$transaction['page'] = $this->_pageList[rand(0, count($this->_pageList)-1)];
         $transactionStatusChances = rand(1, 100);
         if ($dateArray[$dateIndex]->compare($twoMonthsAgoDate) >= 0) {
             if ($transactionStatusChances < 60) {
                 $transaction['status'] = Oara_Utilities::STATUS_CONFIRMED;
             } else {
                 if ($transactionStatusChances < 70) {
                     $transaction['status'] = Oara_Utilities::STATUS_DECLINED;
                 } else {
                     $transaction['status'] = Oara_Utilities::STATUS_PENDING;
                 }
             }
         } else {
             if ($transactionStatusChances < 80) {
                 $transaction['status'] = Oara_Utilities::STATUS_CONFIRMED;
             } else {
                 $transaction['status'] = Oara_Utilities::STATUS_DECLINED;
             }
         }
         $totalTransactions[] = $transaction;
     }
     return $totalTransactions;
 }
 public function indexAction()
 {
     $translate = Zend_Registry::get('Zend_Translate');
     $this->view->title = 'Duyệt đánh giá phân loại - ' . $translate->_('TEXT_DEFAULT_TITLE');
     $this->view->headTitle($this->view->title);
     $layoutPath = APPLICATION_PATH . '/templates/' . TEMPLATE_USED;
     $option = array('layout' => 'donvi/layout', 'layoutPath' => $layoutPath);
     Zend_Layout::startMvc($option);
     $date = new Zend_Date();
     $date->subMonth(1);
     $thang = $this->_getParam('thang', $date->toString("M"));
     $nam = $this->_getParam('nam', $date->toString("Y"));
     $auth = Zend_Auth::getInstance();
     $identity = $auth->getIdentity();
     $em_id = $identity->em_id;
     $emModel = new Front_Model_Employees();
     $phongbanModel = new Front_Model_Phongban();
     $my_info = $emModel->fetchRow('em_id=' . $em_id . ' and em_status=1');
     $phong_ban_id = $list_phongban = $phong_ban = array();
     if ($my_info) {
         $phong_ban_id[] = $my_info->em_phong_ban;
         $list_phongban = $phongbanModel->fetchDataStatus($my_info->em_phong_ban, $phong_ban);
     }
     if (sizeof($list_phongban)) {
         foreach ($list_phongban as $phong_ban_info) {
             $phong_ban_id[] = $phong_ban_info->pb_parent;
         }
     }
     $phong_ban_id = implode(',', $phong_ban_id);
     $list_nhan_vien = $emModel->fetchAll("em_phong_ban in ({$phong_ban_id}) and em_status=1");
     $tieuchiModel = new Front_Model_TieuChiDanhGiaCB();
     $list_tieuchi = $tieuchiModel->fetchData(array('tcdgcb_status' => 1), 'tcdgcb_order ASC');
     $ketquaModel = new Front_Model_DanhGiaKetQuaCV();
     $list_ketqua = $ketquaModel->fetchData(array('dgkqcv_status' => 1), 'dgkqcv_order ASC');
     $this->view->tieu_chi = $list_tieuchi;
     $this->view->ket_qua = $list_ketqua;
     $this->view->thang = $thang;
     $this->view->nam = $nam;
     $this->view->list_nhan_vien = $list_nhan_vien;
 }
Example #11
0
 /**
  * (non-PHPdoc)
  * @see library/Oara/Network/Oara_Network_Base#getTransactionList($merchantId, $dStartDate, $dEndDate)
  */
 public function getTransactionList($merchantList = null, Zend_Date $dStartDate = null, Zend_Date $dEndDate = null)
 {
     $totalTransactions = array();
     $transactionNumber = 50000;
     $twoMonthsAgoDate = new Zend_Date();
     $twoMonthsAgoDate->subMonth(2);
     $dateArray = Oara_Utilities::daysOfDifference($dStartDate, $dEndDate);
     for ($i = 0; $i < $transactionNumber; $i++) {
         $dateIndex = rand(0, count($dateArray) - 1);
         $merchantIndex = rand(0, count($merchantList) - 1);
         $transaction = array();
         $transaction['merchantId'] = $merchantList[$merchantIndex];
         $transaction['date'] = $dateArray[$dateIndex]->toString("yyyy-MM-dd HH:mm:ss");
         $transactionAmount = rand(1, 1000);
         $transaction['amount'] = $transactionAmount;
         $transaction['commission'] = $transactionAmount * (rand(1, 20) / 100);
         $transactionStatusChances = rand(1, 100);
         if ($dateArray[$dateIndex]->compare($twoMonthsAgoDate) >= 0) {
             if ($transactionStatusChances < 60) {
                 $transaction['status'] = Oara_Utilities::STATUS_CONFIRMED;
             } else {
                 if ($transactionStatusChances < 70) {
                     $transaction['status'] = Oara_Utilities::STATUS_DECLINED;
                 } else {
                     $transaction['status'] = Oara_Utilities::STATUS_PENDING;
                 }
             }
         } else {
             if ($transactionStatusChances < 80) {
                 $transaction['status'] = Oara_Utilities::STATUS_CONFIRMED;
             } else {
                 $transaction['status'] = Oara_Utilities::STATUS_DECLINED;
             }
         }
         $totalTransactions[] = $transaction;
     }
     return $totalTransactions;
 }
Example #12
0
 public function getListBestSellerProducts($fieldorder = 'ordered_qty', $order = 'desc')
 {
     $limit = $this->getConfig('limit_item', 'catalog_source_setting');
     $limit = empty($limit) ? 6 : (int) $limit;
     $storeId = Mage::app()->getStore()->getId();
     $cateids = $this->getConfig('catsid', 'catalog_source_setting');
     $arr_catsid = array();
     if (stristr($cateids, ',') === FALSE) {
         $arr_catsid = array($cateids);
     } else {
         $arr_catsid = explode(",", $cateids);
     }
     $date = new Zend_Date();
     $toDate = $date->setDay(1)->getDate()->get('Y-MM-dd');
     $fromDate = $date->subMonth(1)->getDate()->get('Y-MM-dd');
     if ($this->getConfig('bestseller_from_date') != '') {
         $fromDate = $this->getConfig('bestseller_from_date');
     }
     if ($this->getConfig('bestseller_to_date') != '') {
         $toDate = $this->getConfig('bestseller_to_date');
     }
     $resource = Mage::getSingleton('core/resource');
     $products = $this->getCollectionPro()->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes())->addStoreFilter()->addPriceData()->addTaxPercents()->addUrlRewrite()->joinTable($resource->getTableName('catalog_category_product'), 'product_id=entity_id', array('category_id' => 'category_id'), null, 'left')->addAttributeToFilter(array(array('attribute' => 'category_id', 'in' => array('finset' => $arr_catsid))));
     $products->getSelect()->joinLeft(array('aggregation' => $products->getResource()->getTable('sales/bestsellers_aggregated_monthly')), "e.entity_id = aggregation.product_id AND aggregation.store_id={$storeId} AND aggregation.period BETWEEN '{$fromDate}' AND '{$toDate}'", array('SUM(aggregation.qty_ordered) AS sold_quantity'))->group('e.entity_id')->order(array('sold_quantity DESC', 'e.created_at'));
     Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($products);
     Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($products);
     $products->setPageSize($limit)->setCurPage($this->_current_page);
     $this->setProductCollection($products);
     $this->_addProductAttributesAndPrices($products);
     $list = array();
     if (($_products = $this->getProductCollection()) && $_products->getSize()) {
         $list = $products;
     }
     return $list;
 }
Example #13
0
 public function applySourceType($collection = null, $is_block_mode = true)
 {
     if ($collection) {
         /*Apply source type*/
         $source_type = $this->getSourceType();
         switch ($source_type) {
             case "best_value":
                 if ($is_block_mode) {
                     $collection->getSelect()->order('t2.position ASC');
                 }
                 break;
             case "new_arrival":
                 $fieldorder = 'created_at';
                 $order = 'desc';
                 $todayStartOfDayDate = Mage::app()->getLocale()->date()->setTime('00:00:00')->toString(Varien_Date::DATETIME_INTERNAL_FORMAT);
                 $todayEndOfDayDate = Mage::app()->getLocale()->date()->setTime('23:59:59')->toString(Varien_Date::DATETIME_INTERNAL_FORMAT);
                 $collection->addAttributeToFilter(array(array('attribute' => 'news_from_date', array('or' => array(0 => array('date' => true, 'to' => $todayEndOfDayDate), 1 => array('is' => new Zend_Db_Expr('null')))), 'left')))->addAttributeToFilter(array(array('attribute' => 'news_to_date', array('or' => array(0 => array('date' => true, 'from' => $todayStartOfDayDate), 1 => array('is' => new Zend_Db_Expr('null')))), 'left')))->addAttributeToSort('news_from_date', 'desc')->addAttributeToSort($fieldorder, $order);
                 break;
             case "special":
                 $collection->getSelect()->where('price_index.final_price < price_index.price');
                 break;
             case "most_viewed":
                 if ($is_block_mode) {
                     $collection->addViewsCount();
                 }
                 break;
             case "best_seller":
                 if ($is_block_mode) {
                     // Date
                     $date = new Zend_Date();
                     $toDate = $date->setDay(1)->getDate()->get('Y-MM-dd');
                     $fromDate = $date->subMonth(1)->getDate()->get('Y-MM-dd');
                     $storeId = Mage::app()->getStore()->getId();
                     $collection->getSelect()->joinLeft(array('aggregation' => $collection->getResource()->getTable('sales/bestsellers_aggregated_monthly')), "e.entity_id = aggregation.product_id AND aggregation.store_id={$storeId} AND aggregation.period BETWEEN '{$fromDate}' AND '{$toDate}'", array('SUM(aggregation.qty_ordered) AS sold_quantity'))->group('e.entity_id')->order(array('sold_quantity DESC', 'e.created_at'));
                 }
                 break;
             case "top_rate":
                 if ($is_block_mode) {
                     $collection->joinField('rating_summary_field', 'review/review_aggregate', 'rating_summary', 'entity_pk_value=entity_id', array('entity_type' => 1, 'store_id' => Mage::app()->getStore()->getId()), 'left');
                     $collection->addAttributeToSort('rating_summary_field', 'desc');
                 }
                 break;
             case "latest":
                 $fieldorder = 'created_at';
                 $order = 'desc';
                 $collection->addAttributeToSort($fieldorder, $order);
                 break;
             case "random":
                 $collection->getSelect()->order(new Zend_Db_Expr('RAND()'));
                 break;
         }
     }
     return $collection;
 }
Example #14
0
 public function getListBestSellerProducts($config = array())
 {
     $this->_config = $config;
     $fieldorder = 'ordered_qty';
     $order = 'desc';
     $storeId = Mage::app()->getStore()->getId();
     $cateids = $this->getConfig('catsid');
     $list = array();
     $limit_item = $this->getConfig('limit_item', 12);
     $itemspage = $this->getConfig('itemspage', 6);
     $curPage = $this->getConfig('page', 1);
     $date = new Zend_Date();
     $toDate = $date->setDay(1)->getDate()->get('Y-MM-dd');
     $fromDate = $date->subMonth(1)->getDate()->get('Y-MM-dd');
     $resource = Mage::getSingleton('core/resource');
     if ($curPage * $itemspage > $limit_item + $itemspage) {
         return '';
     }
     if ($cateids && $cateids != "1") {
         $arr_catsid = array();
         if (is_array($cateids)) {
             $arr_catsid = $cateids;
         } else {
             if (stristr($cateids, ',') === FALSE) {
                 $arr_catsid = array($cateids);
             } else {
                 $arr_catsid = explode(",", $cateids);
             }
         }
         $products = $this->getCollectionPro()->addStoreFilter()->addPriceData()->addTaxPercents()->addUrlRewrite()->joinTable($resource->getTableName('catalog_category_product'), 'product_id=entity_id', array('category_id' => 'category_id'), null, 'left')->addAttributeToFilter(array(array('attribute' => 'category_id', 'in' => array('finset' => $arr_catsid))));
         $products->getSelect()->joinLeft(array('aggregation' => $products->getResource()->getTable('sales/bestsellers_aggregated_monthly')), "e.entity_id = aggregation.product_id AND aggregation.store_id={$storeId} AND aggregation.period BETWEEN '{$fromDate}' AND '{$toDate}'", array('SUM(aggregation.qty_ordered) AS sold_quantity'))->group('e.entity_id')->order(array('sold_quantity DESC', 'e.created_at'));
     } else {
         $products = $this->getCollectionPro()->addStoreFilter()->addPriceData()->addTaxPercents()->addUrlRewrite();
         $products->getSelect()->joinLeft(array('aggregation' => $products->getResource()->getTable('sales/bestsellers_aggregated_monthly')), "e.entity_id = aggregation.product_id AND aggregation.store_id={$storeId} AND aggregation.period BETWEEN '{$fromDate}' AND '{$toDate}'", array('SUM(aggregation.qty_ordered) AS sold_quantity'))->group('e.entity_id')->order(array('sold_quantity DESC', 'e.created_at'));
     }
     $list = array();
     Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($products);
     Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($products);
     $this->_addProductAttributesAndPrices($products);
     $products->setPageSize($itemspage)->setCurPage($curPage);
     $this->setProductCollection($products);
     if (($_products = $this->getProductCollection()) && $_products->getSize()) {
         $list['products'] = $products;
     }
     $size = $products->getSize();
     $list['hasNextData'] = true;
     if ($limit_item < $size) {
         $size = $limit_item;
     }
     if ($size <= $curPage * $itemspage) {
         $list['hasNextData'] = false;
     }
     return $list;
 }
Example #15
0
 /**
  * test looseBehaviour
  */
 public function testLoose()
 {
     $date = new Zend_Date(0, 'de_DE');
     try {
         $date->set(null, Zend_Date::YEAR);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     $date->set(10, 'de_DE');
     $this->assertEquals(10, $date->getTimestamp());
     try {
         $date->add(null, Zend_Date::YEAR);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     $date->add(10, 'de_DE');
     $this->assertEquals(20, $date->getTimestamp());
     try {
         $date->sub(null, Zend_Date::YEAR);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     $date->sub(10, 'de_DE');
     $this->assertEquals(10, $date->getTimestamp());
     try {
         $date->compare(null, Zend_Date::YEAR);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->equals(null, Zend_Date::YEAR);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->isEarlier(null, Zend_Date::YEAR);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->isLater(null, Zend_Date::YEAR);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->setTime(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->addTime(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->subTime(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->compareTime(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->setDate(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->addDate(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->subDate(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->compareDate(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->setIso(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->addIso(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->subIso(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->compareIso(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->setArpa(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->addArpa(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->subArpa(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->compareArpa(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->setYear(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->addYear(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->subYear(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->compareYear(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->setMonth(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->addMonth(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->subMonth(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->compareMonth(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->setDay(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->addDay(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->subDay(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->compareDay(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->setWeekday(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->addWeekday(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->subWeekday(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->compareWeekday(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->setDayOfYear(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->addDayOfYear(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->subDayOfYear(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->compareDayOfYear(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->setHour(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->addHour(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->subHour(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->compareHour(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->setMinute(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->addMinute(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->subMinute(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->compareMinute(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->setSecond(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->addSecond(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->subSecond(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->compareSecond(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->setWeek(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->addWeek(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->subWeek(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
     try {
         $date->compareWeek(null);
         $this->fail();
     } catch (Zend_Date_Exception $e) {
         // success
     }
 }
 public function heso02Action()
 {
     $translate = Zend_Registry::get('Zend_Translate');
     $this->view->title = 'In lương hệ số 0.2 - ' . $translate->_('TEXT_DEFAULT_TITLE');
     $this->view->headTitle($this->view->title);
     $layoutPath = APPLICATION_PATH . '/templates/' . TEMPLATE_USED;
     $option = array('layout' => '1_column/layout', 'layoutPath' => $layoutPath);
     Zend_Layout::startMvc($option);
     $date = new Zend_Date();
     $date->subMonth(1);
     $thang = $this->_getParam('thang', $date->toString("M"));
     $nam = $this->_getParam('nam', $date->toString("Y"));
     $emModel = new Front_Model_Employees();
     $phongbanModel = new Front_Model_Phongban();
     $chucvuModel = new Front_Model_Chucvu();
     $heso02Model = new Front_Model_HeSo02();
     $check_he_so_02 = $heso02Model->fetchRow("nam={$nam}");
     $pb_selected = $this->_getParam('phongban', 0);
     $phong_ban_id = $list_phongban_selected = $phong_ban = array();
     $phong_ban_id[] = $pb_selected;
     $list_phongban_selected = $phongbanModel->fetchDataStatus($pb_selected, $phong_ban);
     $list_chuc_vu = $chucvuModel->fetchAll();
     $phong_ban_options = array();
     $list_phong_ban_option = $phongbanModel->fetchData(0, $phong_ban_options);
     if (sizeof($list_phongban_selected)) {
         foreach ($list_phongban_selected as $phong_ban_info) {
             $phong_ban_id[] = $phong_ban_info->pb_id;
         }
     }
     $phong_ban_id = implode(',', $phong_ban_id);
     $list_nhan_vien = $emModel->fetchAll("em_phong_ban in ({$phong_ban_id}) and em_status=1");
     $this->view->list_nhan_vien = $list_nhan_vien;
     $this->view->thang = $thang;
     $this->view->nam = $nam;
     $this->view->pb_id = $pb_selected;
     $this->view->list_phong_ban_option = $list_phong_ban_option;
     $this->view->list_chuc_vu = $list_chuc_vu;
     if (!$check_he_so_02) {
         $this->_helper->viewRenderer->setRender('loi02');
     }
 }
 public function indexAction()
 {
     $translate = Zend_Registry::get('Zend_Translate');
     $this->view->title = 'Tự đánh giá phân loại - ' . $translate->_('TEXT_DEFAULT_TITLE');
     $this->view->headTitle($this->view->title);
     $layoutPath = APPLICATION_PATH . '/templates/' . TEMPLATE_USED;
     $option = array('layout' => 'canhan/layout', 'layoutPath' => $layoutPath);
     Zend_Layout::startMvc($option);
     $this->view->page = $this->_page;
     $date = new Zend_Date();
     $date->subMonth(1);
     $thang = $this->_getParam('thang', $date->toString("M"));
     $nam = $this->_getParam('nam', $date->toString("Y"));
     $auth = Zend_Auth::getInstance();
     $identity = $auth->getIdentity();
     $em_id = $identity->em_id;
     $danhgiaModel = new Front_Model_DanhGia();
     $danh_gia = $danhgiaModel->fetchOneData(array('dg_em_id' => $em_id, 'dg_thang' => $thang, 'dg_nam' => $nam));
     $tieuchiModel = new Front_Model_TieuChiDanhGiaCB();
     $list_tieuchi = $tieuchiModel->fetchData(array('tcdgcb_status' => 1), 'tcdgcb_order ASC');
     $ketquaModel = new Front_Model_DanhGiaKetQuaCV();
     $list_ketqua = $ketquaModel->fetchData(array('dgkqcv_status' => 1), 'dgkqcv_order ASC');
     $error_message = array();
     $success_message = '';
     if ($this->_request->isPost()) {
         $cong_viec = $this->_arrParam['d_cong_viec'];
         $kq_cong_viec = $this->_arrParam['d_kq_cong_viec'];
         $ngay_nghi = $this->_arrParam['d_ngay_nghi'];
         $ly_do_nghi = $this->_arrParam['d_ly_do'];
         $y_thuc_tn = $this->_arrParam['d_y_thuc'];
         $khuyet_diem = $this->_arrParam['d_khuyet_diem'];
         $tc_danh_gia = serialize($this->_arrParam['d_tieu_chi']);
         $ghi_chu = $this->_arrParam['d_ghi_chu'];
         $phan_loai = $this->_arrParam['d_phan_loai'];
         $current_time = new Zend_Db_Expr('NOW()');
         if ($danh_gia && ($danh_gia->dg_don_vi_status != '' || $danh_gia->dg_ptccb_status != '')) {
             $error_message[] = 'Đánh giá phân loại đã được duyệt nên không thể thay đổi.';
         }
         if (!$cong_viec) {
             $error_message[] = 'Công việc trong tháng không được để trống';
         }
         if (!sizeof($error_message)) {
             if ($danh_gia) {
                 $danhgiaModel->update(array('dg_cong_viec' => $cong_viec, 'dg_ket_qua_cong_viec' => $kq_cong_viec, 'dg_so_ngay_nghi' => $ngay_nghi, 'dg_ly_do_nghi' => $ly_do_nghi, 'dg_y_thuc_xay_dung' => $y_thuc_tn, 'dg_khuyet_diem' => $khuyet_diem, 'dg_tc_danh_gia' => $tc_danh_gia, 'dg_ghi_chu' => $ghi_chu, 'dg_phan_loai' => $phan_loai, 'dg_date_modifyed' => $current_time), 'dg_id=' . $danh_gia->dg_id);
             } else {
                 $danhgiaModel->insert(array('dg_em_id' => $em_id, 'dg_thang' => $thang, 'dg_nam' => $nam, 'dg_cong_viec' => $cong_viec, 'dg_ket_qua_cong_viec' => $kq_cong_viec, 'dg_so_ngay_nghi' => $ngay_nghi, 'dg_ly_do_nghi' => $ly_do_nghi, 'dg_y_thuc_xay_dung' => $y_thuc_tn, 'dg_khuyet_diem' => $khuyet_diem, 'dg_tc_danh_gia' => $tc_danh_gia, 'dg_ghi_chu' => $ghi_chu, 'dg_phan_loai' => $phan_loai, 'dg_date_modifyed' => $current_time, 'dg_date_created' => $current_time));
             }
         }
         $users = $this->_helper->GlobalHelpers->checkDonViUsers($em_id, 3005);
         $thongbao_model = new Front_Model_ThongBao();
         $data = array();
         $data['tb_from'] = 0;
         $data['tb_tieu_de'] = '[Thông báo] Duyệt đánh giá phân loại.';
         $data['tb_noi_dung'] = 'Có khai báo đánh giá phân loại mới.<br/> Bạn hãy <strong><a href="' . $this->view->baseUrl('donvi/duyetphanloai') . '">click vào đây</a></strong> để xét duyệt.';
         $data['tb_status'] = 0;
         $data['tb_date_added'] = $current_time;
         $data['tb_date_modified'] = $current_time;
         foreach ($users as $user) {
             $data['tb_to'] = $user->em_id;
             $thongbao_model->insert($data);
         }
         $success_message = 'Đã cập nhật thành công.';
         $danh_gia = $danhgiaModel->fetchOneData(array('dg_em_id' => $em_id, 'dg_thang' => $thang, 'dg_nam' => $nam));
     }
     if ($danh_gia) {
         $this->_arrParam['d_cong_viec'] = $danh_gia->dg_cong_viec;
         $this->_arrParam['d_kq_cong_viec'] = $danh_gia->dg_ket_qua_cong_viec;
         $this->_arrParam['d_ngay_nghi'] = $danh_gia->dg_so_ngay_nghi;
         $this->_arrParam['d_ly_do'] = $danh_gia->dg_ly_do_nghi;
         $this->_arrParam['d_y_thuc'] = $danh_gia->dg_y_thuc_xay_dung;
         $this->_arrParam['d_khuyet_diem'] = $danh_gia->dg_khuyet_diem;
         $this->_arrParam['d_tieu_chi'] = unserialize($danh_gia->dg_tc_danh_gia);
         $this->_arrParam['d_ghi_chu'] = $danh_gia->dg_ghi_chu;
         $this->_arrParam['d_phan_loai'] = $danh_gia->dg_phan_loai;
     }
     $this->view->tieu_chi = $list_tieuchi;
     $this->view->ket_qua = $list_ketqua;
     $this->view->success_message = $success_message;
     $this->view->error_message = $error_message;
     $this->view->thang = $thang;
     $this->view->nam = $nam;
     $this->view->danh_gia = $danh_gia;
     $this->view->arrParam = $this->_arrParam;
 }
Example #18
0
 /**
  * @param $filter
  *
  * @return mixed
  */
 protected function _processFilter($filter)
 {
     $period = AW_Helpdesk3_Block_Adminhtml_Statistic_Agent_View_Chart::PERIOD_LAST_THIRTY_DAYS;
     if (array_key_exists('period', $filter)) {
         $period = intval($filter['period']);
     }
     $filter['period'] = $period;
     $fromDate = new Zend_Date();
     $toDate = new Zend_Date();
     $fromDate->setHour(23)->setMinute(59)->setSecond(59);
     $toDate->setHour(23)->setMinute(59)->setSecond(59);
     switch ($period) {
         case AW_Helpdesk3_Block_Adminhtml_Statistic_Agent_View_Chart::PERIOD_TODAY:
             break;
         case AW_Helpdesk3_Block_Adminhtml_Statistic_Agent_View_Chart::PERIOD_YESTERDAY:
             $fromDate->subDay(1);
             $toDate->subDay(1);
             break;
         case AW_Helpdesk3_Block_Adminhtml_Statistic_Agent_View_Chart::PERIOD_THIS_WEEK:
             $firstDayOfWeek = (int) Mage::getStoreConfig('general/locale/firstday');
             if ($firstDayOfWeek === 0) {
                 $firstDayOfWeek = 7;
             }
             $fromDate->setWeekday($firstDayOfWeek);
             if ($firstDayOfWeek > (int) $fromDate->toString('e')) {
                 $fromDate->subWeek(1);
             }
             break;
         case AW_Helpdesk3_Block_Adminhtml_Statistic_Agent_View_Chart::PERIOD_LAST_WEEK:
             $fromDate->subWeek(1);
             $toDate->subWeek(1);
             $firstDayOfWeek = (int) Mage::getStoreConfig('general/locale/firstday');
             if ($firstDayOfWeek === 0) {
                 $firstDayOfWeek = 7;
             }
             $fromDate->setWeekday($firstDayOfWeek);
             if ($firstDayOfWeek > (int) $fromDate->toString('e')) {
                 $fromDate->subWeek(1);
             }
             $lastDayOfWeek = $firstDayOfWeek - 1;
             if ($lastDayOfWeek < 1) {
                 $lastDayOfWeek = 7;
             }
             $toDate->setWeekday($lastDayOfWeek);
             break;
         case AW_Helpdesk3_Block_Adminhtml_Statistic_Agent_View_Chart::PERIOD_THIS_MONTH:
             $fromDate->setDay(1);
             break;
         case AW_Helpdesk3_Block_Adminhtml_Statistic_Agent_View_Chart::PERIOD_LAST_MONTH:
             $fromDate->subMonth(1)->setDay(1);
             $toDate->setDay(1)->subDay(1);
             break;
         case AW_Helpdesk3_Block_Adminhtml_Statistic_Agent_View_Chart::PERIOD_LAST_SIX_MONTHS:
             $fromDate->subMonth(6);
             break;
         case AW_Helpdesk3_Block_Adminhtml_Statistic_Agent_View_Chart::PERIOD_CUSTOM:
             $_reversed = false;
             $_now = new Zend_Date(null, 'dd/MM/y');
             try {
                 $_fromDate = new Zend_Date($filter['from_date'], 'dd/MM/y');
             } catch (Exception $e) {
                 Mage::getSingleton('adminhtml/session')->addError(Mage::helper('aw_hdu3')->__('Please select correct "From" date value'));
                 $_fromDate = clone $_now;
             }
             try {
                 $_toDate = new Zend_Date($filter['to_date'], 'dd/MM/y');
                 if ($_fromDate->compare($_toDate) > 0) {
                     $_reversed = true;
                 }
             } catch (Exception $e) {
                 Mage::getSingleton('adminhtml/session')->addError(Mage::helper('aw_hdu3')->__('Please select correct "To" date value'));
                 $_toDate = clone $_now;
             }
             if ($_reversed) {
                 $fromDate = $_toDate;
                 $toDate = $_fromDate;
             } else {
                 $fromDate = $_fromDate;
                 $toDate = $_toDate;
             }
             break;
         case AW_Helpdesk3_Block_Adminhtml_Statistic_Agent_View_Chart::PERIOD_LAST_SEVEN_DAYS:
             $fromDate->subDay(6);
             break;
         case AW_Helpdesk3_Block_Adminhtml_Statistic_Agent_View_Chart::PERIOD_LAST_THIRTY_DAYS:
             $fromDate->subDay(29);
             break;
     }
     $filter['from_date'] = $fromDate;
     $filter['to_date'] = $toDate;
     if (!array_key_exists('group', $filter)) {
         $filter['group'] = AW_Helpdesk3_Block_Adminhtml_Statistic_Agent_View_Chart::GROUP_BY_WEEK;
     }
     if (!array_key_exists('agents[]', $filter)) {
         $filter['agents[]'] = $this->_getAgentIds();
     }
     if (!array_key_exists('report', $filter)) {
         $filter['report'] = AW_Helpdesk3_Block_Adminhtml_Statistic_Agent_View_Chart::REPORT_FIRST_REPLY_AVG_TIME;
     }
     return $filter;
 }
Example #19
0
 /**
  * Return interval (two GMT Zend_Date).
  *
  * @param $code
  * @param bool $timezone
  *
  * @return Varien_Object
  */
 public function getInterval($code, $timezone = false)
 {
     $timestamp = Mage::getSingleton('core/date')->gmtTimestamp();
     if ($timezone) {
         $timestamp = Mage::app()->getLocale()->date($timestamp);
     }
     $from = new Zend_Date($timestamp, null, Mage::app()->getLocale()->getLocaleCode());
     $to = clone $from;
     $dateInterval = null;
     switch ($code) {
         case self::TODAY:
             $from->setTime('00:00:00');
             $to->setTime('23:59:59');
             break;
         case self::YESTERDAY:
             $from->subDay(1)->setTime('00:00:00');
             $to->subDay(1)->setTime('23:59:59');
             break;
         case self::THIS_MONTH:
             $from->setDay(1)->setTime('00:00:00');
             $to->setDay(1)->addDay($to->get(Zend_Date::MONTH_DAYS) - 1)->setTime('23:59:59');
             break;
         case self::PREVIOUS_MONTH:
             $from->setDay(1)->subMonth(1)->setTime('00:00:00');
             $to->setDay(1)->setTime('23:59:59')->subMonth(1)->addDay($to->get(Zend_Date::MONTH_DAYS) - 1);
             break;
         case self::THIS_QUARTER:
             $month = intval($from->get(Zend_Date::MONTH) / 4) * 3 + 1;
             $from->setDay(1)->setMonth($month)->setTime('00:00:00');
             $to->setDay(1)->setMonth($month)->addMonth(3)->subDay(1)->setTime('23:59:59');
             break;
         case self::PREVIOUS_QUARTER:
             $month = intval($from->get(Zend_Date::MONTH) / 4) * 3 + 1;
             $from->setDay(1)->setMonth($month)->setTime('00:00:00')->subMonth(3);
             $to->setDay(1)->setMonth($month)->addMonth(3)->subDay(1)->setTime('23:59:59')->subMonth(3);
             break;
         case self::THIS_YEAR:
             $from->setDay(1)->setMonth(1)->setTime('00:00:00');
             $to->setDay(1)->setMonth(1)->addDay($to->get(Zend_Date::LEAPYEAR) ? 365 : 364)->setTime('23:59:59');
             break;
         case self::PREVIOUS_YEAR:
             $from->setDay(1)->setMonth(1)->setTime('00:00:00')->subYear(1);
             $to->setDay(1)->setMonth(1)->addDay($to->get(Zend_Date::LEAPYEAR) ? 365 : 364)->setTime('23:59:59')->subYear(1);
             break;
         case self::LAST_24H:
             $from->subDay(1);
             break;
         case self::THIS_WEEK:
             $weekday = $from->get(Zend_Date::WEEKDAY_DIGIT);
             #0-6
             $from->setTime('00:00:00')->subDay($weekday);
             $to->setTime('23:59:59')->addDay(6 - $weekday);
             break;
         case self::PREVIOUS_WEEK:
             $weekday = $from->get(Zend_Date::WEEKDAY_DIGIT);
             #0-6
             $from->setTime('00:00:00')->subDay($weekday)->subWeek(1);
             $to->setTime('23:59:59')->addDay(6 - $weekday)->subWeek(1);
             break;
         case self::LAST_7D:
             $from->subDay(7);
             break;
         case self::LAST_30D:
             $from->subDay(30);
             break;
         case self::LAST_3M:
             $from->subMonth(3);
             break;
         case self::LAST_12M:
             $from->subYear(1);
             break;
         case self::LIFETIME:
             $from->subYear(10);
             $to->addYear(10);
             break;
     }
     return new Varien_Object(array('from' => $from, 'to' => $to));
 }
Example #20
0
 public function getListBestSellerProducts1($config = array())
 {
     $this->_config = $config;
     $fieldorder = 'ordered_qty';
     $order = 'desc';
     $storeId = Mage::app()->getStore()->getId();
     $cateids = $this->getConfig('catsid');
     if ($this->getConfig('bestseller_from_date') != '' && $this->getConfig('bestseller_to_date') != '') {
         $days = (strtotime($this->getConfig('bestseller_to_date')) - strtotime($this->getConfig('bestseller_from_date'))) / (60 * 60 * 24);
     }
     $list = array();
     $limit_item = $this->getConfig('limit_item', 12);
     $itemspage = $this->getConfig('itemspage', 6);
     $curPage = $this->getConfig('page', 1);
     if ($curPage * $itemspage > $limit_item + $itemspage) {
         return '';
     }
     $date = new Zend_Date();
     $toDate = $date->setDay(1)->getDate()->get('Y-MM-dd');
     $fromDate = $date->subMonth(1)->getDate()->get('Y-MM-dd');
     if ($this->getConfig('bestseller_from_date') != '') {
         $fromDate = $this->getConfig('bestseller_from_date');
     }
     if ($this->getConfig('bestseller_from_date') != '') {
         $toDate = $this->getConfig('bestseller_from_date');
     }
     if ($cateids && $cateids != "1") {
         $productIds = $this->getProductByCategory();
         $visibility = Mage::getSingleton('catalog/product_visibility')->getVisibleInCatalogIds();
         $attributesToSelect = array('name', 'small_image', 'short_description', 'price');
         $productFlatTable = Mage::getResourceModel('catalog/product_flat')->getFlatTableName($storeId);
         try {
             $products = Mage::getResourceModel('catalog/product_collection')->addAttributeToSelect($attributesToSelect)->addStoreFilter()->setStoreId($storeId)->addStoreFilter($storeId)->addPriceData()->addTaxPercents()->addUrlRewrite()->addIdFilter($productIds);
             $products->getSelect()->joinLeft(array('aggregation' => $collection->getResource()->getTable('sales/bestsellers_aggregated_monthly')), "e.entity_id = aggregation.product_id AND aggregation.store_id={$storeId} AND aggregation.period BETWEEN '{$fromDate}' AND '{$toDate}'", array('SUM(aggregation.qty_ordered) AS sold_quantity'))->group('e.entity_id')->order(array('sold_quantity DESC', 'e.created_at'));
         } catch (Exception $e) {
             Mage::logException($e);
         }
     } else {
         $visibility = Mage::getSingleton('catalog/product_visibility')->getVisibleInCatalogIds();
         $attributesToSelect = array('name', 'small_image', 'short_description', 'price');
         $productFlatTable = Mage::getResourceModel('catalog/product_flat')->getFlatTableName($storeId);
         try {
             $products = Mage::getResourceModel('catalog/product_collection')->addAttributeToSelect($attributesToSelect)->addStoreFilter()->setStoreId($storeId)->addStoreFilter($storeId)->addPriceData()->addTaxPercents()->addUrlRewrite();
             $products->getSelect()->joinLeft(array('aggregation' => $products->getResource()->getTable('sales/bestsellers_aggregated_monthly')), "e.entity_id = aggregation.product_id AND aggregation.store_id={$storeId} AND aggregation.period BETWEEN '{$fromDate}' AND '{$toDate}'", array('SUM(aggregation.qty_ordered) AS sold_quantity'))->group('e.entity_id')->order(array('sold_quantity DESC', 'e.created_at'));
         } catch (Exception $e) {
             Mage::logException($e);
         }
     }
     $list = array();
     $products->setPageSize($itemspage)->setCurPage($curPage);
     $list['products'] = $products;
     $size = $products->getSize();
     $list['hasNextData'] = true;
     if ($limit_item < $size) {
         $size = $limit_item;
     }
     if ($size <= $curPage * $itemspage) {
         $list['hasNextData'] = false;
     }
     return $list;
 }
 public function heso02Action()
 {
     $translate = Zend_Registry::get('Zend_Translate');
     $this->view->title = 'Xem bảng lương hệ số 0.2 - ' . $translate->_('TEXT_DEFAULT_TITLE');
     $this->view->headTitle($this->view->title);
     $layoutPath = APPLICATION_PATH . '/templates/' . TEMPLATE_USED;
     $option = array('layout' => '1_column/layout', 'layoutPath' => $layoutPath);
     Zend_Layout::startMvc($option);
     $date = new Zend_Date();
     $date->subMonth(1);
     $thang = $this->_getParam('thang', $date->toString("M"));
     $nam = $this->_getParam('nam', $date->toString("Y"));
     $auth = Zend_Auth::getInstance();
     $identity = $auth->getIdentity();
     $em_id = $identity->em_id;
     $emModel = new Front_Model_Employees();
     $em_info = $emModel->fetchRow("em_id={$em_id}");
     $bangluongModel = new Front_Model_BangLuong();
     $bang_luong = $bangluongModel->fetchByDate($em_id, "{$nam}-{$thang}-01 00:00:00", "{$nam}-{$thang}-31 23:59:59");
     $hesocbModel = new Front_Model_HeSo();
     $heso02Model = new Front_Model_HeSo02();
     $he_so_02 = $heso02Model->fetchRow("nam={$nam}");
     if (!$he_so_02) {
         $this->_helper->viewRenderer->setRender('loi');
         die;
     }
     $lastHeSoLuong = $hesocbModel->fetchOneData(array('hs_ngay_bat_dau' => date("{$nam}-{$thang}-1")), 'hs_ngay_bat_dau DESC');
     $tong_he_so = $bangluongModel->getSumHeSo("{$nam}-{$thang}-01 00:00:00", "{$nam}-{$thang}-31 23:59:59");
     $tong_he_so_luong = $tong_he_so_plld = $tong_tam_chi = 0;
     if ($tong_he_so->tong_he_so_luong) {
         $tong_he_so_luong = $tong_he_so->tong_he_so_luong;
     }
     if ($tong_he_so->tong_tam_chi) {
         $tong_tam_chi = $tong_he_so->tong_tam_chi;
     }
     if ($tong_he_so->tong_he_so_plld) {
         $tong_he_so_plld = $tong_he_so->tong_he_so_plld;
     }
     $luong_co_ban = $lastHeSoLuong->hs_luong_co_ban;
     //luong co ban
     $thang_choosed = 'thang_' . $thang;
     $tien_quy_tang_them = $tong_he_so_luong * $luong_co_ban * $he_so_02->{$thang_choosed};
     $tien_quy_con_lai = $tien_quy_tang_them;
     if ($tien_quy_con_lai < 0) {
         $tien_quy_con_lai = 0;
     }
     $he_so_quy_doi = $tien_quy_con_lai / $tong_he_so_plld;
     $this->view->em_info = $em_info;
     $this->view->thang = $thang;
     $this->view->nam = $nam;
     $this->view->nv_id = $em_id;
     $this->view->bang_luong = $bang_luong;
     $this->view->he_so_quy_doi = $he_so_quy_doi;
 }
 public function auto02Action()
 {
     $translate = Zend_Registry::get('Zend_Translate');
     $this->view->title = 'Tính lương hệ số 0.2 - ' . $translate->_('TEXT_DEFAULT_TITLE');
     $this->view->headTitle($this->view->title);
     $layoutPath = APPLICATION_PATH . '/templates/' . TEMPLATE_USED;
     $option = array('layout' => '1_column/layout', 'layoutPath' => $layoutPath);
     Zend_Layout::startMvc($option);
     $auth = Zend_Auth::getInstance();
     $identity = $auth->getIdentity();
     $my_id = $identity->em_id;
     $date = new Zend_Date();
     $date->subMonth(1);
     $thang = $this->_getParam('thang', $date->toString('M'));
     $nam = $this->_getParam('nam', $date->toString('Y'));
     $emModel = new Front_Model_Employees();
     $phongbanModel = new Front_Model_Phongban();
     $chucvuModel = new Front_Model_Chucvu();
     $hesocbModel = new Front_Model_HeSo();
     $hesoModel = new Front_Model_EmployeesHeso();
     $bangluongModel = new Front_Model_BangLuong();
     $danhgiaModel = new Front_Model_DanhGia();
     $lastHeSoLuong = $hesocbModel->fetchOneData(array('hs_ngay_bat_dau' => date("{$nam}-{$thang}-1")), 'hs_ngay_bat_dau DESC');
     $he_so_tang_them = 0.5;
     $he_so_phan_loai = array('O' => 0, 'A' => 1.2, 'B' => 1, 'C' => 0.8, 'D' => 0);
     $pb_selected = $this->_getParam('phongban', 0);
     $phong_ban_id = $list_phongban_selected = $phong_ban = array();
     $phong_ban_id[] = $pb_selected;
     $list_phongban_selected = $phongbanModel->fetchDataStatus($pb_selected, $phong_ban);
     $list_chuc_vu = $chucvuModel->fetchAll();
     $list_nhan_vien = $phong_ban_options = array();
     $list_phong_ban_option = $phongbanModel->fetchData(0, $phong_ban_options);
     if (sizeof($list_phongban_selected)) {
         foreach ($list_phongban_selected as $phong_ban_info) {
             $phong_ban_id[] = $phong_ban_info->pb_id;
         }
     }
     $phong_ban_id = implode(',', $phong_ban_id);
     if ($pb_selected) {
         $list_nhan_vien = $emModel->fetchAll("em_phong_ban in ({$phong_ban_id}) and em_status=1");
     }
     if ($this->_request->isPost()) {
         $item = $this->getRequest()->getPost('cid');
         foreach ($item as $k => $v) {
             $bang_luong = $bangluongModel->fetchByDate($v, "{$nam}-{$thang}-01 00:00:00", "{$nam}-{$thang}-31 23:59:59");
             if ($bang_luong && $bang_luong->bl_tong_he_so > 0) {
                 $luong_toi_thieu = $bang_luong->bl_luong_toi_thieu;
                 //luong co ban
                 $tong_hs_luong_pc = $bang_luong->bl_tong_he_so;
                 $tam_chi_dau_vao = $tong_hs_luong_pc * $luong_toi_thieu * 0.5;
                 $data = array('bl_ptccb_id' => $my_id, 'bl_tam_chi_dau_vao_02' => $tam_chi_dau_vao, 'bl_02' => 1);
                 $bl_id = $bang_luong->bl_id;
                 $bangluongModel->update($data, "bl_id={$bl_id}");
             }
         }
     }
     $this->view->list_nhan_vien = $list_nhan_vien;
     $this->view->thang = $thang;
     $this->view->nam = $nam;
     $this->view->pb_id = $pb_selected;
     $this->view->list_phong_ban_option = $list_phong_ban_option;
     $this->view->list_chuc_vu = $list_chuc_vu;
 }
Example #23
0
 /**
  *
  */
 public function renderWidgetProduct_carouselContent($args, $setting, $widget_name = "")
 {
     $t = array('show_name' => '1', 'list_type' => '', 'limit' => 5, 'category_id' => 0, 'max_items' => 1, 'limit_cols' => 1, 'auto_play' => 0, 'speed' => 6000, 'image_width' => '200', 'image_height' => '200');
     $products = array();
     $resource = Mage::getSingleton('core/resource');
     $setting = array_merge($t, $setting);
     $storeId = Mage::app()->getStore()->getId();
     $category_id = $setting['category_id'] ? (int) $setting['category_id'] : 0;
     if ($setting['list_type'] == 'bestseller') {
         $category_id = $setting['category_id'] ? (int) $setting['category_id'] : 0;
         if (!$category_id || $category_id == -1) {
             $catsid = $this->getStoreCategories();
         } else {
             $catsid = array($category_id);
         }
         $date = new Zend_Date();
         $toDate = $date->setDay(1)->getDate()->get('Y-MM-dd');
         $fromDate = $date->subMonth(1)->getDate()->get('Y-MM-dd');
         $products = $this->getCollectionPro()->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes())->addAttributeToSelect(array('name', 'price', 'small_image'))->addStoreFilter()->addPriceData()->addTaxPercents()->addUrlRewrite()->joinTable($resource->getTableName('catalog_category_product'), 'product_id=entity_id', array('category_id' => 'category_id'), null, 'left')->addAttributeToFilter(array(array('attribute' => 'category_id', 'in' => array('finset' => $catsid))));
         $products->getSelect()->joinLeft(array('aggregation' => $products->getResource()->getTable('sales/bestsellers_aggregated_monthly')), "e.entity_id = aggregation.product_id AND aggregation.store_id={$storeId} AND aggregation.period BETWEEN '{$fromDate}' AND '{$toDate}'", array('SUM(aggregation.qty_ordered) AS sold_quantity'))->group('e.entity_id')->order(array('sold_quantity DESC', 'e.created_at'));
     } else {
         if ($setting['list_type'] == 'special') {
             if (!$category_id || $category_id == -1) {
                 $catsid = $this->getStoreCategories();
             } else {
                 $catsid = array($category_id);
             }
             $products = $this->getCollectionPro()->addFieldToFilter('visibility', array(Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH, Mage_Catalog_Model_Product_Visibility::VISIBILITY_IN_CATALOG))->addMinimalPrice()->addUrlRewrite()->addTaxPercents()->addStoreFilter($storeId)->addFinalPrice()->joinTable($resource->getTableName('catalog_category_product'), 'product_id=entity_id', array('category_id' => 'category_id'), null, 'left')->addAttributeToFilter(array(array('attribute' => 'category_id', 'in' => array('finset' => $catsid))))->groupByAttribute('entity_id');
             $products->getSelect()->where('price_index.final_price < price_index.price');
         } else {
             if ($setting['list_type'] == 'featured') {
                 if (!$category_id || $category_id == -1) {
                     $catsid = $this->getStoreCategories();
                 } else {
                     $catsid = array($category_id);
                 }
                 if ($catsid) {
                     $productIds = $this->getProductByCategory($catsid);
                     $products = Mage::getResourceModel('catalog/product_collection')->addAttributeToSelect('*')->addMinimalPrice()->addUrlRewrite()->addTaxPercents()->addStoreFilter($storeId)->addIdFilter($productIds)->addAttributeToFilter("featured", 1)->setOrder('created_at', Varien_Db_Select::SQL_DESC);
                 } else {
                     $products = Mage::getResourceModel('catalog/product_collection')->addAttributeToSelect('*')->addMinimalPrice()->addUrlRewrite()->addTaxPercents()->addStoreFilter($storeId)->addAttributeToFilter("featured", 1)->setOrder('created_at', Varien_Db_Select::SQL_DESC);
                 }
             } else {
                 if (!$category_id || $category_id == -1) {
                     $catsid = $this->getStoreCategories();
                 } else {
                     $catsid = array($category_id);
                 }
                 $todayStartOfDayDate = Mage::app()->getLocale()->date()->setTime('00:00:00')->toString(Varien_Date::DATETIME_INTERNAL_FORMAT);
                 $todayEndOfDayDate = Mage::app()->getLocale()->date()->setTime('23:59:59')->toString(Varien_Date::DATETIME_INTERNAL_FORMAT);
                 $products = $this->getCollectionPro()->addAttributeToFilter(array(array('attribute' => 'news_from_date', array('or' => array(0 => array('date' => true, 'to' => $todayEndOfDayDate), 1 => array('is' => new Zend_Db_Expr('null')))), 'left')))->addAttributeToFilter(array(array('attribute' => 'news_to_date', array('or' => array(0 => array('date' => true, 'from' => $todayStartOfDayDate), 1 => array('is' => new Zend_Db_Expr('null')))), 'left')))->joinTable($resource->getTableName('catalog_category_product'), 'product_id=entity_id', array('category_id' => 'category_id'), null, 'left')->addAttributeToFilter(array(array('attribute' => 'category_id', 'in' => array('finset' => $catsid))))->addAttributeToSort('news_from_date', 'desc')->addAttributeToSort("created_at", "DESC")->addAttributeToSort("updated_at", "DESC")->addMinimalPrice()->addFinalPrice()->addStoreFilter($storeId)->addUrlRewrite()->addTaxPercents()->groupByAttribute('entity_id');
             }
         }
     }
     Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($products);
     Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($products);
     $products->setPage(1, (int) $setting['limit']);
     $products = $this->_addProductAttributesAndPrices($products);
     $data = array("widget_name" => $widget_name, "show_name" => $setting['show_name'], "max_items" => $setting['max_items'], "limit_cols" => $setting['limit_cols'], "auto_play" => $setting['auto_play'], "speed" => $setting['speed'], "image_width" => $setting['image_width'], "image_height" => $setting['image_height'], "products" => $products);
     $output = $this->renderLayoutHtml("product_carousel", $data);
     return $output;
 }
 /**
  * 取得某个预定义时间段
  * 
  * @static
  * @param integer $interval
  * @param string $forceUnit
  * @param integer $timestamp
  * @return array
  */
 public static function getPredefinedRange($interval, $forceUnit = null, $timestamp = null)
 {
     if (empty($timestamp)) {
         $timestamp = time();
     }
     $start = new Zend_Date($timestamp);
     $end = new Zend_Date($timestamp);
     switch ($interval) {
         case self::TODAY:
             $start->setHour(0)->setMinute(0)->setSecond(0);
             $unit = Zend_Date::HOUR;
             break;
         case self::YESTODAY:
             $start->subDay(1)->setHour(0)->setMinute(0)->setSecond(0);
             $end = clone $start;
             $end->addDay(1);
             $unit = Zend_Date::HOUR;
             break;
         case self::TOMORROW:
             $start->addDay(1)->setHour(0)->setMinute(0)->setSecond(0);
             $end = clone $start;
             $end->addDay(1);
             $unit = Zend_Date::HOUR;
             break;
         case self::THIS_MONTH:
             $start->setDay(1)->setHour(0)->setMinute(0)->setSecond(0);
             $unit = Zend_Date::DAY;
             break;
         case self::THIS_YEAR:
             $start->setMonth(1)->setDay(1)->setHour(0)->setMinute(0)->setSecond(0);
             $end->addMonth(1)->setDay(1)->setHour(0)->setMinute(0)->setSecond(0);
             $unit = Zend_Date::DAY;
             break;
         case self::THIS_SEASON:
             $start->setMonth(3 * floor(($start->toValue('M') - 1) / 3) + 1)->setDay(1)->setHour(0)->setMinute(0)->setSecond(0);
             $unit = Zend_Date::DAY;
         case self::RECENT_24HOUR:
             $start->subHour(24);
             $unit = Zend_Date::HOUR;
             break;
         case self::RECENT_48HOUR:
             $start->subHour(48);
             $unit = Zend_Date::HOUR;
             break;
         case self::RECENT_1WEEK:
             $start->subWeek(1);
             $unit = Zend_Date::DAY;
             break;
         case self::RECENT_1MONTH:
             $start->subMonth(1);
             $unit = Zend_Date::DAY;
             break;
         case self::RECENT_24MONTH:
             $start->subMonth(24);
             $unit = Zend_Date::DAY;
             break;
         case self::LAST_1MONTH:
             $start->subMonth(1)->setDay(1)->setHour(0)->setMinute(0)->setSecond(0);
             $end = clone $start;
             $end->addMonth(1);
             $unit = Zend_Date::DAY;
             break;
         case self::LAST_1YEAR:
             $start->subYear(1)->setMonth(1)->setDay(1)->setHour(0)->setMinute(0)->setSecond(0);
             $end = clone $start;
             $end->addYear(1);
             $unit = Zend_Date::DAY;
             break;
         case self::ENTIRE_DAY:
             $start->setDate(self::ERA_DATE, self::ZF_DATE_FORMAT)->setTime(self::ERA_TIME, self::ZF_TIME_FORMAT);
             $end->addDay(1);
             $unit = Zend_Date::DAY;
             break;
         default:
             $unit = Zend_Date::SECOND;
     }
     if (!empty($forceUnit)) {
         $unit = $forceUnit;
     }
     $start = max(self::truncateDatetime($start, $unit), self::truncateDatetime(self::ERA_DATETIME, $unit));
     $end = max(self::truncateDatetime($end, $unit), self::truncateDatetime(self::ERA_DATETIME, $unit));
     return compact('start', 'end', 'unit');
 }