Пример #1
0
 public function actionSettings()
 {
     $delivery = new Delivery();
     $contact = new ContactSettings();
     if (Yii::app()->request->isPostRequest) {
         if ($delivery->attributes = Yii::app()->request->getPost('Delivery')) {
             $delivery->save();
         }
         if ($contact->attributes = Yii::app()->request->getPost('ContactSettings')) {
             $contact->save();
         }
     }
     $this->render('settings', array('delivery' => $delivery, 'contact' => $contact));
 }
Пример #2
0
 /**
  * Subscribe action
  * @throws CHttpException
  */
 public function run()
 {
     if (Yii::app()->request->isAjaxRequest) {
         $model = new Delivery();
         if (isset($_POST['Delivery'])) {
             $model->attributes = $_POST['Delivery'];
             if ($model->validate()) {
                 $model->save();
                 Yii::app()->user->setFlash('success', Yii::t('SubscribeWidget.default', 'SUBSCRIBE_SUCCESS'));
             }
         }
         $this->controller->render('mod.delivery.widgets.subscribe.views._subscribe', array('model' => $model));
     } else {
         throw new CHttpException(403);
     }
 }
Пример #3
0
 /**
  * @param $province string 省份的id
  * @param $weight int 货物的重量
  * @param $goodsSum float 商品总价格
  * @return array()
  * @brief 配送方式计算管理模块
  */
 public static function getDelivery($province, $weight = 0, $goodsSum = 0)
 {
     $data = array();
     //获得配送方式表的对象
     $delivery = new IModel('delivery');
     //获取配送方式列表
     $where = 'is_delete = 0 and status = 1';
     $list = $delivery->query($where, '*', 'sort', 'asc');
     //循环各个配送方式
     foreach ($list as $value) {
         //设置首重和次重
         self::$firstWeight = $value['first_weight'];
         self::$secondWeight = $value['second_weight'];
         $data[$value['id']]['id'] = $value['id'];
         $data[$value['id']]['name'] = $value['name'];
         $data[$value['id']]['type'] = $value['type'];
         $data[$value['id']]['description'] = $value['description'];
         $data[$value['id']]['if_delivery'] = '0';
         //当配送方式是统一配置的时候,不进行区分地区价格
         if ($value['price_type'] == 0) {
             $data[$value['id']]['price'] = self::getFeeByWeight($weight, $value['first_price'], $value['second_price']);
         } else {
             $matchKey = '';
             $flag = false;
             //每项都是以';'隔开的省份ID
             $area_groupid = unserialize($value['area_groupid']);
             foreach ($area_groupid as $key => $result) {
                 //匹配到了特殊的省份运费价格
                 if (strpos($result, ';' . $province . ';') !== false) {
                     $matchKey = $key;
                     $flag = true;
                     break;
                 }
             }
             //匹配到了特殊的省份运费价格
             if ($flag) {
                 //获取当前省份特殊的运费价格
                 $firstprice = unserialize($value['firstprice']);
                 $secondprice = unserialize($value['secondprice']);
                 $data[$value['id']]['price'] = self::getFeeByWeight($weight, $firstprice[$matchKey], $secondprice[$matchKey]);
             } else {
                 //判断是否设置默认费用了
                 if ($value['open_default'] == 1) {
                     $data[$value['id']]['price'] = self::getFeeByWeight($weight, $value['first_price'], $value['second_price']);
                 } else {
                     $data[$value['id']]['price'] = '0';
                     $data[$value['id']]['if_delivery'] = '1';
                 }
             }
         }
         //计算保价
         if ($value['is_save_price'] == 1) {
             $tempProtectPrice = $goodsSum * ($value['save_rate'] * 0.01);
             $data[$value['id']]['protect_price'] = $tempProtectPrice <= $value['low_price'] ? $value['low_price'] : $tempProtectPrice;
         } else {
             $data[$value['id']]['protect_price'] = 0;
         }
     }
     return $data;
 }
Пример #4
0
 public function loadModel($id)
 {
     $model = Delivery::model()->findByPk($id);
     if ($model === null) {
         throw new CHttpException(404, Yii::t('DeliveryModule.delivery', 'Page not found!'));
     }
     return $model;
 }
Пример #5
0
 public function testDeliveryCost()
 {
     $delivery = Delivery::getDelivery(Delivery::MOSCOW, DeliveryTypes::KURIER_MOSCOW);
     // cost
     $cost = $delivery->getDeliveryCost();
     // Assert
     $this->assertEquals(150, $cost);
 }
Пример #6
0
 public function testArrayDelivery()
 {
     $delivery = new Delivery();
     $arrayDelivery = array('code' => 'code', 'perItem' => 1, 'countryCode' => 'FR', 'zone' => 'zone', 'enabled' => 1);
     $delivery->fromArray($arrayDelivery);
     $this->assertEquals($arrayDelivery, $delivery->toArray());
     $this->assertEquals($delivery->getCode(), $arrayDelivery['code']);
     $this->assertEquals($delivery->getPerItem(), $arrayDelivery['perItem']);
     $this->assertEquals($delivery->getCountryCode(), $arrayDelivery['countryCode']);
     $this->assertEquals($delivery->getZone(), $arrayDelivery['zone']);
     $this->assertEquals($delivery->getEnabled(), $arrayDelivery['enabled']);
 }
