Esempio n. 1
0
 /**
  * the singleton pattern
  *
  * @return SoEventManager_Controller_SoEvent
  */
 public static function getInstance()
 {
     if (self::$_instance === NULL) {
         self::$_instance = new self();
     }
     return self::$_instance;
 }
Esempio n. 2
0
 public function getCalculationVariants($receiptId)
 {
     $productionCostController = Billing_Controller_ProductionCost::getInstance();
     $aVariantSum = array();
     $positions = $this->getOrderPositions($receiptId)->toArray();
     $aVariantSum['I']['variant'] = 'I';
     $aVariantSum['I']['ek_total'] = 0;
     $aVariantSum['I']['total_netto'] = 0;
     $aVariantSum['I']['profit'] = 0;
     $aVariantSum['I']['has_delivery'] = false;
     $aVarTypeMap = array();
     foreach ($positions as $pos) {
         $variants = $productionCostController->getByOrderPositionId($pos['id'])->toArray();
         if (count($variants) == 0) {
             $it = new ArrayIterator($aVariantSum);
             foreach ($it as $var) {
                 $var['ek_total'] += 0;
                 $var['total_netto'] += $pos['total_netto'];
                 $var['profit'] += $var['total_netto'] - $var['ek_total'];
             }
         }
         foreach ($variants as $var) {
             if (!array_key_exists($var['category'], $aVariantSum)) {
                 $aVariantSum[$var['category']] = array('variant' => $var['category'], 'ek_total' => 0, 'total_netto' => 0, 'profit' => 0, 'has_delivery' => false);
             }
             if ($var['type'] == 'DELIVERY') {
                 $aVariantSum[$var['category']]['has_delivery'] = true;
             }
             $aVariantSum[$var['category']]['ek_total'] += (int) $pos['amount'] * (double) $var['ek_netto'];
             $aVariantSum[$var['category']]['total_netto'] += $pos['total_netto'];
             $aVariantSum[$var['category']]['profit'] += $aVariantSum[$var['category']]['total_netto'] - $aVariantSum[$var['category']]['ek_total'];
         }
     }
     $result = array();
     foreach ($aVariantSum as $aVariant) {
         $result[] = $aVariant;
     }
     return array('totalcount' => count($result), 'success' => true, 'results' => $result);
 }
Esempio n. 3
0
 public function saveProductionCost($recordData)
 {
     return $this->_save($recordData, Billing_Controller_ProductionCost::getInstance(), 'ProductionCost');
 }