diff --git a/Layout/default/Emailtemplates/order/int_billing_info.php b/Layout/default/Emailtemplates/order/int_billing_info.php index 01542247a..4ac1d2989 100644 --- a/Layout/default/Emailtemplates/order/int_billing_info.php +++ b/Layout/default/Emailtemplates/order/int_billing_info.php @@ -2,7 +2,12 @@ $term_id = $order->terminations[0]->id; $op = OrderProductModel::getFirst(['order_id' => $order->id, 'termination_id' => $term_id]); - $billing_start = date('U'); + if($order->finish_date) { + $billing_start = $order->finish_date; + } else { + $billing_start = date('U'); + } + if($op->billing_delay) { $billing_start = strtotime("+".$op->billing_delay." months"); } diff --git a/Layout/default/Order/Form.php b/Layout/default/Order/Form.php index 87539939f..1a44e4417 100644 --- a/Layout/default/Order/Form.php +++ b/Layout/default/Order/Form.php @@ -665,7 +665,11 @@
- finish_date) : date("d.m.Y")?>" /> + shippingdate): ?> + shippingdate)?>" /> + + finish_date) : date("d.m.Y")?>" /> +
diff --git a/application/Voicenumber/VoicenumberModel.php b/application/Voicenumber/VoicenumberModel.php index 3ac00faa6..ea37db5ec 100644 --- a/application/Voicenumber/VoicenumberModel.php +++ b/application/Voicenumber/VoicenumberModel.php @@ -1,8 +1,212 @@ $value) { + if(property_exists(get_called_class(), $field)) { + $model->$field = $value; + } + } + + $me = new User(); + $me->loadMe(); + if($model->create_by === null) { + $model->create_by = $me->id; + } + if($model->edit_by === null) { + $model->edit_by = $me->id; + } + + return $model; + } + + public static function getAll() { + $items = []; + + $db = FronkDB::singleton(); + + $res = $db->select("Voicenumber", "*"); + if($db->num_rows($res)) { + while($data = $db->fetch_object($res)) { + $items[] = new Voicenumber($data); + } + } + return $items; + + } + + public static function getFirst() { + $db = FronkDB::singleton(); + + $where = self::getSqlFilter($filter); + $res = $db->select("Voicenumber", "*", "$where ORDER BY voicenumberblock_id, number"); + if($db->num_rows($res)) { + $data = $db->fetch_object($res); + $item = new Voicenumber($data); + if($item->id) { + return $item; + } else { + return null; + } + } + return null; + } + + public static function count($filter) { + $db = FronkDB::singleton(); + + $where = self::getSqlFilter($filter); + $sql = "SELECT COUNT(*) as cnt FROM Voicenumber + WHERE $where + "; + + $res = $db->query($sql); + if($db->num_rows($res)) { + $data = $db->fetch_object($res); + return $data->cnt; + } + return 0; + } + + public static function search($filter, $limit = false) { + $items = []; + $db = FronkDB::singleton(); + + $where = self::getSqlFilter($filter); + $sql = "SELECT * FROM Voicenumber + WHERE $where + ORDER BY countrycode, areacode, first, last"; + + if(is_array($limit) && count($limit)) { + if(is_numeric($limit['start']) && is_numeric($limit['count'])) { + $sql .= " LIMIT ".$limit['start'].", ".$limit['count']; + } elseif(is_numeric($count)) { + $sql .= " LIMIT ".$limit['count']; + } + } + + $res = $db->query($sql); + + //mfLoghandler::singleton()->debug($sql); + + if($db->num_rows($res)) { + while($data = $db->fetch_object($res)) { + $items[] = new Voicenumber($data); + } + } + return $items; + } + + private function getSqlFilter($filter) { + $db = FronkDB::singleton(); + $where = "1=1 "; + + if(!is_array($filter)) { + return $where; + } + + //var_dump($filter);exit; + if(array_key_exists("countrycode", $filter)) { + $countrycode = $filter['countrycode']; + if(is_numeric($countrycode)) { + $where .= " AND countrycode like '%$countrycode%'"; + } + } + + if(array_key_exists("areacode", $filter)) { + $areacode = $filter['areacode']; + if(is_numeric($areacode)) { + $where .= " AND areacode like '%$areacode%'"; + } + } + + if(array_key_exists("first", $filter)) { + $add_zero = false; + $first = $filter['first']; + + mfLoghandler::singleton()->debug($first); + + if(substr($first,0, 1) === "0") { + $add_zero = true; + $first = substr($first, 1); + } + + if(is_numeric($first)) { + $where .= " AND first like '%$first%'"; + if($add_zero) { + $where .= " AND number_prepend_zero = 1"; + } + } + } + + if(array_key_exists("last", $filter)) { + $add_zero = false; + $last = $filter['last']; + + mfLoghandler::singleton()->debug($last); + + if(substr($last,0, 1) === "0") { + $add_zero = true; + $last = substr($last, 1); + } + + if(is_numeric($last)) { + $where .= " AND last like '%$last%'"; + } + } + + if(array_key_exists("number", $filter)) { + $add_zero = false; + $number = $filter['number']; + + mfLoghandler::singleton()->debug($number); + + if(substr($number,0, 1) === "0") { + $add_zero = true; + $number = substr($number, 1); + } + if(is_numeric($number)) { + $where .= " AND first <= $number AND last >= $number"; + + if($add_zero) { + $where .= " AND number_prepend_zero = 1"; + } + } + } + + if(array_key_exists("name", $filter)) { + $name = $db->escape($filter['name']); + if($name) { + $where .= " AND name like '%$name%'"; + } + } + + if(array_key_exists("comment", $filter)) { + $comment = $db->escape($filter['comment']); + if($comment) { + $where .= " AND comment like '%$comment%'"; + } + } + + //var_dump($filter, $where);exit; + return $where; + } + +} \ No newline at end of file