Пример #7
0
 /**
  * Проверяет корректность ввода данных в форму обратной связи и регистрацию в системе покупателя.
  *
  * @param array $arrayData  массив в введнными пользователем данными.
  * @return bool|string $error сообщение с ошибкой в случае некорректных данных.
  */
 public function isValidData($arrayData)
 {
     $result = null;
     // Если электронный адрес зарегистрирован в системе.
     $currenUser = USER::getThis();
     if ($currenUser->email != trim($arrayData['email'])) {
         if (USER::getUserInfoByEmail($arrayData['email'])) {
             $error = "<span class='user-exist'>Пользователь с таким email существует. \n          Пожалуйста <a href='" . SITE . "/enter'>войдите в систему</a> используя \n          свой электронный адрес и пароль!</span>";
             // Иначе новый пользователь.
         } else {
             $this->newUser = true;
         }
     }
     // Корректность емайл.
     if (!preg_match('/^[-._a-z0-9]+@(?:[a-z0-9][-a-z0-9]{0,61}+\\.)+[a-z]{2,6}$/', $arrayData['email'])) {
         $error = "<span class='order-error-email'>E-mail введен некорректно!</span>";
     }
     // Наличие телефона.
     if (empty($arrayData['phone'])) {
         $error = "<span class='no-phone'>Введите верный номер телефона!</span>";
     }
     // Если нет ошибок, то заносит информацию в поля класса.
     if (!empty($error)) {
         $result = $error;
     } else {
         $this->fio = trim($arrayData['fio']);
         $this->email = trim($arrayData['email']);
         $this->phone = trim($arrayData['phone']);
         $this->address = trim($arrayData['address']);
         $this->info = trim($arrayData['info']);
         $this->delivery = $arrayData['delivery'];
         $deliv = new Delivery();
         $this->delivery_cost = $deliv->getCostDelivery($arrayData['delivery']);
         $this->payment = $arrayData['payment'];
         $cart = new Models_Cart();
         $this->summ = $cart->getTotalSumm();
         $result = false;
         $this->addNewUser();
     }
     $args = func_get_args();
     return MG::createHook(__CLASS__ . "_" . __FUNCTION__, $result, $args);
 }
Пример #8
0
 public function setUp()
 {
     $cfg = new MerchantConfig('MERCHANT_CODE', 'SECRET_KEY', 'RO');
     $user = new User('127.0.0.1');
     $order = new Order();
     $order->withBackRef('http://path/to/your/returnUrlScript')->withOrderRef('MerchantOrderRef')->withCurrency('RON')->withOrderDate('2014-09-19 10:00:00')->withOrderTimeout(1000)->withPayMethod('CCVISAMC')->withInstallmentsNumber(2)->withCampaignType('EXTRA_INSTALLMENTS');
     $product = new Product();
     $product->withCode('PCODE01')->withName('PNAME01')->withPrice(100.0)->withVAT(24.0)->withQuantity(1);
     $order->addProduct($product);
     $product = new Product();
     $product->withCode('PCODE02')->withName('PNAME02')->withPrice(200.0)->withVAT(24.0)->withQuantity(1);
     $order->addProduct($product);
     $billing = new Billing();
     $billing->withAddressLine1('ADDRESS1')->withAddressLine2('ADDRESS2')->withCity('Bucuresti')->withCountryCode('RO')->withEmail('*****@*****.**')->withFirstName('John')->withLastName('Doe')->withPhoneNumber('0755167887')->withIdentityCardNumber('324322');
     $delivery = new Delivery();
     $delivery->withAddressLine1('ADDRESS1')->withAddressLine2('ADDRESS2')->withCity('Bucuresti')->withCountryCode('RO')->withEmail('*****@*****.**')->withFirstName('John')->withLastName('Doe')->withPhoneNumber('0755167887');
     $card = new Card('5431210111111111', '11', 2016, 123, 'test');
     $this->request = new Request($cfg, $order, $billing, $delivery, $user);
     $this->request->setCard($card);
 }
Пример #9
0
 public static function getAllDelivery()
 {
     $delivery = Delivery::model()->findAll();
     $mails = array();
     $users = User::model()->subscribe()->findAll();
     if (count($users)) {
         foreach ($users as $user) {
             $mails[] = $user->email;
         }
     }
     if (count($delivery)) {
         foreach ($delivery as $subscriber) {
             $mails[] = $subscriber->email;
         }
     }
     return $mails;
 }
Пример #10
0
 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function fire()
 {
     $this->info('Search Delivery Items Life Time');
     // 六十天提醒
     //
     $N_Time = date("Y-m-d", time());
     $L_Time = date("Y-m-d", time() + 60 * 3600 * 24);
     // 获取满足条件的货品
     //
     $Items = DeliveryItems::where('life_date', '>', $N_Time)->where('life_date', '<', $L_Time)->orderBy('delivery_id', 'desc')->get();
     // 初始化
     //
     $branch_ids = array();
     $delivery_ids = array();
     foreach ($Items as $Item) {
         // 条件过滤
         //
         if (!in_array($Item->delivery_id, $delivery_ids) && in_array($Item->branch_id, $branch_ids)) {
             continue;
         } else {
             if (!in_array($Item->delivery_id, $delivery_ids)) {
                 $delivery_ids[] = $Item->delivery_id;
             }
             if (!in_array($Item->branch_id, $branch_ids)) {
                 $branch_ids[] = $Item->branch_id;
             }
             $branch = Branch::find($Item->branch_id);
             $delivery = Delivery::find($Item->delivery_id);
             if ($branch && $delivery) {
                 $notice = new Notice();
                 $notice->user_id = $branch->user_id;
                 $notice->type = '5';
                 $notice->content = '客户(' . $branch->name . ')的出货单(' . $delivery->bn . ')中商品(' . $Item->good_name . ')' . date("Y-m-d", strtotime($Item->life_date)) . ' 过期!';
                 $notice->data = json_encode(array('branch_id' => $Item->branch_id, 'delivery_id' => $Item->delivery_id));
                 $notice->read = '0';
                 $notice->timeline = date("Y-m-d H:i:s", time());
                 $notice->save();
                 $this->info($notice->content);
             }
         }
     }
     $this->info('Done!');
 }
