Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- public static function calc($id, $format = 'json')
- {
- FacetWPController::loadWordPressEnvironment();
- $post = get_post($id);
- $material = SingleWItems::getMaterial($post);
- $reelSize = SingleWItems::getReelSize($post);
- $size_pattern = explode( '*', $reelSize );
- $size_width = str_replace(',','.',$size_pattern[0]);
- $size_length = str_replace(',','.',$size_pattern[1]);
- $width = str_replace(',','.',trim(htmlspecialchars($_POST['width']))); //ширина помещения
- $length = str_replace(',','.',trim(htmlspecialchars($_POST['length']))); //длина помещения
- $height = str_replace(',','.',trim(htmlspecialchars($_POST['height']))); //высота помещения
- if ($width <= 0 || $length <= 0 || $height <= 0) {
- echo json_encode(array('loadmsgerr'=>'Ошибка! Размеры комнаты должны быть неотрицательными числами!'));
- exit;
- }
- if ($width > 100 || $length > 100 || $height > 100) {
- echo json_encode(array('loadmsgerr'=>'Ошибка! Размеры команты не должны превышать 100!'));
- exit;
- }
- $width_p = str_replace(',','.', $size_width);
- $length_p = str_replace(',','.', $size_length);
- $pattern_repeat_h = str_replace(',','.', get_field( 'product_pattern_repeat_h', $post ));
- if ( $pattern_repeat_h != null ) {
- $fit_ph = $pattern_repeat_h;
- } else {
- $fit_ph = 0;
- }
- $tech = 0.10; //технический подрез
- if(!(float)$width || $width ==''){ // помещение
- echo json_encode(array('loadmsgerr'=>'Ошибка! Ширина помещения указывается только в цифрах!'));
- }elseif(!(float)$length || $length ==''){
- echo json_encode(array('loadmsgerr'=>'Ошибка! Длина помещения указывается только в цифрах!'));
- }elseif(!(float)$height || $height ==''){
- echo json_encode(array('loadmsgerr'=>'Ошибка! Высота до потолка указывается только в цифрах!'));
- }elseif(!(float)$width_p || $width_p == ''){
- echo json_encode(array('loadmsgerr'=>'Ошибка! Не указана ширина полотна!'));
- }elseif(!(float)$length_p || $length_p == ''){
- echo json_encode(array('loadmsgerr'=>'Ошибка! Не указана длина полотна!'));
- }else{
- $P = ($width + $length) * 2 ; //периметр помещения
- $S = $P * $height; //площадь стен
- $one_pattern_height = $height + $tech + $fit_ph; //высота полотна
- $quantity_patterns = $P / $width_p; //количество полотен на помещение
- if($fit_ph == '0' ){
- $all_quantity = $quantity_patterns * $one_pattern_height; //общий метраж без рисунка
- }elseif((float)$fit_ph ){
- $all_quantity = $quantity_patterns * $one_pattern_height; //общий метраж с рисунком
- }else{
- echo json_encode(array('loadmsgerr'=>'Ошибка! Не указан размер подгона рисунка!'));
- exit();
- }
- $amount_p = $length_p / $one_pattern_height;
- if($size_width > 0.3 && ($material == 'бесшовные' || floor($amount_p) == 0)){
- $amount_r = ($S + 1) / $width_p; //количество рулонов обоев М2
- } else {
- if ($size_width <= 0.3) {
- $amount_r = ceil($P / $length_p);
- } else {
- $amount_r = ceil( $quantity_patterns ) / floor( $amount_p ); //количество рулонов
- }
- }
- switch ($format) {
- case 'json':
- return json_encode([
- 'amount_r' => ceil($amount_r),
- ]);
- break;
- case 'integer':
- return ceil($amount_r);
- break;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement