CCCPaste

170738bacf8dd

 $output) {
                    $obj[$output] = $item[$input];
                }
                $return[] = $obj;
            }
            return $return;
        }

        private static function _buildObjectsReturn($data, $columns)
        {
            $return = array();
            foreach ($data as $item) {
                $obj = new \stdClass();
                foreach ($columns as $input => $output) {
                    $obj->{$output} = $item->{$input};
                }
                $return[] = $obj;
            }

            return $return;
        }

        private static function _buildSingleReturn($data, $columns)
        {
            $return = new \stdClass();

            foreach ($columns as $input => $output) {
                $return->{$output} = $data->{$input};
            }
            return $return;
        }


        private static function _buildSingleReturnAsArray($data, $columns)
        {
            $return = array();

            foreach ($columns as $input => $output) {
                $return[$output] = $data[$input];
            }
            return $return;
        }

        public static function getCompanyAddresses($companyID)
        {
            $inputOutput = array(
                'NOMER'    => 'NOMER',
                'IME'      => 'IME',
                'POST_KOD' => 'POST_KOD',
                'ADRES'    => 'ADRES',
                'TEL'      => 'TEL',
                'KOMENTAR' => 'KOMENTAR',
                'GRAD'     => 'GRAD',
            );

            $addresses = Services::firebird()->table('KONTRAGENTI_OBEKTI')
                ->select(implode(', ', ($inputOutput)))
                ->where('KONTRAGENT_NOMER', $companyID)
                ->get()
                ->getResult();

            $return = self::_buildObjectsReturn($addresses, $inputOutput);
            unset($addresses);
            return $return;
        }


        public static function getCompanyByID($companyID)
        {

            $inputOutput = array(
                'NOMER'            => 'NOMER',
                'KONTRAGENT'       => 'KONTRAGENT',
                'MOL'              => 'MOL',
                'DDSNOMER'         => 'DDSNOMER',
                'BULSTAT'          => 'BULSTAT',
                'SEDALISHTE_GRAD'  => 'SEDALISHTE_GRAD',
                'SEDALISHTE_ADRES' => 'SEDALISHTE_ADRES',
            );

            $company = Services::firebird()->table('KONTRAGENTI')->select(implode(', ', ($inputOutput)))->where('NOMER', $companyID)->get()->getRow();
            $return = self::_buildSingleReturn($company, $inputOutput);
            unset($company);
            return $return;
        }


        public static function getProductByID($productID, $asArray = false)
        {

            $inputOutput = array(
                'NOMER'         => 'NOMER',
                'IME'           => 'IME',
                'IME$1'         => 'IME$1',
                'OPISANIE_HTML' => 'OPISANIE_HTML',
            );


            $firebird = Services::firebird()->table('POZICII')->select(implode(', ', ($inputOutput)))->where('NOMER', $productID);
            if ($asArray) {
                $product = $firebird->get()->getRowArray();
                $return = self::_buildSingleReturnAsArray($product, $inputOutput);
            } else {
                $product = $firebird->get()->getRow();
                $return = self::_buildSingleReturn($product, $inputOutput);
            }
            unset($product);
            return $return;
        }

        public static function getProducts($asArray = false)
        {





            $inputOutput = array(
                'NOMER'         => 'NOMER',
                'IME'           => 'IME',
                'IME$1'         => 'IME$1',
                'IME$2'         => 'IME$2',
                'IZKLUCHEN'     => 'IZKLUCHEN',
                'BEZNALICHEN'   => 'BEZNALICHEN',
                'OPISANIE_HTML' => 'OPISANIE_HTML',
            );

            $firebird = Services::firebird()->table('POZICII')->select(implode(', ', ($inputOutput)));
            if ($asArray) {
                $products = $firebird->get()->getResultArray();
                $return = self::_buildArrayReturn($products, $inputOutput);
            } else {
                $products = $firebird->get()->getResult();
                $return = self::_buildObjectsReturn($products, $inputOutput);
            }

            unset($products);
            return $return;
        }


        public static function getOfferByID($offerID)
        {

            $inputOutput = array(
                'POS_NOMER' => 'POS_NOMER',
            );


            $offerProducts = Services::firebird()->table('OFERTI')
                ->select(implode(', ', ($inputOutput)))
                ->join('OFERTI_DE', 'OFERTI.NOMER = OFERTI_DE.OFERTA_NOMER')
                ->where('OFERTI.NOMER', $offerID)
                ->get()
                ->getResult();


            $return = self::_buildObjectsReturn($offerProducts, $inputOutput);
            unset($offerProducts);
            return $return;
        }


        public static function getPriceTypes()
        {
            $inputOutput = array(
                'NOMER'    => 'NOMER',
                'FULLNAME' => 'FULLNAME',
            );


            $priceTypes = Services::firebird()->table('TIPOVE_CENI')->select(implode(', ', ($inputOutput)))->get()->getResult();


            $return = self::_buildObjectsReturn($priceTypes, $inputOutput);
            unset($priceTypes);
            return $return;
        }
    }
}