Пример #11
0
 /**
  *
  */
 public function actionIndex()
 {
     $positions = Yii::app()->cart->getPositions();
     $order = new Order(Order::SCENARIO_USER);
     if (Yii::app()->getUser()->isAuthenticated()) {
         $user = Yii::app()->getUser()->getProfile();
         $order->name = $user->getFullName();
         $order->email = $user->email;
         $order->city = $user->location;
     }
     $coupons = [];
     if (Yii::app()->hasModule('coupon')) {
         $couponCodes = Yii::app()->cart->couponManager->coupons;
         foreach ($couponCodes as $code) {
             $coupons[] = Coupon::model()->getCouponByCode($code);
         }
     }
     $deliveryTypes = Delivery::model()->published()->findAll();
     $this->render('index', ['positions' => $positions, 'order' => $order, 'coupons' => $coupons, 'deliveryTypes' => $deliveryTypes]);
 }
Пример #12
0
 /**
  * Adds an object to the instance pool.
  *
  * Propel keeps cached copies of objects in an instance pool when they are retrieved
  * from the database.  In some cases -- especially when you override doSelect*()
  * methods in your stub classes -- you may need to explicitly add objects
  * to the cache in order to ensure that the same objects are always returned by doSelect*()
  * and retrieveByPK*() calls.
  *
  * @param      Delivery $value A Delivery object.
  * @param      string $key (optional) key to use for instance map (for performance boost if key was already calculated externally).
  */
 public static function addInstanceToPool(Delivery $obj, $key = null)
 {
     if (Propel::isInstancePoolingEnabled()) {
         if ($key === null) {
             $key = (string) $obj->getId();
         }
         // if key === null
         self::$instances[$key] = $obj;
     }
 }
Пример #13
0
 /**
  * Fix for Prestashop version < 1.4.0.2
  *
  * @param float $shippingCosts
  */
 protected function setShippingCosts($shippingCosts)
 {
     $deliveryZones = Db::getInstance()->ExecuteS('SELECT * FROM `' . _DB_PREFIX_ . 'delivery` WHERE `id_carrier` = ' . (int) Configuration::get('SHOPGATE_CARRIER_ID'));
     // create for each zone delivery options
     foreach ($deliveryZones as $deliveryZone) {
         $deliveryRange = new Delivery($deliveryZone['id_delivery']);
         // PS_SHIPPING_HANDLING is a fix to decrease the shipping for the amount that is setted up in the shipping configuration
         $deliveryRange->price = $shippingCosts;
         if (!$deliveryRange->update()) {
             return false;
         }
     }
     return true;
 }
Пример #14
0
 public function adsProcess()
 {
     $responseType = '';
     $expandFields = array();
     $zoneID = Input::get('zid', 0);
     $publisherID = Input::get('pid', 0);
     $requestType = Input::get('type', Delivery::REQUEST_TYPE_AD);
     $trackingModel = new Tracking();
     $deliveryModel = new Delivery();
     $flightDateModel = new FlightDateBaseModel();
     //ghi log trước khi xử lý
     $logPreProcess = $trackingModel->logPreProcess($requestType);
     if ($logPreProcess) {
         //kiểm tra referrer
         $hostReferer = $trackingModel->getRequestReferer();
         if (empty($zoneID)) {
             $responseType = Delivery::RESPONSE_TYPE_INVALID;
         } elseif (empty($hostReferer)) {
             $responseType = Delivery::RESPONSE_TYPE_EMPTY_REFERRER;
         } elseif ($trackingModel->countLatestRequest(1) < Delivery::ANTI_CHEAT_MAX_REQUEST_PER_1MIN && $trackingModel->countLatestRequest(5) < Delivery::ANTI_CHEAT_MAX_REQUEST_PER_5MIN) {
             $responseType = Delivery::RESPONSE_TYPE_ANTI_MANY_REQUEST;
         }
         //pre validate ok
         if (empty($responseType)) {
             //default invalid
             if ($zoneID && $publisherID) {
                 $adZone = PublisherAdZoneBaseModel::find($zoneID);
                 if ($adZone && $adZone->publisher) {
                     if ($adZone->publisher_id == $publisherID) {
                         $flightPublishers = FlightPublisherBaseModel::where('publisher_id', $publisherID)->with('flightDate', function ($query) {
                             $today = date('Y-m-d');
                             $query->where('start', '<=', $today)->where('end', '>=', $today);
                         })->where('publisher_ad_zone_id', $zoneID)->orderBy('order', 'asc')->get();
                         if ($flightPublishers) {
                             if ($requestType == Delivery::REQUEST_TYPE_AD) {
                                 //lấy ad từ list thỏa điều kiện để trả về
                                 foreach ($flightPublishers as $k => $flightPublisher) {
                                     if ($flightPublisher->flightDate) {
                                         $runningInventory = $trackingModel->runningInventory($flightPublisher->id);
                                         if ($flightPublisher->total_inventory < $runningInventory) {
                                             $deliveryStatus = $deliveryModel->deliveryAd($flightPublisher->ad, $flightPublisher->flight);
                                             if ($deliveryStatus == Delivery::DELIVERY_STATUS_OK) {
                                                 //trả về ad này
                                                 $serveAd = $flightPublisher->ad;
                                                 $expandFields = array('flight_id' => $flightPublisher->flight_id, 'ad_format_id' => $flightPublisher->ad_format_id, 'ad_id' => $flightPublisher->ad_id, 'campaign_id' => $flightPublisher->campaign_id, 'publisher_ad_zone_id' => $flightPublisher->publisher_ad_zone_id, 'flight_publisher_id' => $flightPublisher->id, 'publisher_id' => $flightPublisher->publisher_id, 'flight_publisher_id' => $flightPublisher->id);
                                                 break;
                                             }
                                         }
                                     }
                                 }
                                 //endforeach
                             } elseif ($requestType == Delivery::REQUEST_TYPE_TRACKING_BEACON) {
                                 //tracking beacon TO DO, now : do nothing
                                 if ($trackingModel->isKnownVisitor()) {
                                 } else {
                                     $responseType = Delivery::RESPONSE_TYPE_EMPTY_REFERRER;
                                 }
                             }
                         }
                     }
                     //serve Ad
                     if (!empty($serveAd)) {
                     } else {
                     }
                 }
             }
         }
     }
     if (empty($responseType)) {
         $responseType = Delivery::RESPONSE_TYPE_INVALID;
     }
     //ghi log process
     $trackingModel->logAfterProcess($responseType, $expandFields);
     return $deliveryModel->emptyAd();
 }
Пример #15
0
unset($parsed_res);
$Page = new Page();
$Page->PagesList();
$tpl->Assign('list_menu', $Page->list);
$GLOBALS['IERA_LINKS'] = array();
$GLOBALS['IERA_LINKS'][1]['title'] = "Корзина";
if ($User->fields['gid'] == _ACL_CUSTOMER_ || $User->fields['gid'] == _ACL_ANONYMOUS_ || $User->fields['gid'] == _ACL_DILER_ || $User->fields['gid'] == _ACL_CONTRAGENT_) {
    $Customer = new Customers();
    $Customer->SetFieldsById($User->fields['id_user']);
    $SavedCity = new Citys();
    $SavedCity->GetSavedFields($Customer->fields['id_city']);
    $SavedContragent = new Contragents();
    $SavedContragent->GetSavedFields($Customer->fields['id_contragent']);
    $DeliveryMethod = new Delivery();
    $DeliveryMethod->SetDeliveryList();
    $SavedDeliveryMethod = new Delivery();
    $SavedDeliveryMethod->GetSavedFields($Customer->fields['id_delivery']);
    $Cart = new Cart();
    if (isset($GLOBALS['REQAR'][1]) && is_numeric($GLOBALS['REQAR'][1])) {
        if (isset($_POST['add_order'])) {
            $Cart->FillByOrderId($GLOBALS['REQAR'][1], true);
        } else {
            $Cart->FillByOrderId($GLOBALS['REQAR'][1]);
        }
        header('Location: ' . _base_url . '/cart/');
    } elseif (isset($GLOBALS['REQAR'][1]) && $GLOBALS['REQAR'][1] == 'clear') {
        unset($_SESSION['Cart']);
    }
    $Cart->SetTotalQty();
    $Cart->SetAllSums();
    $Cart->SetPersonalDiscount($Customer->fields['discount']);
<?php

require "../../includes.php";
if (empty($_SESSION['login'])) {
    kick('login?kickback=' . htmlspecialchars(kickback_url()));
}
$db->autoCommit(false);
$products = ClientData::post('product_id');
$counts = ClientData::post('product_count');
$money_diff = 0;
$delivery = new Delivery();
$delivery->description = "Inventering";
$delivery->user = $_SESSION['login'];
$delivery->commit();
foreach ($products as $i => $product_id) {
    // Create purchase
    $product = Product::from_id($product_id);
    $diff = $counts[$i] - $product->count;
    $money_diff += $diff * $product->value;
    $product->count = $counts[$i];
    $product->commit();
    $contents = new DeliveryContent();
    $contents->cost = 0;
    $contents->delivery_id = $delivery->id;
    $contents->product_id = $product_id;
    $contents->count = $diff;
    var_dump($contents->count);
    $contents->commit();
}
if ($money_diff != 0) {
    $from_account = Account::from_code_name('stock_diff');
Пример #17
0
 /**
  * @brief 获得配送方式ajax
  */
 public function order_delivery()
 {
     $province = IFilter::act(IReq::get("province"), 'int');
     $weight = IFilter::act(IReq::get('total_weight'), 'float');
     $goodsSum = IFilter::act(IReq::get('goodsSum'), 'float');
     $distribution = IFilter::act(IReq::get("distribution"), 'int');
     //调入数据,获得配送方式结果
     $data = Delivery::getDelivery($province, $weight, $goodsSum);
     if ($distribution) {
         echo JSON::encode($data[$distribution]);
     } else {
         echo JSON::encode($data);
     }
 }
Пример #18
0
 public function postRecoverEmptyGood($goodEmptyId)
 {
     $good_empty = GoodEmpty::find($goodEmptyId);
     $branch = Branch::find($good_empty->branch_id);
     $delivery = new Delivery();
     $delivery->bn = date("YmdHis", time()) . $this->random(4, 1);
     $delivery->ship_name = $branch->name;
     $delivery->ship_addr = $branch->address;
     $delivery->ship_mobile = $branch->mobile;
     $delivery->t_begin = $this->__time();
     $delivery->branch_id = $branch->id;
     $delivery->user_id = Auth::user()->id;
     $delivery->money = '0';
     $delivery->status = '1';
     $delivery->pay_status = '0';
     $delivery->warehouse_id = Input::get('warehouse_id');
     $delivery->type = '1';
     $delivery->save();
     $good_info = Good::find($good_empty->good_id);
     // 计算实际兑换量
     //
     $empty_num = floor($good_empty->empty / $good_info->unit / $good_info->empty_unit);
     $empty = $empty_num * $good_info->unit;
     $good_info->empty = $good_info->empty + $empty;
     $good_info->store = $good_info->store - $empty;
     $good_info->save();
     $product_info = Product::find(Input::get('item_id'));
     $product_info->empty = $product_info->empty + $empty;
     $product_info->store = $product_info->store - $empty;
     $product_info->save();
     $delivery_item = new DeliveryItems();
     $delivery_item->delivery_id = $delivery->id;
     $delivery_item->branch_id = $branch->id;
     $delivery_item->good_id = $good_info->id;
     $delivery_item->product_id = $product_info->id;
     $delivery_item->good_name = $good_info->name;
     $delivery_item->spec_info = '';
     $delivery_item->number = $empty;
     $delivery_item->presentation = 0;
     $delivery_item->price = 0;
     $delivery_item->money = 0;
     $delivery_item->life_date = $product_info->life_date;
     $delivery_item->warehouse_id = $product_info->warehouse_id;
     $delivery_item->save();
     // 日志
     //
     $this->__goodLog($good_info->id, $product_info->id, 'empty');
     $branch->last_visit_at = $branch->last_ship_at = $this->__time();
     $branch->save();
     $good_empty->delivery_id = $delivery->id;
     $good_empty->save();
     return Redirect::to('picking/view/' . $delivery->id)->with('success', '兑换成功!');
 }
Пример #19
0
 /**
  * Проверяет корректность ввода данных в форму обратной связи и регистрацию в системе покупателя.
  *
  * @param array $arrayData  массив в введнными пользователем данными.
  * @return bool|string $error сообщение с ошибкой в случае некорректных данных.
  */
 public function isValidData($arrayData, $reqire = array('email', 'phone', 'payment'), $createUser = true, $error = null)
 {
     $result = null;
     $this->newUser = false;
     if ($createUser) {
         // Если электронный адрес зарегистрирован в системе.
         $currenUser = USER::getThis();
         if ($currenUser->email != trim($arrayData['email'])) {
             if (USER::getUserInfoByEmail($arrayData['email'])) {
                 $error = "<span class='user-exist'>Пользователь с таким email существует. \r\n            Пожалуйста, <a href='" . SITE . "/enter'>войдите в систему</a> используя \r\n            свой электронный адрес и пароль!</span>";
                 // Иначе новый пользователь.
             } else {
                 $this->newUser = true;
             }
         }
     }
     if (in_array('email', $reqire) && MG::getSetting('requiredFields') == 'true') {
         // Корректность емайл.
         if (!preg_match('/^[-._a-zA-Z0-9]+@(?:[a-zA-Z0-9][-a-zA-Z0-9]{0,61}+\\.)+[a-zA-Z]{2,6}$/', $arrayData['email'])) {
             $error = "<span class='order-error-email'>E-mail введен некорректно!</span>";
         }
     }
     if (in_array('phone', $reqire) && MG::getSetting('requiredFields') == 'true') {
         // Наличие телефона.
         if (empty($arrayData['phone'])) {
             $error = "<span class='no-phone'>Введите верный номер телефона!</span>";
         }
     }
     if (in_array('payment', $reqire)) {
         // Неуказан способ оплаты
         if (empty($arrayData['payment'])) {
             $error = "<span class='no-phone'>Выберите способ оплаты!</span>";
         }
     }
     if (CAPTCHA_ORDER == '1') {
         // если при оформлении капча
         if (empty($arrayData['capcha']) || strtolower($arrayData['capcha']) != strtolower($_SESSION['capcha'])) {
             $error = "<span class='no-phone'>Неверно введен код с картинки!</span>";
         }
     }
     // Если нет ошибок, то заносит информацию в поля класса.
     if (!empty($error)) {
         $result = $error;
     } else {
         $this->fio = trim($arrayData['fio']);
         $this->email = trim($arrayData['email']);
         $this->phone = trim($arrayData['phone']);
         $this->address = trim($arrayData['address']);
         $this->info = trim($arrayData['info']);
         $this->delivery = $arrayData['delivery'];
         $this->dateDelivery = $arrayData['date_delivery'];
         $deliv = new Delivery();
         $this->delivery_cost = $deliv->getCostDelivery($arrayData['delivery']);
         $this->payment = $arrayData['payment'];
         $cart = new Models_Cart();
         $this->summ = $cart->getTotalSumm();
         $this->ip = $_SERVER['REMOTE_ADDR'];
         $result = false;
         $this->addNewUser();
     }
     $args = func_get_args();
     $args['this'] =& $this;
     return MG::createHook(__CLASS__ . "_" . __FUNCTION__, $result, $args);
 }
Пример #20
0
 public function getDelivery($deliveryToken)
 {
     $delivery = new Delivery($this->user, $this->token);
     $deliveryData = $delivery->get($deliveryToken);
     return $deliveryData;
 }
Пример #21
0
 public static function get_Delivery_details($UID, $user)
 {
     if (Lock::is_locked_by_user($UID, 'DELIVERY_BASE', $user)) {
         $Delivery = Delivery::get_edited_Delivery_by_UID($UID);
     } else {
         $Delivery = Delivery::get_Delivery_by_UID($UID);
     }
     // get locking user
     $locking_user = Lock::get_locking_user($UID, 'DELIVERY_BASE');
     if ($locking_user != null) {
         $Delivery["LOCKING_USER"] = $locking_user;
     }
     return $Delivery;
 }
Пример #22
0
 public function transformJobs()
 {
     $statusHash = array();
     $statusObjects = StatusPeer::doSelect(new Criteria());
     foreach ($statusObjects as $s) {
         $statusHash[$s->getState()] = $s->getId();
     }
     $this->jobKeys = array();
     $dom = DOMDocument::load("tuftsph_jm2db.xml");
     $jobs = $dom->getElementsByTagName("jobs");
     $total = $jobs->length;
     $count = 1;
     $jobList = array();
     foreach ($jobs as $job) {
         $jid = 0;
         $childNodes = $job->childNodes;
         $j = new Job();
         $del = new Delivery();
         $jid = 1;
         $startTime = null;
         $shootStart = null;
         $shootEnd = null;
         $endTime = null;
         $notes = "";
         $photog = 0;
         $slug = "";
         $childNodes = $job->childNodes;
         foreach ($childNodes as $child) {
             switch ($child->nodeName) {
                 case "id":
                     $jid = $child->textContent;
                     break;
                 case "shoot_name":
                     $j->setEvent($child->textContent);
                     break;
                 case "shoot_date":
                     $j->setDate($child->textContent);
                     break;
                 case "shoot_startT":
                     $startTime = $child->textContent;
                     break;
                 case "shoot_start":
                     $shootStart = $child->textContent;
                     break;
                 case "shoot_endT":
                     $endTime = $child->textContent;
                     break;
                 case "shoot_end":
                     $shootEnd = $child->textContent;
                     break;
                 case "shoot_duedate":
                     $j->setDueDate($child->textContent);
                     break;
                 case "submitted_at":
                     $j->setCreatedAt($child->textContent);
                     break;
                 case "requester_address":
                     $j->setStreet($child->textContent);
                     break;
                 case "requester_campus":
                     $j->setCity($child->textContent);
                     break;
                 case "requester_name":
                     $j->setContactName($child->textContent);
                     break;
                 case "requester_email":
                     $j->setContactEmail($child->textContent);
                     break;
                 case "requester_phone":
                     $j->setContactPhone($child->textContent);
                     break;
                 case "internal_notes":
                     $notes .= $child->textContent . "<br/>";
                     break;
                 case "billing_notes":
                     $notes .= $child->textContent . "<br/>";
                     break;
                 case "estimate":
                     $j->setEstimate($child->textContent);
                     break;
                 case "billing_acctnum":
                     $j->setAcctNum($child->textContent);
                     break;
                 case "billing_deptid":
                     $j->setDeptId($child->textContent);
                     break;
                 case "billing_grantid":
                     $j->setGrantId($child->textContent);
                     break;
                 case "shoot_directions":
                     $j->setOther($child->textContent);
                     break;
                 case "status":
                     $j->setStatusId($statusHash[$child->textContent]);
                     break;
                 case "photog_id":
                     $photog = $child->textContent;
                     break;
                 case "delivery_pubname":
                     $del->setPubName($child->textContent);
                     break;
                 case "delivery_pubtype":
                     $del->setPubType($child->textContent);
                     break;
                 case "delivery_other":
                     $del->setOther($child->textContent);
                     break;
                 case "delivery_format":
                     break;
                 case "delivery_color":
                     $del->setColor($child->textContent);
                     break;
                 case "delivery_format":
                     $del->setFormat($child->textContent);
                     break;
                 case "delivery_size":
                     $del->setSize($child->textContent);
                     break;
                 case "delivery_method":
                     $del->setMethod($child->textContent);
                     break;
                 case "delivery_special":
                     $del->setInstructions($child->textContent);
                     break;
                 case "slug":
                     $slug = $child->textContent;
                     break;
                 case "#text":
                 default:
                     break;
             }
         }
         if (is_null($endTime)) {
             $endTime = $shootEnd;
         }
         if (is_null($startTime)) {
             $startTime = $shootStart;
         }
         if ($j->getCity() == "Boston") {
             $j->setZip("02101");
         } else {
             $j->setZip("02155");
         }
         $j->setNotes($notes);
         $j->setState("Massachusetts");
         list($hour, $min, $sec) = explode(":", $endTime);
         list($shour, $smin, $ssec) = explode(":", $startTime);
         $t = new DateTime();
         $t->setTime($hour, $min, $sec);
         $j->setEndTime($t);
         $t = new DateTime();
         $t->setTime($shour, $smin, $ssec);
         $j->setStartTime($t);
         $j->addTag($slug);
         if (isset($this->jobProjectKeys[$jid])) {
             $j->setProjectId($this->projectKeys[$this->jobProjectKeys[$jid]]);
         }
         while (count($jobList) - 1 != $jid) {
             $jobList[] = false;
         }
         $jobList[intval($jid)] = array("job" => $j, "del" => $del, "photog" => $photog);
     }
     for ($i = 1; $i < count($jobList); $i++) {
         sleep(1);
         $obj = $jobList[$i];
         $c = new Criteria();
         $c->add(JobPeer::ID, $i);
         if (JobPeer::doCount($c) > 0) {
             continue;
         }
         echo $i . "/" . $total . "\n";
         // keep the ids lined up
         if ($obj == false) {
             $myJob = new Job();
             try {
                 $myJob->save();
             } catch (Exception $ex) {
                 echo $ex->getMessage();
             }
             $myJob->delete();
         } else {
             $j = $obj["job"];
             $del = $obj["del"];
             $photog = $obj["photog"];
             try {
                 $j->save();
             } catch (Exception $ex) {
                 echo $ex->getMessage();
                 echo $ex->getTraceAsString();
             }
             $del->setJobId($j->getId());
             $del->save();
             $this->jobKeys[$jid] = $j->getId();
             if ($photog) {
                 $jp = new JobPhotographer();
                 $jp->setPhotographerId($this->photogKeys[$photog]);
                 $jp->setJobId($j->getId());
                 try {
                     $jp->save();
                 } catch (Exception $ex) {
                     echo $ex->getMessage();
                 }
             }
             // add the requester as a client
             $c = new Criteria();
             $c->add(sfGuardUserPeer::USERNAME, $j->getContactEmail());
             if (ClientPeer::doCount($c) == 0 && trim(strlen($j->getContactEmail())) != 0) {
                 $user = new sfGuardUser();
                 $user->setUsername($j->getContactEmail());
                 $user->setPassword("admin");
                 $user->save();
                 $userProfile = new sfGuardUserProfile();
                 $userProfile->setUserId($user->getId());
                 $userProfile->setUserTypeId(sfConfig::get("app_user_type_client"));
                 $userProfile->save();
                 $clientProfile = new Client();
                 $clientProfile->setUserId($userProfile->getId());
                 $clientProfile->setName($j->getContactName());
                 $clientProfile->setEmail($j->getContactEmail());
                 $clientProfile->setPhone($j->getContactPhone());
                 $clientProfile->save();
                 $jobClient = new JobClient();
                 $jobClient->setClientId($clientProfile->getId());
                 $jobClient->setJobId($j->getId());
                 $jobClient->save();
             }
         }
         $count += 1;
     }
 }
Пример #23
0
<?php

require_once '../../lib/defination.class.php';
include '../../lib/delivery.class.php';
include '../../lib/stock.class.php';
include '../../lib/gatePass.class.php';
// get stock item for combo box
$Stock = new Stock();
$outputStockItem = options_for_select($Stock->retriveStockItemByIndendId($id), 'stock_item_id', 'stock_item_name', true);
// get Indend info for combo box;
$GatePass = new GatePass();
$GatePassNo = options_for_select($GatePass->retriveGatePassMasterNo(), 'gate_pass_id', 'gate_pass_no', true);
$Delivery = new Delivery();
$num = $Delivery->getNewId();
?>



<style type="text/css">
<!--
.style10 {font-size: xx-small; font-family: Verdana, Arial, Helvetica, sans-serif; }
.style11 {font-size: xx-small}
-->
</style>
<link href="../../css/stylesheet.css" rel="stylesheet" type="text/css" />
<form id="supplierForm" name="supplierForm" method="post"  action="includes/model/delivery_actions.php" >

<div id="note"> </div>

<div id="ajax_content">	
<table width="105%" border="0" align="left" cellpadding="2" cellspacing="5" style="float:left" >
Пример #24
0
 public function goNext(Delivery $delivery)
 {
     $delivery->setState(new OnRoute());
 }
Пример #25
0
        <?php 
echo Yii::t('OrderModule.order', 'Orders');
?>
        <small><?php 
echo Yii::t('OrderModule.order', 'manage');
?>
</small>
    </h1>
</div>


<?php 
$this->widget('yupe\\widgets\\CustomGridView', ['id' => 'order-grid', 'type' => 'condensed', 'dataProvider' => $model->search(), 'filter' => $model, 'datePickers' => ['Order_date'], 'afterAjaxUpdate' => 'reinstallDatePicker', 'columns' => [['name' => 'id', 'htmlOptions' => ['width' => '90px'], 'type' => 'raw', 'value' => function ($data) {
    return CHtml::link($data->id, ["/order/orderBackend/update", "id" => $data->id]);
}], ['name' => 'date', 'type' => 'html', 'filter' => $this->widget('booster.widgets.TbDatePicker', ['model' => $model, 'attribute' => 'date', 'options' => ['format' => 'yyyy-mm-dd'], 'htmlOptions' => ['class' => 'form-control']], true), 'value' => function ($data) {
    return CHtml::link(Yii::app()->getDateFormatter()->formatDateTime($data->date, 'medium'), ["/order/orderBackend/update", "id" => $data->id]);
}], ['name' => 'name', 'type' => 'raw', 'value' => function ($data) {
    return isset($data->client) ? CHtml::link($data->client->getFullName(), ['/order/clientBackend/view', 'id' => $data->user_id]) : $data->name;
}, 'htmlOptions' => ['width' => '400px']], ['name' => 'total_price', 'value' => function ($data) {
    return Yii::app()->getNumberFormatter()->formatCurrency($data->total_price, Yii::app()->getModule('store')->currency);
}], ['class' => 'yupe\\widgets\\EditableStatusColumn', 'name' => 'status_id', 'url' => $this->createUrl('/order/orderBackend/inline'), 'source' => OrderHelper::statusList(), 'options' => OrderHelper::labelList()], ['name' => 'payment_method_id', 'value' => function ($data) {
    return $data->payment ? $data->payment->name : '---';
}, 'filter' => CHtml::listData(Payment::model()->findAll(), 'id', 'name')], ['class' => 'yupe\\widgets\\EditableStatusColumn', 'name' => 'paid', 'url' => $this->createUrl('/order/orderBackend/inline'), 'source' => $model->getPaidStatusList(), 'options' => [Order::PAID_STATUS_NOT_PAID => ['class' => 'label-danger'], Order::PAID_STATUS_PAID => ['class' => 'label-success']]], ['name' => 'delivery_id', 'header' => Yii::t('OrderModule.order', 'Delivery'), 'filter' => CHtml::listData(Delivery::model()->findAll(), 'id', 'name'), 'value' => function (Order $data) {
    return $data->delivery->name;
}], ['name' => 'manager_id', 'type' => 'raw', 'filter' => CHtml::listData(User::model()->findAll('access_level = :level', [':level' => User::ACCESS_LEVEL_ADMIN]), 'id', 'fullName'), 'value' => function ($data) {
    return isset($data->manager) ? \yupe\helpers\YText::shortName($data->manager->getFullName()) : null;
}], ['class' => 'yupe\\widgets\\CustomButtonColumn', 'buttons' => ['update' => ['visible' => function ($row, Order $order) {
    return $order->checkManager(Yii::app()->getUser());
}], 'delete' => ['visible' => function ($row, Order $order) {
    return $order->checkManager(Yii::app()->getUser());
}]]]]]);
Пример #26
0
<?if($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest'){
	$Cart = new Cart();
	$Region = new Regions();
	$City = new Citys();
	$DeliveryService = new DeliveryService();
	$Delivery = new Delivery();
	$Orders = new Orders();
	/*$Orders->Add($_POST['user_number']);*/
	if(isset($_POST['action'])){
		switch($_POST['action']){
			case "GetRegionsList":
				$Region->SetList();
				$str = '';
				foreach($Region->list as $region){
					if($region['region'] != ''){
						$str .= '<li class="mdl-menu__item" data-value="'.$region['id_city'].'">'.$region['region'].'</li>';
					}
				}
				echo json_encode($str);
			;
			break;

			case "regionSelect":
				$res = $City->SetFieldsByInput($_POST['region']);?>
				<option selected="selected" disabled="disabled" class="color-sgrey">Город</option>
				<?foreach($res as $r){?>
					<option value="<?php 
echo $r['names_regions'];
?>
"><?php 
echo $r['name'];
Пример #27
0
 /**
  * @brief 获得配送方式ajax
  */
 public static function order_delivery()
 {
     $data = array();
     //获取post的值
     $province = IReq::get("province");
     $weight = (int) IReq::get('weight');
     //商品总价
     $goodsSum = floatval(IReq::get('goodsSum'));
     //初始化配送方式类
     $delivery = new Delivery();
     //调入数据,获得配送方式结果
     $data = $delivery->getDelivery($province, $weight, $goodsSum);
     echo JSON::encode($data);
 }
Пример #28
0
<?php

require_once "../../../lib/delivery.class.php";
require_once "../../../lib/helper_functions.php";
$delivery = new Delivery();
//	echo "<pre>";
//		var_dump($delivery->findDeliveryChalanList());
//	echo "</pre>";
$deliveries = $delivery->findDeliveryChalanList();
?>

	 <div id="inline_form">
			
			<div class="mediumbody">
				<div class="lowbanner1"> </div>
	            <div class="lowbannertest">	
					<ul>
						<li style="width:270px">Items </li>
						<li style="width:150px">Delivery Challan # </li>
						<li style="width:200px">Delivery Challan Create Date</li>  
					</ul>
				</div>
	            <div class="lowbanner3"> </div>	
		</div> 

	
	<?php 
if (!empty($deliveries)) {
    ?>

		
Пример #29
0
 /**
  * 计算订单信息,其中部分计算都是以商品原总价格计算的$goodsSum
  * @param $goodsSum float 商品原总金额
  * @param $goodsFinalSum 商品应付总金额
  * @param $goodsWeight float 商品总重量
  * @param $province_id int 省份ID
  * @param $delievery_id int 配送方式ID
  * @param $payment_id int 支付ID
  * @param $is_freeDelievery boolean 是否免运费
  * @param $is_insured boolean 是否有保价
  * @param $is_invoice boolean 是否要发票
  * @param $discount float 订单的加价或者减价
  * @return $result 最终的返回数组
  */
 public static function countOrderFee($goodsSum, $goodsFinalSum, $goodsWeight, $province_id, $delivery_id, $payment_id, $is_freeDelievery, $is_insured, $is_invoice, $discount = 0)
 {
     //最终的返回数组
     $result = array('deliveryOrigPrice' => 0, 'deliveryPrice' => 0, 'insuredPrice' => 0, 'taxPrice' => 0, 'paymentPrice' => 0, 'orderAmountPrice' => 0);
     //计算运费和保价
     $deliveryList = Delivery::getDelivery($province_id, $goodsWeight, $goodsSum);
     //运费设置
     $result['deliveryOrigPrice'] = $result['deliveryPrice'] = isset($deliveryList[$delivery_id]['price']) ? $deliveryList[$delivery_id]['price'] : 0;
     //免运费
     if ($is_freeDelievery == true) {
         $result['deliveryPrice'] = 0;
     }
     //需要保价
     if ($is_insured == true) {
         $result['insuredPrice'] = $deliveryList[$delivery_id]['protect_price'];
     }
     //获取税率$tax
     if ($is_invoice == true) {
         $result['taxPrice'] = self::getGoodsTax($goodsSum);
     }
     //非货到付款的线上支付方式手续费
     if ($payment_id != 0) {
         $result['paymentPrice'] = self::getGoodsPaymentPrice($payment_id, $goodsSum);
     }
     //最终订单金额计算
     $order_amount = $goodsFinalSum + $result['deliveryPrice'] + $result['insuredPrice'] + $result['taxPrice'] + $result['paymentPrice'] + $discount;
     $result['orderAmountPrice'] = $order_amount <= 0 ? 0 : round($order_amount, 2);
     return $result;
 }
Пример #30
0
 /**
  * @brief 获得配送方式ajax
  */
 public function order_delivery()
 {
     $productId = IFilter::act(IReq::get("productId"), 'int');
     $goodsId = IFilter::act(IReq::get("goodsId"), 'int');
     $province = IFilter::act(IReq::get("province"), 'int');
     $distribution = IFilter::act(IReq::get("distribution"), 'int');
     $num = IReq::get("num") ? IFilter::act(IReq::get("num"), 'int') : 1;
     $data = array();
     if ($distribution) {
         $data = Delivery::getDelivery($province, $distribution, $goodsId, $productId, $num);
     } else {
         $delivery = new IModel('delivery');
         $deliveryList = $delivery->query('is_delete = 0 and status = 1');
         foreach ($deliveryList as $key => $item) {
             $data[$item['id']] = Delivery::getDelivery($province, $item['id'], $goodsId, $productId, $num);
         }
     }
     echo JSON::encode($data);
 }