���Root Mod By V1rus_Alfa
User / IP
:
216.73.217.78
Host / Server
:
195.214.235.115 / npln.ir
System
:
Linux damavand.pws-dns.net 5.14.0-503.35.1.el9_5.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Apr 4 05:23:43 EDT 2025 x86_64
Command
|
Upload
|
Mass Deface
|
Create
:
/
home2
/
cutunixc
/
repositories
/
portal-cutunix
/
app
/
Helpers
/
HelperClass
/
Viewing: GeneralUse.php
<?php namespace App\Helpers\HelperClass; use Carbon\Carbon; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Validator; use Modules\Central\Models\UnitList; use Modules\Finance\Models\Detailed; use Modules\Finance\Models\Document; use Modules\Finance\Models\DocumentRow; use Modules\Finance\Models\Factor; use Modules\Finance\Models\FactorRow; use Modules\Finance\Models\FinancialCheck; use Modules\Finance\Models\Kol; use Modules\Finance\Models\Moeen; use Modules\Identity\Models\TenantCustomer; use Modules\Industry\Models\TenantIndustrialMachinery; use Modules\Messenger\Models\Message; use Modules\Payment\Models\PaymentServices; use Modules\Product\Models\ProductAttr; use Modules\Product\Models\TypeProductAttr; use Modules\Project\Models\Order; use Modules\Project\Models\OrderGroup; use Modules\Project\Models\OrderSlice; use Modules\Warehouse\Models\Product; use PDF; use function App\Helpers\destroyFile; use function App\Helpers\pathReturn; use function App\Helpers\slug; use function App\Helpers\toEnDigit; class GeneralUse { public static function create_product_attr($product = null, $formData = null) { $inserts = []; $attr = TypeProductAttr::where('type_id', $product->type_id)->get(); if (0 < count($attr)) { foreach ($attr as $value) { if (isset($formData[$value->name]) && $formData[$value->name]) { $key = $value->name; $val = $formData[$value->name]; $inserts[] = [ 'key' => $key, 'val' => $val, 'product_id' => $product->id, 'created_at' => Carbon::now(), 'updated_at' => Carbon::now(), ]; } } if (0 < count($inserts)) { ProductAttr::insert($inserts); } } } public static function send_push_massage($firebaseToken = [], $title = null, $body = null) { $SERVER_API_KEY = 'AAAA1thROI4:APA91bEk3SJYm8nXp3OL-CbVn1UJAXUktqZuE63A__PPcnoU3uu1AiUJ88KYkQuRWviZmbA1TaLvEdzm_ox0Iv7Jy9k3rElqINQgIqi1YD-3nAgrtPaKu_vR1dGvzWSNXiTVcGsGaeQ-'; $data = [ "registration_ids" => $firebaseToken, "notification" => [ "title" => $title, "body" => $body, ] ]; $dataString = json_encode($data); $headers = [ 'Authorization: key=' . $SERVER_API_KEY, 'Content-Type: application/json', ]; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://fcm.googleapis.com/fcm/send'); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $dataString); return $response = curl_exec($ch); } public static function make_columns($type_id, $count, $formData) { $inserts = []; for ($i = 1; $i <= $count; $i++) { if ($formData['label_' . $i] && $formData['name_' . $i]) { $label = $formData['label_' . $i]; $name = slug($formData['name_' . $i]); $inserts[] = [ 'label' => $label, 'name' => $name, 'type_id' => $type_id, 'created_at' => Carbon::now(), 'updated_at' => Carbon::now(), ]; } } if (0 < count($inserts)) { //insert-data TypeProductAttr::insert($inserts); } } public static function submitControl($code, $name, $des) { $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => 'http://productioncontrol.pellehpich2.ir/api/ApiProject/CreateProject?Name=' . $name . '&Code=' . $code . '&Des=' . $des, CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'GET', CURLOPT_HTTPHEADER => array( 'Accept: application/json' ), )); $response = curl_exec($curl); curl_close($curl); } public static function makeReceipt($document_id, $filesystem) { $document = Document::where('id', $document_id)->with(['check', 'order', 'from', 'to'])->first(); if ($document->receipt) { destroyFile($document->receipt, $filesystem); } $data = ['document' => $document]; $path_all = pathReturn($filesystem, 'receipt', 'receipt'); $path_pdf = $path_all[0]; $address_pdf = $path_all[1]; PDF::loadView('receipt', $data, [], [ 'format' => 'A5' ])->save($path_pdf); Document::where('id', $document_id)->update([ 'receipt' => $address_pdf, ]); } public static function makeSingleDocument($formData, $order_id = null, $services_id, $type = null) { $check = null; $factor_id = null; if ($formData['factor_id']) { $factor_id = $formData['factor_id']; } if ($formData['type'] == 'update') { $check = Document::where('factor_id', $factor_id)->first(); } if ($check) { Document::where('id', $check->id)->update([ 'sum_bes' => $formData['price'], 'sum_bed' => $formData['price'], 'type' => $type, 'diffrent_price' => 0, 'date' => $formData['date'], 'from_id' => $formData['from_id'], 'to_id' => $formData['to_id'], 'order_id' => $order_id, 'user_id' => $services_id, ]); return $check->id; } else { $factor_id = null; if ($formData['factor_id']) { $factor_id = $formData['factor_id']; } $document = Document::create([ 'sum_bes' => $formData['price'], 'sum_bed' => $formData['price'], 'type' => $type, 'diffrent_price' => 0, 'date' => $formData['date'], 'from_id' => $formData['from_id'], 'to_id' => $formData['to_id'], 'order_id' => $order_id, 'user_id' => $services_id, 'factor_id' => $factor_id, ]); return $document->id; } } public static function makeSingleRowDocument($type = null, $data, $document_id = null, $services_id = null) { if ($type == 'insert') { if ($document_id) { DocumentRow::where('document_id', $document_id)->delete(); } DocumentRow::insert($data); } else { $description = null; if ($data['description']) { $description = $data['description']; } DocumentRow::create([ 'bes' => 0, 'bed' => $data['price'], 'description' => $description, 'detailed_id' => $data['from_id'], 'document_id' => $document_id, 'user_id' => $document_id, ]); } } public static function makeDocument($formData, $order_id = null, $services_id, $type = null) { $description = null; if ($formData['description']) { $description = $formData['description']; } if ($type == 'check_receive' || $type == 'check_pay') { $date = $formData['datevuesss']; } else { $date = $formData['datevuess']; } $document = Document::create([ 'sum_bes' => $formData['price'], 'sum_bed' => $formData['price'], 'type' => $type, 'diffrent_price' => 0, 'date' => $date, 'from_id' => $formData['from_id'], 'to_id' => $formData['to_id'], 'order_id' => $order_id, 'user_id' => $services_id, ]); if ($document) { DocumentRow::create([ 'bes' => 0, 'bed' => $formData['price'], 'description' => $description, 'detailed_id' => $formData['from_id'], 'document_id' => $document->id, 'user_id' => $services_id, ]); DocumentRow::create([ 'bes' => $formData['price'], 'bed' => 0, 'description' => $description, 'detailed_id' => $formData['to_id'], 'document_id' => $document->id, 'user_id' => $services_id, ]); if ($type == 'check_receive' || $type == 'check_pay') { FinancialCheck::create([ 'bank' => $formData['bank'], 'price' => $formData['price'], 'issue_date' => $formData['datevuesss'], 'due_date' => $formData['datevuessD'], 'number_check' => $formData['number_check'], 'number_sayad' => $formData['number_sayad'], 'account_number' => $formData['account_number'], 'national_code' => $formData['national_code'], 'from_id' => $formData['from_id'], 'to_id' => $formData['to_id'], 'description_check' => $formData['description_check'], 'description' => $formData['price'], 'order_id' => $order_id, 'user_id' => $services_id, 'document_id' => $document->id, ]); } return $document->id; } } public static function makeKolDefault($servises_id) { $kol = ['صندوق', 'بدهکاران', 'خرید کالا', 'فروش کالا', 'درآمد خدمات']; foreach ($kol as $value) { $check = Kol::where('name', $value)->first(); if (!$check) { $kol = Kol::create([ 'name' => $value, 'user_id' => $servises_id, ]); if ($value == 'بدهکاران') { $moeen_value = 'مشتریان'; } elseif ($value == 'فروش کالا') { $moeen_value = 'فروش'; } elseif ($value == 'خرید کالا') { $moeen_value = 'خرید'; } elseif ($value == 'درآمد خدمات') { $moeen_value = 'خدمات'; } else { $moeen_value = 'صندوق'; } $moeen = Moeen::create([ 'name' => $moeen_value, 'user_id' => $servises_id, 'kol_id' => $kol->id, ]); if ($moeen && $moeen_value == 'فروش') { Detailed::create([ 'name' => 'فروش ورق', 'user_id' => $servises_id, 'kol_id' => $kol->id, 'moeen_id' => $moeen->id, ]); } elseif ($moeen && $moeen_value == 'خرید') { Detailed::create([ 'name' => 'خرید', 'user_id' => $servises_id, 'kol_id' => $kol->id, 'moeen_id' => $moeen->id, ]); } elseif ($moeen && $moeen_value == 'خدمات') { Detailed::create([ 'name' => 'خدمات برش', 'user_id' => $servises_id, 'kol_id' => $kol->id, 'moeen_id' => $moeen->id, ]); } elseif ($moeen && $moeen_value == 'صندوق') { Detailed::create([ 'name' => 'صندوق', 'user_id' => $servises_id, 'kol_id' => $kol->id, 'moeen_id' => $moeen->id, ]); } } } } public static function makeDetailed($kol_name, $moeen_name, $detailed_name, $servises_id, $customer_id = null) { $kol_id = self::checkMakeKol($kol_name, $servises_id); if ($kol_id) { $moeen_id = self::checkMakeMoeen($moeen_name, $kol_id, $servises_id); if ($moeen_id) { $detailed_id = self::checkMakeDetailed($detailed_name, $kol_id, $moeen_id, $servises_id, $customer_id); return $detailed_id; } } } public static function checkMakeKol($name, $servises_id) { $check = Kol::where('name', $name)->where('user_id', $servises_id)->first(); if ($check) { return $check->id; } else { $kol = Kol::create([ 'name' => $name, 'user_id' => $servises_id, ]); return $kol->id; } } public static function checkMakeMoeen($name, $kol_id, $servises_id) { $check = Moeen::where('name', $name)->where('kol_id', $kol_id)->where('user_id', $servises_id)->first(); if ($check) { return $check->id; } else { $moeen = Moeen::create([ 'name' => $name, 'user_id' => $servises_id, 'kol_id' => $kol_id, ]); return $moeen->id; } } public static function checkMakeDetailed($name, $kol_id, $moeen_id, $servises_id, $customer_id = null) { $check = Detailed::where('name', $name)->where('moeen_id', $moeen_id)->where('kol_id', $kol_id)->when($customer_id, function ($q) use ($customer_id) { $q->where('customer_id', $customer_id); })->where('user_id', $servises_id)->first(); if ($check) { return $check->id; } else { if ($customer_id) { $detailed = Detailed::create([ 'name' => $name, 'user_id' => $servises_id, 'kol_id' => $kol_id, 'moeen_id' => $moeen_id, 'customer_id' => $customer_id, ]); } else { $detailed = Detailed::create([ 'name' => $name, 'user_id' => $servises_id, 'kol_id' => $kol_id, 'moeen_id' => $moeen_id, ]); } return $detailed->id; } } public function validateApi($request, $rolls) { $validation = Validator::make($request->all(), $rolls); if ($validation->fails()) { return $validation->messages()->first(); } else { return 'ok'; } } public function countTicket() { $ticket = Message::where('class', 'ticket')->where('status', 'user')->where('seen', 'no')->count(); return $ticket; } public static function replaceComma($str) { $result = str_replace(',', '', $str); return $result; } public static function edit_buy_factor($formData, $filesystem, $factor, $num) { $services_id = $factor->services_id; //set Factor::where('id', $factor->id)->update([ 'number' => $formData['number'], 'date' => $formData['date'], 'tel_seller' => $formData['tel_seller'], 'seller' => $formData['seller'], 'buyer' => $formData['buyer'], 'tel_buyer' => $formData['tel_buyer'], 'total' => self::replaceComma($formData['total']), 'discount' => self::replaceComma($formData['discount']), 'total_price' => self::replaceComma($formData['total_price']), 'description' => $formData['description'] ]); $from_id = self::makeDetailed('بدهکاران', 'فروشندگان', $formData['seller'], $services_id); if ($from_id) { $document_data = [ "from_id" => $from_id, "to_id" => $services_id, "price" => self::replaceComma($formData['total_price']), "date" => $formData['date'], "factor_id" => $factor->id, "type" => 'insert', ]; $document_id = self::makeSingleDocument($document_data, Null, $services_id, 'factor'); if ($document_id) { $inserts = []; $inserts_document = []; //set row foreach ($factor->rows as $row) { Product::where('id', $row->product_id)->update([ 'count' => DB::raw('count - ' . $row->count), ]); } for ($i = 0; $i <= $num - 1; $i++) { if (isset($formData['rows'][$i]['detailed'])) { $code = $formData['rows'][$i]['code']; $detailed_id = $formData['rows'][$i]['detailed']; $product_id = $formData['rows'][$i]['product_id']; $count = $formData['rows'][$i]['count']; $price = $formData['rows'][$i]['price']; $amount = $formData['rows'][$i]['amount']; Product::where('id', $product_id)->update([ 'count' => DB::raw('GREATEST(count + ' . $count . ',0)'), ]); if ($price) { $inserts_document[] = [ 'bes' => $price, 'bed' => 0, 'description' => $formData['description'], 'detailed_id' => $detailed_id, 'document_id' => $document_id, 'user_id' => $services_id, 'created_at' => Carbon::now(), 'updated_at' => Carbon::now(), ]; $inserts_document[] = [ 'bes' => 0, 'bed' => $price, 'description' => $formData['description'], 'detailed_id' => $from_id, 'document_id' => $document_id, 'user_id' => $services_id, 'created_at' => Carbon::now(), 'updated_at' => Carbon::now(), ]; $inserts[] = [ 'code' => $code, 'detailed_id' => $detailed_id, 'count' => $count, 'price' => $price, 'amount' => $amount, 'product_id' => $product_id, 'factor_id' => $factor->id, 'created_at' => Carbon::now(), 'updated_at' => Carbon::now(), ]; } } } FactorRow::where('factor_id', $factor->id)->delete(); //insert-data FactorRow::insert($inserts); self::makeSingleRowDocument('insert', $inserts_document); self::makeReceipt($document_id, $filesystem); self::export_pdf($factor->id, $filesystem); return 'ok'; } } } public static function edit_factor($formData, $filesystem, $factor, $num) { //set Factor::where('id', $factor->id)->update([ 'number' => $formData['number'], 'date' => $formData['date'], 'tel_seller' => $formData['tel_seller'], 'seller' => $formData['seller'], 'buyer' => $formData['buyer'], 'tel_buyer' => $formData['tel_buyer'], 'total' => self::replaceComma($formData['total']), 'discount' => self::replaceComma($formData['discount']), 'total_price' => self::replaceComma($formData['total_price']), 'description' => $formData['description'], ]); $tenant_has_customers = TenantCustomer::where('id', $factor->user_id)->first(); if ($tenant_has_customers->first_name || $tenant_has_customers->last_name) { $name = $tenant_has_customers->first_name . ' ' . $tenant_has_customers->last_name; } else { $name = $tenant_has_customers->mobile; } $from_id = self::makeDetailed('بدهکاران', 'مشتریان', $name, $tenant_has_customers->services_id, $tenant_has_customers->user_id); if ($from_id) { $document_data = [ "from_id" => $from_id, "to_id" => $tenant_has_customers->services_id, "price" => self::replaceComma($formData['total_price']), "date" => $formData['date'], "factor_id" => $factor->id, "type" => 'update', ]; $document_id = self::makeSingleDocument($document_data, $factor->order_id, $tenant_has_customers->services_id, 'factor'); if ($document_id) { FactorRow::where('factor_id', $factor->id)->delete(); //set row $inserts = []; $inserts_document = []; for ($i = 0; $i <= $num - 1; $i++) { $code = $formData['rows'][$i]['code']; $detailed_id = $formData['rows'][$i]['detailed']; $count = $formData['rows'][$i]['count']; $price = $formData['rows'][$i]['price']; $amount = $formData['rows'][$i]['amount']; if ($price) { $inserts_document[] = [ 'bes' => $price, 'bed' => 0, 'description' => $formData['description'], 'detailed_id' => $detailed_id, 'document_id' => $document_id, 'user_id' => $tenant_has_customers->services_id, 'created_at' => Carbon::now(), 'updated_at' => Carbon::now(), ]; $inserts_document[] = [ 'bes' => 0, 'bed' => $price, 'description' => $formData['description'], 'detailed_id' => $from_id, 'document_id' => $document_id, 'user_id' => $tenant_has_customers->services_id, 'created_at' => Carbon::now(), 'updated_at' => Carbon::now(), ]; $inserts[] = [ 'code' => $code, 'detailed_id' => $detailed_id, 'count' => $count, 'price' => $price, 'amount' => $amount, 'factor_id' => $factor->id, 'created_at' => Carbon::now(), 'updated_at' => Carbon::now(), ]; } } //insert-data FactorRow::insert($inserts); $order = Order::where('id', $factor->order_id)->first(); if ($order) { PaymentServices::where('services_id', $order->services_id)-> where('user_id', $order->user_id)->where('order_id', $order->id)->where('type_sell', 'فاکتور')->update([ 'liability' => self::replaceComma($formData['total_price']), 'creditor' => '0', 'date_deposit' => $formData['date'] . ' 00:00:00', ]); } self::makeSingleRowDocument('insert', $inserts_document, $document_id); self::makeReceipt($document_id, $filesystem); self::export_pdf($factor->id, $filesystem, $factor->order_id); } } } public static function decrement_count_product($order = null) { if ($order) { $groups = OrderGroup::where('order_id', $order->id)->get(); if (0 < count($groups)) { foreach ($groups as $item) { if ($item->product_id && $item->product_id != '0') { if ($item->product) { Product::where('id', $item->product_id)->update([ 'count' => $item->product->count - $item->sheets, ]); } } } } } } public static function create_buy_factor($formData, $filesystem, $services_id, $num) { //set $factor = Factor::create([ 'number' => $formData['number'], 'type' => 'buy', 'date' => $formData['date'], 'tel_seller' => $formData['tel_seller'], 'seller' => $formData['seller'], 'buyer' => $formData['buyer'], 'tel_buyer' => $formData['tel_buyer'], 'total' => self::replaceComma($formData['total']), 'discount' => self::replaceComma($formData['discount']), 'total_price' => self::replaceComma($formData['total_price']), 'description' => $formData['description'], 'services_id' => $services_id ]); $from_id = self::makeDetailed('بدهکاران', 'فروشندگان', $formData['seller'], $services_id); if ($from_id) { $document_data = [ "from_id" => $from_id, "to_id" => $services_id, "price" => self::replaceComma($formData['total_price']), "date" => $formData['date'], "factor_id" => $factor->id, "type" => 'insert', ]; $document_id = self::makeSingleDocument($document_data, Null, $services_id, 'factor'); if ($document_id) { $inserts = []; $inserts_document = []; //set row for ($i = 0; $i <= $num; $i++) { if (isset($formData['rows'][$i]['detailed'])) { $code = $formData['rows'][$i]['code']; $detailed_id = $formData['rows'][$i]['detailed']; $product_id = $formData['rows'][$i]['product_id']; $count = $formData['rows'][$i]['count']; $price = $formData['rows'][$i]['price']; $amount = $formData['rows'][$i]['amount']; Product::where('id', $product_id)->update([ 'count' => DB::raw('GREATEST(count + ' . $count . ',0)'), ]); if ($price) { $inserts_document[] = [ 'bes' => $price, 'bed' => 0, 'description' => $formData['description'], 'detailed_id' => $detailed_id, 'document_id' => $document_id, 'user_id' => $services_id, 'created_at' => Carbon::now(), 'updated_at' => Carbon::now(), ]; $inserts_document[] = [ 'bes' => 0, 'bed' => $price, 'description' => $formData['description'], 'detailed_id' => $from_id, 'document_id' => $document_id, 'user_id' => $services_id, 'created_at' => Carbon::now(), 'updated_at' => Carbon::now(), ]; $inserts[] = [ 'code' => $code, 'detailed_id' => $detailed_id, 'count' => $count, 'price' => $price, 'amount' => $amount, 'product_id' => $product_id, 'factor_id' => $factor->id, 'created_at' => Carbon::now(), 'updated_at' => Carbon::now(), ]; } } } //insert-data FactorRow::insert($inserts); self::makeSingleRowDocument('insert', $inserts_document); self::makeReceipt($document_id, $filesystem); self::export_pdf($factor->id, $filesystem); return 'ok'; } } } public static function create_factor($formData, $filesystem, $customer_id, $order = null, $num = 0) { $order_id = null; if ($order) { $order_id = $order->id; if ($order->type == 'slice') { self::decrement_count_product($order); } } //set $factor = Factor::create([ 'number' => $formData['number'], 'date' => $formData['date'], 'tel_seller' => $formData['tel_seller'], 'seller' => $formData['seller'], 'buyer' => $formData['buyer'], 'tel_buyer' => $formData['tel_buyer'], 'total' => self::replaceComma($formData['total']), 'discount' => self::replaceComma($formData['discount']), 'total_price' => self::replaceComma($formData['total_price']), 'description' => $formData['description'], 'user_id' => $customer_id, 'order_id' => $order_id, ]); $tenant_has_customers = TenantCustomer::where('id', $customer_id)->first(); if ($tenant_has_customers->first_name || $tenant_has_customers->last_name) { $name = $tenant_has_customers->first_name . ' ' . $tenant_has_customers->last_name; } else { $name = $tenant_has_customers->mobile; } $from_id = self::makeDetailed('بدهکاران', 'مشتریان', $name, $tenant_has_customers->services_id, $tenant_has_customers->user_id); if ($from_id) { $document_data = [ "from_id" => $from_id, "to_id" => $tenant_has_customers->services_id, "price" => self::replaceComma($formData['total_price']), "date" => $formData['date'], "factor_id" => $factor->id, "type" => 'insert', ]; $document_id = self::makeSingleDocument($document_data, $order_id, $tenant_has_customers->services_id, 'factor'); if ($document_id) { $inserts = []; $inserts_document = []; //set row for ($i = 0; $i <= $num; $i++) { if (isset($formData['rows'][$i]['detailed'])) { $code = $formData['rows'][$i]['code']; $detailed_id = $formData['rows'][$i]['detailed']; $count = $formData['rows'][$i]['count']; $price = $formData['rows'][$i]['price']; $amount = $formData['rows'][$i]['amount']; if ($price) { $inserts_document[] = [ 'bes' => $price, 'bed' => 0, 'description' => $formData['description'], 'detailed_id' => $detailed_id, 'document_id' => $document_id, 'user_id' => $tenant_has_customers->services_id, 'created_at' => Carbon::now(), 'updated_at' => Carbon::now(), ]; $inserts_document[] = [ 'bes' => 0, 'bed' => $price, 'description' => $formData['description'], 'detailed_id' => $from_id, 'document_id' => $document_id, 'user_id' => $tenant_has_customers->services_id, 'created_at' => Carbon::now(), 'updated_at' => Carbon::now(), ]; $inserts[] = [ 'code' => $code, 'detailed_id' => $detailed_id, 'count' => $count, 'price' => $price, 'amount' => $amount, 'factor_id' => $factor->id, 'created_at' => Carbon::now(), 'updated_at' => Carbon::now(), ]; } } } //insert-data FactorRow::insert($inserts); self::makeSingleRowDocument('insert', $inserts_document); self::makeReceipt($document_id, $filesystem); self::export_pdf($factor->id, $filesystem, $order_id); if ($order) { PaymentServices::create([ 'type_sell' => 'فاکتور', 'liability' => self::replaceComma($formData['total_price']), 'creditor' => '0', 'date_deposit' => $formData['date'] . ' 00:00:00', 'description' => 'ثبت فاکتور', 'order_id' => $order->id, 'user_id' => $order->user_id, 'services_id' => $order->services_id, ]); } return 'ok'; } } } public static function export_pdf($factor_id, $filesystem, $order_id = null) { //pdf $factor = Factor::where('id', $factor_id)->with(['rows', 'order', 'rows.detailed'])->first(); $data = ['factor' => $factor]; $path_all = pathReturn($filesystem, 'factors'); $path_pdf = $path_all[0]; $address_pdf = $path_all[1]; PDF::loadView('factore', $data, [])->save($path_pdf); Factor::where('id', $factor_id)->update([ 'pdf' => $address_pdf, ]); if ($order_id) { Order::where('id', $order_id)->update([ 'factor' => $address_pdf ]); } return $address_pdf; } public static function export_form($group_id, $filesystem) { //pdf $order_factor = OrderGroup::where('id', $group_id)->with('slices', 'user', 'customer', 'order.tenant', 'product')->first(); $data = ['group' => $order_factor]; $path_all = pathReturn($filesystem, 'factors'); $path_pdf = $path_all[0]; $address_pdf = $path_all[1]; PDF::loadView('exportPDF', $data, [])->save($path_pdf); OrderGroup::where('id', $group_id)->update([ 'order_form' => $address_pdf, ]); } public static function return_machinery($services_id) { //pdf $WinCAM = 'false'; $OptiCut = 'false'; $CutMaster = 'false'; $machineries = TenantIndustrialMachinery::where('tenant_id', $services_id)->get(); if (count($machineries) > 0) { foreach ($machineries as $value) { if ($value->type == 'WinCAM') { $WinCAM = 'true'; } if ($value->type == 'OptiCut') { $OptiCut = 'true'; } if ($value->type == 'CutMaster') { $CutMaster = 'true'; } } } return ['CutMaster' => $CutMaster, 'WinCAM' => $WinCAM, 'OptiCut' => $OptiCut]; } public static function sumCountSlice($length_one, $length_two, $width_one, $width_two, $width, $height, $count, $order) { $pvc = 3; if ($order->tenant) { if ($order->tenant->pvc) { $pvc = $order->tenant->pvc; } } $shiar = 0; if ($length_one == 3) { $shiar = $shiar + ((int)$count * (int)$height); } if ($length_two == 3) { $shiar = $shiar + ((int)$count * (int)$height); } if ($width_one == 3) { $shiar = $shiar + ((int)$count * (int)$width); } if ($width_two == 3) { $shiar = $shiar + ((int)$count * (int)$width); } $farsi = 0; if ($length_one == 2) { $farsi = $farsi + ((int)$count * (int)$height); } if ($length_two == 2) { $farsi = $farsi + ((int)$count * (int)$height); } if ($width_one == 2) { $farsi = $farsi + ((int)$count * (int)$width); } if ($width_two == 2) { $farsi = $farsi + ((int)$count * (int)$width); } $navar = 0; if ($length_one == 1) { $navar = $navar + ((int)$count * (int)$pvc) + ((int)$count * (int)$height); } if ($length_two == 1) { $navar = $navar + ((int)$count * (int)$pvc) + ((int)$count * (int)$height); } if ($width_one == 1) { $navar = $navar + ((int)$count * (int)$pvc) + ((int)$count * (int)$width); } if ($width_two == 1) { $navar = $navar + ((int)$count * (int)$pvc) + ((int)$count * (int)$width); } // Log::info([$navar,$farsi,$shiar]); return [$navar, $farsi, $shiar]; } public static function create_group_slice($filesystem, $form, $order, $customer, $services_id) { foreach ($form['groups'] as $g => $group) { //set_group $inserts = []; $navar = 0; $shiar = 0; $farsi = 0; $slice_count = 0; $res = OrderGroup::create([ 'product_id' => $group['product_id'] ? $group['product_id'] : Null, 'panel_width' => toEnDigit($group['panel_width'] ? $group['panel_width'] : '1000'), 'panel_height' => toEnDigit($group['panel_height'] ? $group['panel_height'] : '1000'), 'wood_thickness' => $group['wood_thickness'], 'panel_description' => $group['panel_description'] ? $group['panel_description'] : Null, 'color_strip' => $group['color_strip'] ? $group['color_strip'] : 'false', 'width_strip' => $group['width_strip'] ? $group['width_strip'] : 'false', 'height_strip' => $group['height_strip'] ? $group['height_strip'] : 'false', 'wood_type' => $group['wood_type'], 'rotatable' => $group['rotatable'], 'waste_woods' => count($group['waste_woods']) > 0 ? $group['waste_woods'] : null, 'cut_master' => 'pending', 'opticut' => 'pending', 'win_cam' => 'pending', 'order_id' => $order->id, 'user_id' => $form['user_id'], 'customer_id' => $customer->id, ]); foreach ($form['groups'][$g]['slices'] as $s => $slice) { $inserts[] = [ 'length_one' => $slice['length_one'], 'length_two' => $slice['length_two'], 'width_one' => $slice['width_one'], 'width_two' => $slice['width_two'], 'width' => toEnDigit($slice['width']), 'height' => toEnDigit($slice['length']), 'count' => toEnDigit($slice['count']), 'rotatable' => $slice['rotatable'], 'description' => $slice['description'], 'order_id' => $order->id, 'user_id' => $form['user_id'], 'order_group_id' => $res->id, 'created_at' => Carbon::now(), 'updated_at' => Carbon::now(), ]; $all = self::sumCountSlice($slice['length_one'], $slice['length_two'], $slice['width_one'], $slice['width_two'], $slice['width'], $slice['length'], $slice['count'], $order); $slice_count = (int)$slice_count + (int)$slice['count']; $navar = $navar + $all[0]; $farsi = $farsi + $all[1]; $shiar = $shiar + $all[2]; } if (count($inserts) > 0) { //insert-data OrderSlice::insert($inserts); OrderGroup::where('id', $res->id)->first()->update([ 'navar' => $navar, 'shiar' => $shiar, 'farsi' => $farsi, 'slice_count' => $slice_count, ]); //Export self::export_form($res->id, $filesystem); } } return $res; } public static function update_group_create_slice($filesystem, $form, $group) { $inserts = []; $navar = 0; $shiar = 0; $farsi = 0; $slice_count = 0; OrderGroup::where('id', $group->id)->update([ 'product_id' => $form['product_id'] ? $form['product_id'] : Null, 'panel_width' => toEnDigit($form['panel_width'] ? $form['panel_width'] : '1000'), 'panel_height' => toEnDigit($form['panel_height'] ? $form['panel_height'] : '1000'), 'wood_thickness' => $form['wood_thickness'], 'panel_description' => $form['panel_description'] ? $form['panel_description'] : Null, 'color_strip' => $form['color_strip'] ? $form['color_strip'] : 'false', 'width_strip' => $form['width_strip'] ? $form['width_strip'] : 'false', 'height_strip' => $form['height_strip'] ? $form['height_strip'] : 'false', 'wood_type' => $form['wood_type'], 'rotatable' => $form['rotatable'] ? true : false, 'waste_woods' => $form['waste_woods'] ?? [], 'cut_master' => 'pending', 'opticut' => 'pending', 'win_cam' => 'pending', 'opti_percent' => 0, 'opti_step' => 0, ]); foreach ($form['slices'] as $s => $slice) { $inserts[] = [ 'length_one' => $slice['length_one'], 'length_two' => $slice['length_two'], 'width_one' => $slice['width_one'], 'width_two' => $slice['width_two'], 'width' => toEnDigit($slice['width']), 'height' => toEnDigit($slice['length']), 'count' => toEnDigit($slice['count']), 'rotatable' => $slice['rotatable'], 'description' => $slice['description'], 'user_id' => $group->user_id, 'order_id' => $group->order_id, 'order_group_id' => $group->id, 'created_at' => Carbon::now(), 'updated_at' => Carbon::now(), ]; $all = self::sumCountSlice($slice['length_one'], $slice['length_two'], $slice['width_one'], $slice['width_two'], $slice['width'], $slice['length'], $slice['count'], $group->order); $slice_count = (int)$slice_count + (int)$slice['count']; $navar = $navar + $all[0]; $farsi = $farsi + $all[1]; $shiar = $shiar + $all[2]; } if (count($inserts) > 0) { //insert-data OrderSlice::insert($inserts); OrderGroup::where('id', $group->id)->update([ 'navar' => $navar, 'shiar' => $shiar, 'farsi' => $farsi, 'slice_count' => $slice_count, ]); //Export self::export_form($group->id, $filesystem); } } public static function processServices($order) { $groups= OrderGroup::where('order_id',$order->id)->get(); foreach ($groups as $row) { $navar=0; $shiar=0; $farsi=0; $slice_count=0; foreach ($row->slices as $obj) { $all=self::sumCountSlice($obj->length_one, $obj->length_two,$obj->width_one,$obj->width_two,abs($obj->width),abs($obj->height),abs($obj->count),$order); $slice_count=(int)$slice_count + (int)abs($obj->count); $navar=$navar+ $all[0]; $farsi=$farsi+ $all[1]; $shiar=$shiar+ $all[2]; } $row->update([ 'navar'=>$navar, 'shiar'=>$shiar, 'farsi'=>$farsi, 'slice_count'=>$slice_count, ]); } } public static function setLabel($order_id) { $groups=UnitList:: where('project_id', $order_id) ->orderBy('unit_lists.id', 'desc') ->with([ 'attach' ]) ->get()->groupBy(['uid'])->toArray(); $i=0; foreach ($groups as $a => $row) { foreach ($row as $liKey => $listItem) { foreach ($listItem['attach'] as $slice) { OrderSlice::where('attach_id',$slice['id'])->update([ 'label'=> $i+1 ]); } $i++; } } } }
Coded With 💗 by
0x6ick Mod By V1rus_Alfa