Anons79 Mini Shell

Directory : /home/aplikasiposinfo/www/hayyumart.com/app/Helpers/
Upload File :
Current File : /home/aplikasiposinfo/www/hayyumart.com/app/Helpers/Helper.php

<?php
namespace App\Helpers;
 
use Illuminate\Support\Facades\DB;
use App\Profil;
use App\HargaBarang;
use App\Barang;
use App\Level;
use App\Jenis;
use App\PettyCash;
use App\MetodeBayar;
use App\Merek;
use App\Kategori;
use App\Member;
use App\Bank;
use App\Supplier;
use App\Satuan;
use App\User;
use App\Pelanggan;
use App\Penjualan;
use App\DetailPenjualan;
use App\Hutang;
use App\Pembelian;
use App\Realisasi;
use App\PermohonanDana;
use App\PermintaanBarang;
use App\PembayaranSupplier;
use App\DetailPembelian;
use App\Piutang;
use App\BayarPenjualan;
use App\BayarPembelian;
use App\ReturPenjualan;
use App\DetailReturPenjualan;
use App\ReturPembelian;
use App\DetailReturPembelian;

use App\UserLog;
use Carbon\Carbon;
use Auth;
use App\Bonus;
use App\Setting;

use Illuminate\Http\Request;
use Alert;
use Artisan;
use Log;
use Storage;
use Backup;

class Helper {
    /**
     * @param int $user_id User-id
     * 
     * @return string
     */
    public static function get_profil() {
        $profil = Profil::where('dipilih',1)->first();
        return $profil;
    }

    public static function get_kota() {
        $profil = Profil::where('dipilih',1)->first();
        return $profil;
    }

    public static function logo()
    {
        $logo = 'teteslogo.png';
        if(Helper::get_profil()->logo != '' || Helper::get_profil()->logo != null){
            $logo = Helper::get_profil()->logo;
        }
        return $logo;
    }

    public static function logo2()
    {
        $logo = 'tinylite.png';
        if(Helper::get_profil()->logo2 != '' || Helper::get_profil()->logo2 != null){
            $logo = Helper::get_profil()->logo2;
        }
        return $logo;
    }

    public static function getNotif($limit = 10)
    {
        $notifs = [];
        
        $pembelian = Pembelian::whereNull('rejected_id')->orderBy('created_at','DESC')->whereNull('received_id')->limit($limit)->get();

        $realisasi = Realisasi::whereNull('rejected_id')->orderBy('created_at','DESC')->whereNull('received_id')->limit($limit)->get();

        $permohonan_dana = PermohonanDana::orderBy('created_at','DESC')->whereNull('rejected_id')->whereNull('reviewed_id')->limit($limit)->get();

        $permintaan_barang = PermintaanBarang::orderBy('created_at','DESC')->whereNull('rejected_id')->whereNull('approved_id')->limit($limit)->get();

        $pembayaran_supplier = PembayaranSupplier::orderBy('created_at','DESC')->whereNull('rejected_id')->whereNull('reviewed_id')->limit($limit)->get();

        foreach ($pembelian as $d) {
            if ($d->status == 'Prepared' && \Auth::user()->check_menu("Pembelian Barang", "Review")) {
                $notifs[] = [
                    'notif' => 'Purchase Order dengan nomor Pembelian : ' . $d->no_pembelian . ' sedang menunggu di-'.$d->next_status,
                    'link' => url('approve_pembelian/'.$d->no_pembelian)
                ];
            }

            if ($d->status == 'Reviewed' && \Auth::user()->check_menu("Pembelian Barang", "Receive")) {
                $notifs[] = [
                    'notif' => 'Purchase Order dengan nomor Pembelian : ' . $d->no_pembelian . ' sedang menunggu di-'.$d->next_status,
                    'link' => url('approve_pembelian/'.$d->no_pembelian)
                ];
            }
        }

        foreach ($realisasi as $d) {
            if ($d->status == 'Proses Input' && \Auth::user()->check_menu("Realisasi", "View")) {
                $notifs[] = [
                    'notif' => 'Realisasi dengan nomor Pembelian : ' . $d->no_pembelian . ' sedang menunggu di-'.$d->next_status,
                    'link' => url('realisasi/')
                ];
            }

            if ($d->status == 'Prepared' && \Auth::user()->check_menu("Realisasi", "Review")) {
                $notifs[] = [
                    'notif' => 'Realisasi dengan nomor Pembelian : ' . $d->no_pembelian . ' sedang menunggu di-'.$d->next_status,
                    'link' => url('approve_realisasi/'.$d->id)
                ];
            }

            if ($d->status == 'Reviewed' && \Auth::user()->check_menu("Realisasi", "Approve")) {
                $notifs[] = [
                    'notif' => 'Realisasi dengan nomor Pembelian : ' . $d->no_pembelian . ' sedang menunggu di-'.$d->next_status,
                    'link' => url('approve_realisasi/'.$d->id)
                ];
            }

            if ($d->status == 'Approved' && \Auth::user()->check_menu("Realisasi", "Receive")) {
                $notifs[] = [
                    'notif' => 'Realisasi dengan nomor Pembelian : ' . $d->no_pembelian . ' sedang menunggu di-'.$d->next_status,
                    'link' => url('approve_realisasi/'.$d->id)
                ];
            }
        }

        foreach ($permohonan_dana as $d) {
            if ($d->status == 'Prepared' && \Auth::user()->check_menu("Permohonan Dana", "Approve")) {
                $notifs[] = [
                    'notif' => 'Permohonan Dana dengan nomor : ' . $d->nomor . ' sedang menunggu di-'.$d->next_status,
                    'link' => url('approve_permohonan_dana/'.$d->id)
                ];
            }

            if ($d->status == 'Approved' && \Auth::user()->check_menu("Permohonan Dana", "Review")) {
                $notifs[] = [
                    'notif' => 'Permohonan Dana dengan nomor : ' . $d->nomor . ' sedang menunggu di-'.$d->next_status,
                    'link' => url('approve_permohonan_dana/'.$d->id)
                ];
            }
        }

        foreach ($permintaan_barang as $d) {
            if ($d->status == 'Prepared' && \Auth::user()->check_menu("Permintaan Barang", "Approve")) {
                $notifs[] = [
                    'notif' => 'Permintaan Barang dengan nomor : ' . $d->nomor . ' sedang menunggu di-'.$d->next_status,
                    'link' => url('approve_permintaan_barang/'.$d->id)
                ];
            }
        }

        foreach ($pembayaran_supplier as $d) {

            if ($d->status == 'Prepared' && \Auth::user()->check_menu("Pembayaran Supplier", "Approve")) {
                $notifs[] = [
                    'notif' => 'Permohonan Pembayaran Supplier dengan nomor pembayaran : ' . $d->no_pembayaran . ' sedang menunggu di-'.$d->next_status,
                    'link' => url('approve_pembayaran_supplier/'.$d->no_pembayaran)
                ];
            }
            
            if ($d->status == 'Approved' && \Auth::user()->check_menu("Pembayaran Supplier", "Review")) {
                $notifs[] = [
                    'notif' => 'Permohonan Pembayaran Supplier dengan nomor pembayaran : ' . $d->no_pembayaran . ' sedang menunggu di-'.$d->next_status,
                    'link' => url('approve_pembayaran_supplier/'.$d->no_pembayaran)
                ];
            }
        }

        return $notifs;
    }

    public static function jumlah_notif()
    {   
        $pembelian = Pembelian::whereNull('rejected_id')->orderBy('created_at','DESC')->whereNull('received_id')->count();

        $realisasi = Realisasi::whereNull('rejected_id')->orderBy('created_at','DESC')->whereNull('received_id')->count();

        $permohonan_dana = PermohonanDana::orderBy('created_at','DESC')->whereNull('rejected_id')->whereNull('reviewed_id')->count();

        $permintaan_barang = PermintaanBarang::orderBy('created_at','DESC')->whereNull('rejected_id')->whereNull('approved_id')->count();

        $pembayaran_supplier = PembayaranSupplier::orderBy('created_at','DESC')->whereNull('rejected_id')->whereNull('reviewed_id')->count();
        return $pembelian+$realisasi+$permohonan_dana+$permintaan_barang+$pembayaran_supplier;
    }

    public static function notifikasi_stok_barang()
    {
        $notifs = Helper::getNotif(10);

        ?>
            <?php if(count($notifs) <= 0)echo "<h4>Tidak Ada Notifikasi</h4>"; ?>
            <ul>
        <?php
        foreach ($notifs as $notif) {
            ?>
                <li><a href="<?php echo $notif['link'] ?>" class="clearfix"><span class="ni w-green"><i class="fa fa-bell"></i></span><span class="notification-message"><?php echo $notif['notif'] ?></span></a>
                </li>
            <?php
        }

        ?>
            </ul>
             <a href="<?=url('pembelian.index');?>" class="btn btn-primary btn-block waves-effect">Pembelian</a>
             <a href="<?=url('realisasi.index');?>" class="btn btn-primary btn-block waves-effect">Realisasi</a>
             <a href="<?=url('permohonan-dana.index');?>" class="btn btn-primary btn-block waves-effect">Permohonan Dana</a>
             <a href="<?=url('pembayaran-supplier.index');?>" class="btn btn-primary btn-block waves-effect">Pembayaran Supplier</a>
        <?php

    }

    public static function notifikasi_user_log_rightbar()
    {
        $users = UserLog::limit(10)->orderBy('created_at','DESC')->get();
        ?>
            <?php if(Helper::jumlah_notif() <= 0)echo "<h4>Tidak Ada Notifikasi</h4>"; ?>
            <ul>
        <?php
        foreach ($users as $user) {
            ?>
                <li><a href="<?= url('user/'.$user->kd_barang.'/edit') ?>" class="clearfix"><span class="ni w-green"><i class="fa fa-clock-o"></i></span><span class="notification-message"><?php echo $user->user->name." ".$user->keterangan; ?><span class="notification-time clearfix"><?php echo Carbon::parse($user->updated_at)->diffForHumans(); ?></span></span></a>
                </li>
            <?php
        }

        ?>
            </ul>
            <a href="<?=url('user-log');?>" class="btn btn-primary btn-block notification-btn clearfix waves-effect">Selengkepanya</a>
        <?php

    }

    public static function add_user_log($kegiatan)
    {
        UserLog::create(['id_user'=>Auth::user()->id,'keterangan'=>$kegiatan]);
    }


    public static function cek_akses($nama_menu,$aksi){
        $cek = Level::whereHas('Menu',function ($q) use($nama_menu,$aksi)
        {
            $q->where('nm_menu', $nama_menu)
                ->where('aksi_menu', $aksi);
        })->where('id',Auth::user()->level->id)->count();
        if ( $cek > 0 ) {
            return true;
        } else {
            return false;
        }
    }

    public static function list_backup($limit = null)
    {
        $disk = Storage::disk('backup');
        $files = $disk->files(config('backup.backup.name'));
        $backups = [];
        // make an array of backup files, with their filesize and creation date
        $number = 0;
            
        foreach ($files as $k => $f) {
            // only take the zip files into account
            if($limit != null && $number < $limit || $limit == null):
                if (substr($f, -4) == '.zip' && $disk->exists($f)) {
                    $time = \DateTime::createFromFormat("U",$disk->lastModified($f));
                    $time->setTimeZone(new \DateTimeZone('Asia/Kuala_Lumpur'));
                    $backups[] = [
                        'file_path' => $f,
                        'file_name' => str_replace(config('backup.backup.name').'/', '', $f),
                        'file_size' => $disk->size($f),
                        'last_modified' => $disk->lastModified($f),
                        'time'=>$time
                    ];
                }
            endif;
        }
        // reverse the backups, so the newest one would be on top
        $backups = array_reverse($backups);

        return $backups;
    }

    public static function createNoInvoice($type)
    {
        $result = '';
        if ($type == "Pembelian") {
            $l = Pembelian::withTrashed()->count();
            $kd = "PO-0000000000";
            for ($i=0; $i <= $l; $i++) { 
                ++$kd;
            }
            $kd = $kd . "/" . date("d") . "/" . \Helper::toRoman(date('m')) . "/" . date("Y");
        }elseif($type == "Pembayaran Supplier") {
            // $l = PembayaranSupplier::withTrashed()->count();
            // $kd = "PS-0000000000";
            // for ($i=0; $i <= $l; $i++) { 
            //     ++$kd;
            // }

            $l = PembayaranSupplier::withTrashed()->orderBy('created_at','DESC')->first();
            $kd = "PS-0000000001";
            if($l){
                $kd = $l->no_pembayaran;
                $kd = "PS-".sprintf("%010d", (int)str_replace("PS-","",$kd)+1);

            }
            $kd = $kd . "/" . date("d") . "/" . \Helper::toRoman(date('m')) . "/" . date("Y");
        }
        return $kd;

    }

    public static function toNumber($angka) {
        return str_replace('.', '', $angka);
    }

    public static function checkPettyCash() {
        $petty_cash = PettyCash::where('tanggal', date('Y-m-d'))->first();
        return $petty_cash ? True: False;
    }

    public static function getKode() {
        return Setting::first();
    }

    public static function getJenis() {
        return Jenis::all();
    }

    public static function getMetode() {
        return MetodeBayar::all();
    }

    public static function getMerek() {
        return Merek::all();
    }

    public static function getKategori() {
        return Kategori::all();
    }

    public static function sinkronButton($url){
        // Jika Local, Tampilkan Tombol Sinkron
        // if ( url('') != \Helper::getUrlServer() ) {
        //     $url = 'sinkron/request/'.$url;
        //     echo "<a href='".$url."' class='btn  btn-success '> <i class='fa fa-refresh'></i> Sinkron Server</a>";
        // }
    }
    
     public static function notifikasi_status_jasa()
    {
        $jasas = DB::select('select * from jasas where status = 0 limit 10');
        ?>
            <?php if(count(DB::select('select * from jasas where status = 0')) <= 0)echo "<h4>Tidak Ada Notifikasi</h4>"; ?>
            <ul>
        <?php
        foreach ($jasas as $jasa) {
            ?>
                <li><a href="<?= url('jasa/'.$jasa->no_jasa.'/edit') ?>" class="clearfix"><span class="ni w-green"><i class="fa fa-bullhorn"></i></span><span class="notification-message"><?php echo "Transaksi Jasa ".$jasa->no_jasa." Sedang dikerjakan"; ?><span class="notification-time clearfix"><?php echo Carbon::parse($jasa->updated_at)->diffForHumans(); ?></span></span></a>
                </li>
            <?php
        }
        
        ?>
            </ul>
        <?php

    }

    
    public static function getBonus(){
        $bonus = Bonus::where('id', 1)->first();
        return $bonus;
    }

    public static function http_get($url)
    {
        try {
        $curl = curl_init();

        curl_setopt_array($curl, array(
            CURLOPT_URL => $url,
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_ENCODING => "",
            CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
            CURLOPT_CUSTOMREQUEST => "GET",
            CURLOPT_HTTPHEADER => array(
                // Set Here Your Requesred Headers
                'Content-Type: application/json',
            ),
        ));
        $response = curl_exec($curl);
        $err = curl_error($curl);
        curl_close($curl);

        return $response;
        
        } catch (\Throwable $th) {
            return response()->json([
                'error' => $th->getMessage(),
            ]);
        }
        
    }

    public static function http_post($url, $data)
    {
        try {
        $curl = curl_init();

        curl_setopt_array($curl, array(
            CURLOPT_URL => $url,
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_ENCODING => "",
            CURLOPT_MAXREDIRS => 10,
            CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
            CURLOPT_CUSTOMREQUEST => "POST",
            CURLOPT_POSTFIELDS => json_encode($data),
            CURLOPT_HTTPHEADER => array(
                // Set here requred headers
                "accept: */*",
                "accept-language: en-US,en;q=0.8",
                "content-type: application/json",
            ),
        ));

        $response = curl_exec($curl);
        $err = curl_error($curl);
        curl_close($curl);

        return $response;

        } catch (\Throwable $th) {
            return response()->json([
                'error' => $th->getMessage(),
            ]);
        }
    }



    public static function strtotime() {
        return strtotime(date('Y-m-d H:i:s'));
    }

    public static function getUrlServer() {
        return Profil::first()->url_server;
    }

    public static function getApiKey() {
        return 'q17v3gAX3KIsDX9e';
    }

    // SEND REQUEST SINKRON SERVER

    // MEMBER
    public static function reqMember(){
        $member = Member::where('sinkron', '0')->withTrashed()->get();
        $data = [
            'key' => \Helper::getApiKey(),
            'data' => $member,
        ];

        $urlServer = \Helper::getUrlServer();
    
        $request = \Helper::http_post($urlServer.'/api/sinkron/response/member', $data);
        
        $result = json_decode($request, TRUE);

        if ($result['status_code'] == 200) {
            Member::where('sinkron', '0')->withTrashed()->update(['sinkron' => '1']);

            foreach ($result['data'] as $data) {
                Member::withTrashed()->updateOrCreate(
                    [
                        'kd_sinkron' => $data['kd_sinkron']
                    ],
                    [
                        'sinkron' => '1',
                        'nm_member'=>$data['nm_member'],
                        'keterangan'=>$data['keterangan'],
                        'limit_hutang'=>$data['limit_hutang'],
                        'deleted_at'=>$data['deleted_at'],
                    ]
                );
            }
        }

        return $result;
    }

    //BANK
    public static function reqBank(){
        $bank = Bank::where('sinkron', '0')->withTrashed()->get();
        $data = [
            'key' => \Helper::getApiKey(),
            'data' => $bank,
        ];

        $urlServer = \Helper::getUrlServer();
    
        $request = \Helper::http_post($urlServer.'/api/sinkron/response/bank', $data);
        
        $result = json_decode($request, TRUE);

        if ($result['status_code'] == 200) {
            Bank::where('sinkron', '0')->withTrashed()->update(['sinkron' => '1']);

            foreach ($result['data'] as $data) {
                Bank::withTrashed()->updateOrCreate(
                    [
                        'kd_sinkron' => $data['kd_sinkron']
                    ],
                    [
                        'sinkron' => '1',
                        'nm_bank'=>$data['nm_bank'],
                        'deleted_at'=>$data['deleted_at'],
                    ]
                );
            }
        }

        return $result;
    }

    //SUPPIER
    public static function reqSupplier(){
        $supplier = Supplier::where('sinkron', '0')->withTrashed()->get();
        $data = [
            'key' => \Helper::getApiKey(),
            'data' => $supplier,
        ];

        $urlServer = \Helper::getUrlServer();
    
        $request = \Helper::http_post($urlServer.'/api/sinkron/response/supplier', $data);
        
        $result = json_decode($request, TRUE);

        if ($result['status_code'] == 200) {
            Supplier::where('sinkron', '0')->withTrashed()->update(['sinkron' => '1']);

            foreach ($result['data'] as $data) {
                Supplier::withTrashed()->updateOrCreate(
                    [
                        'kd_supplier' => $data['kd_supplier']
                    ],
                    [
                        'sinkron' => '1',
                        'nm_supplier'=>$data['nm_supplier'],
                        'alamat'=>$data['alamat'],
                        'no_telepon'=>$data['no_telepon'],
                        'no_wa'=>$data['no_wa'],
                        'deleted_at'=>$data['deleted_at'],
                    ]
                );
            }
        }

        return $result;
    }


    //SATUAN
    public static function reqSatuan(){
        $satuan = Satuan::where('sinkron', '0')->withTrashed()->get();
        $data = [
            'key' => \Helper::getApiKey(),
            'data' => $satuan,
        ];

        $urlServer = \Helper::getUrlServer();
    
        $request = \Helper::http_post($urlServer.'/api/sinkron/response/satuan', $data);
        
        $result = json_decode($request, TRUE);

        if ($result['status_code'] == 200) {
            Satuan::where('sinkron', '0')->withTrashed()->update(['sinkron' => '1']);

            foreach ($result['data'] as $data) {
                Satuan::withTrashed()->updateOrCreate(
                    [
                        'kd_satuan' => $data['kd_satuan']
                    ],
                    [
                        'sinkron' => '1',
                        'nm_satuan'=>$data['nm_satuan'],
                        'deleted_at'=>$data['deleted_at'],
                    ]
                );
            }
        }

        return $result;
    }



    //Kategori
    public static function reqKategori(){
        $kategori = Kategori::where('sinkron', '0')->withTrashed()->get();
        $data = [
            'key' => \Helper::getApiKey(),
            'data' => $kategori,
        ];

        $urlServer = \Helper::getUrlServer();
    
        $request = \Helper::http_post($urlServer.'/api/sinkron/response/kategori', $data);
        
        $result = json_decode($request, TRUE);

        if ($result['status_code'] == 200) {
            Kategori::where('sinkron', '0')->withTrashed()->update(['sinkron' => '1']);

            foreach ($result['data'] as $data) {
                Kategori::withTrashed()->updateOrCreate(
                    [
                        'kd_kategori' => $data['kd_kategori']
                    ],
                    [
                        'sinkron' => '1',
                        'nm_kategori'=>$data['nm_kategori'],
                        'deleted_at'=>$data['deleted_at'],
                    ]
                );
            }
        }

        return $result;
    }



    //JENIS
    public static function reqJenis(){
        $jenis = Jenis::where('sinkron', '0')->withTrashed()->get();
        $data = [
            'key' => \Helper::getApiKey(),
            'data' => $jenis,
        ];

        $urlServer = \Helper::getUrlServer();
    
        $request = \Helper::http_post($urlServer.'/api/sinkron/response/jenis', $data);
        
        $result = json_decode($request, TRUE);

        if ($result['status_code'] == 200) {
            Jenis::where('sinkron', '0')->withTrashed()->update(['sinkron' => '1']);

            foreach ($result['data'] as $data) {
                Jenis::withTrashed()->updateOrCreate(
                    [
                        'kd_jenis' => $data['kd_jenis']
                    ],
                    [
                        'sinkron' => '1',
                        'nm_jenis'=>$data['nm_jenis'],
                        'kd_kategori'=>$data['kd_kategori'],
                        'deleted_at'=>$data['deleted_at'],
                    ]
                );
            }
        }

        return $result;
    }

    //LEVEL
    public static function reqLevel(){
        $level = Level::where('sinkron', '0')->withTrashed()->get();
        $data = [
            'key' => \Helper::getApiKey(),
            'data' => $level,
        ];

        $urlServer = \Helper::getUrlServer();
    
        $request = \Helper::http_post($urlServer.'/api/sinkron/response/level', $data);
        
        $result = json_decode($request, TRUE);

        if ($result['status_code'] == 200) {
            Level::where('sinkron', '0')->withTrashed()->update(['sinkron' => '1']);

            foreach ($result['data'] as $data) {
                Level::withTrashed()->updateOrCreate(
                    [
                        'kd_sinkron' => $data['kd_sinkron']
                    ],
                    [
                        'sinkron' => '1',
                        'nm_level'=>$data['nm_level'],
                        'deleted_at'=>$data['deleted_at'],
                    ]
                );
            }
        }

        return $result;
    }


    public static function reqMetodeBayar(){
        $metode_bayar = MetodeBayar::where('sinkron', '0')->withTrashed()->get();
        $data = [
            'key' => \Helper::getApiKey(),
            'data' => $metode_bayar,
        ];

        $urlServer = \Helper::getUrlServer();
    
        $request = \Helper::http_post($urlServer.'/api/sinkron/response/metode_bayar', $data);
        
        $result = json_decode($request, TRUE);

        if ($result['status_code'] == 200) {
            MetodeBayar::where('sinkron', '0')->withTrashed()->update(['sinkron' => '1']);

            foreach ($result['data'] as $data) {
                MetodeBayar::withTrashed()->updateOrCreate(
                    [
                        'kd_sinkron' => $data['kd_sinkron']
                    ],
                    [
                        'sinkron' => '1',
                        'metode'=>$data['metode'],
                        'keterangan'=>$data['keterangan'],
                        'deleted_at'=>$data['deleted_at'],
                    ]
                );
            }
        }

        return $result;
    }


    //User
    public static function reqUser(){
        $user = User::where('sinkron', '0')->withTrashed()->get()->makeVisible(['password']);
        $data = [
            'key' => \Helper::getApiKey(),
            'data' => $user,
        ];

        $urlServer = \Helper::getUrlServer();
    
        $request = \Helper::http_post($urlServer.'/api/sinkron/response/user', $data);
        
        $result = json_decode($request, TRUE);

        if ($result['status_code'] == 200) {
            User::where('sinkron', '0')->withTrashed()->update(['sinkron' => '1']);

            foreach ($result['data'] as $data) {
                User::withTrashed()->updateOrCreate(
                    [
                        'kd_sinkron' => $data['kd_sinkron']
                    ],
                    [
                        'sinkron' => '1',
                        'name'=>$data['name'],
                        'username'=>$data['username'],
                        'password'=>$data['password'],
                        'level_id'=>$data['level_id'],
                        'image'=>$data['image'],
                        'deleted_at'=>$data['deleted_at'],
                    ]
                );
            }
        }

        return $result;
    }



    // PELANGGAN
    public static function reqPelanggan(){
        $pelanggan = Pelanggan::where('sinkron', '0')->withTrashed()->get();
        $data = [
            'key' => \Helper::getApiKey(),
            'data' => $pelanggan,
        ];

        $urlServer = \Helper::getUrlServer();
    
        $request = \Helper::http_post($urlServer.'/api/sinkron/response/pelanggan', $data);
        
        $result = json_decode($request, TRUE);

        if ($result['status_code'] == 200) {
            Pelanggan::where('sinkron', '0')->withTrashed()->update(['sinkron' => '1']);

            foreach ($result['data'] as $data) {
                Pelanggan::withTrashed()->updateOrCreate(
                    [
                        'kd_pelanggan' => $data['kd_pelanggan']
                    ],
                    [
                        'sinkron' => '1',
                        'nm_pelanggan'=>$data['nm_pelanggan'],
                        'alamat'=>$data['alamat'],
                        'member_id'=>$data['member_id'],
                        'kota'=>$data['kota'],
                        'no_telepon'=>$data['no_telepon'],
                        'deleted_at'=>$data['deleted_at'],
                    ]
                );
            }
        }

        return $result;
    }


    // BARANG
    public static function reqBarang(){
        $barang = Barang::where('sinkron', '0')->withTrashed()->get();
        $data = [
            'key' => \Helper::getApiKey(),
            'data' => $barang,
        ];

        $urlServer = \Helper::getUrlServer();
    
        $request = \Helper::http_post($urlServer.'/api/sinkron/response/barang', $data);
        
        $result = json_decode($request, TRUE);

        if ($result['status_code'] == 200) {
            Barang::where('sinkron', '0')->withTrashed()->update(['sinkron' => '1']);

            foreach ($result['data'] as $data) {
                Barang::withTrashed()->updateOrCreate(
                    [
                        'kd_barang' => $data['kd_barang']
                    ],
                    [
                        'sinkron' => '1',
                        'nm_barang'=>$data['nm_barang'],
                        'gambar_barang'=>$data['gambar_barang'],
                        'kd_jenis'=>$data['kd_jenis'],
                        'kd_kategori'=>$data['kd_kategori'],
                        'kd_merek'=>$data['kd_merek'],
                        'stok'=>$data['stok'],
                        'stok_opname'=>$data['stok_opname'],
                        'stok_minimal'=>$data['stok_minimal'],
                        'stok_maksimal'=>$data['stok_maksimal'],
                        'kd_satuan_stok'=>$data['kd_satuan_stok'],
                        'deleted_at'=>$data['deleted_at'],
                    ]
                );
            }
        }

        return $result;
    }



    // HARGA BARANG
    public static function reqHargaBarang(){
        $harga_barang = HargaBarang::where('sinkron', '0')->withTrashed()->get();
        $data = [
            'key' => \Helper::getApiKey(),
            'data' => $harga_barang,
        ];

        $urlServer = \Helper::getUrlServer();
    
        $request = \Helper::http_post($urlServer.'/api/sinkron/response/harga_barang', $data);
        
        $result = json_decode($request, TRUE);

        if ($result['status_code'] == 200) {
            HargaBarang::where('sinkron', '0')->withTrashed()->update(['sinkron' => '1']);

            foreach ($result['data'] as $data) {
                HargaBarang::withTrashed()->updateOrCreate(
                    [
                        'kd_sinkron' => $data['kd_sinkron']
                    ],
                    [
                        'sinkron' => '1',
                        'kd_barang'=>$data['kd_barang'],
                        'kd_satuan_beli'=>$data['kd_satuan_beli'],
                        'beli_isi'=>$data['beli_isi'],
                        'kd_satuan_jual'=>$data['kd_satuan_jual'],
                        'harga_beli'=>$data['harga_beli'],
                        'harga_jual'=>$data['harga_jual'],
                        'diskon'=>$data['diskon'],
                        'jumlah_persatuan_beli'=>$data['jumlah_persatuan_beli'],
                        'jumlah_persatuan_jual'=>$data['jumlah_persatuan_jual'],
                        'deleted_at'=>$data['deleted_at'],
                    ]
                );
            }
        }

        return $result;
    }


    // PENJUALAN
    public static function reqPenjualan(){
        $penjualan = Penjualan::where('sinkron', '0')->withTrashed()->get();
        $data = [
            'key' => \Helper::getApiKey(),
            'data' => $penjualan,
        ];

        $urlServer = \Helper::getUrlServer();
    
        $request = \Helper::http_post($urlServer.'/api/sinkron/response/penjualan', $data);
        
        $result = json_decode($request, TRUE);

        if ($result['status_code'] == 200) {
            Penjualan::where('sinkron', '0')->withTrashed()->update(['sinkron' => '1']);

            foreach ($result['data'] as $data) {
                Penjualan::withTrashed()->updateOrCreate(
                    [
                        'no_penjualan' => $data['no_penjualan']
                    ],
                    [
                        'sinkron' => '1',
                        'tgl_penjualan'=>$data['tgl_penjualan'],
                        'kd_pelanggan'=>$data['kd_pelanggan'],
                        'keterangan'=>$data['keterangan'],
                        'ket'=>$data['ket'],
                        'kode_bank'=>$data['kode_bank'],
                        'bank_id'=>$data['bank_id'],
                        'ongkos_kirim'=>$data['ongkos_kirim'],
                        'uang_bayar'=>$data['uang_bayar'],
                        'id_user'=>$data['id_user'],
                        'id_courier'=>$data['id_courier'],
                        'deleted_at'=>$data['deleted_at'],
                    ]
                );
            }
        }

        return $result;
    }

    //DETAIL PENJUALAN
    public static function reqDetailPenjualan(){
        $detail_penjualan = DetailPenjualan::where('sinkron', '0')->withTrashed()->get();
        $data = [
            'key' => \Helper::getApiKey(),
            'data' => $detail_penjualan,
        ];

        $urlServer = \Helper::getUrlServer();
    
        $request = \Helper::http_post($urlServer.'/api/sinkron/response/detail_penjualan', $data);
        
        $result = json_decode($request, TRUE);

        if ($result['status_code'] == 200) {
            DetailPenjualan::where('sinkron', '0')->withTrashed()->update(['sinkron' => '1']);

            foreach ($result['data'] as $data) {
                DetailPenjualan::withTrashed()->updateOrCreate(
                    [
                        'kd_sinkron' => $data['kd_sinkron']
                    ],
                    [
                        'sinkron' => '1',
                        'no_penjualan'=>$data['no_penjualan'],
                        'id_harga_barang'=>$data['id_harga_barang'],
                        'diskon'=>$data['diskon'],
                        'jumlah'=>$data['jumlah'],
                        'deleted_at'=>$data['deleted_at'],
                    ]
                );
            }
        }

        return $result;
    }

    //PIUTANG
    public static function reqPiutang(){
        $piutang = Piutang::where('sinkron', '0')->withTrashed()->get();
        $data = [
            'key' => \Helper::getApiKey(),
            'data' => $piutang,
        ];

        $urlServer = \Helper::getUrlServer();
    
        $request = \Helper::http_post($urlServer.'/api/sinkron/response/piutang', $data);
        
        $result = json_decode($request, TRUE);

        if ($result['status_code'] == 200) {
            Piutang::where('sinkron', '0')->withTrashed()->update(['sinkron' => '1']);

            foreach ($result['data'] as $data) {
                Piutang::withTrashed()->updateOrCreate(
                    [
                        'no_piutang' => $data['no_piutang']
                    ],
                    [
                        'sinkron' => '1',
                        'no_penjualan'=>$data['no_penjualan'],
                        'sisa_piutang'=>$data['sisa_piutang'],
                        'deleted_at'=>$data['deleted_at'],
                    ]
                );
            }
        }

        return $result;
    }

    //BAYAR PENJUALAN
    public static function reqBayarPenjualan(){
        $bayar_penjualan = BayarPenjualan::where('sinkron', '0')->withTrashed()->get();
        $data = [
            'key' => \Helper::getApiKey(),
            'data' => $bayar_penjualan,
        ];

        $urlServer = \Helper::getUrlServer();
    
        $request = \Helper::http_post($urlServer.'/api/sinkron/response/bayar_penjualan', $data);
        
        $result = json_decode($request, TRUE);

        if ($result['status_code'] == 200) {
            BayarPenjualan::where('sinkron', '0')->withTrashed()->update(['sinkron' => '1']);

            foreach ($result['data'] as $data) {
                BayarPenjualan::withTrashed()->updateOrCreate(
                    [
                        'no_bayar_penjualan' => $data['no_bayar_penjualan']
                    ],
                    [
                        'sinkron' => '1',
                        'no_piutang'=>$data['no_piutang'],
                        'tgl_bayar_penjualan'=>$data['tgl_bayar_penjualan'],
                        'uang_bayar'=>$data['uang_bayar'],
                        'id_user'=>$data['id_user'],
                        'deleted_at'=>$data['deleted_at'],
                    ]
                );
            }
        }

        return $result;
    }


    // PEMBELIAN
    public static function reqPembelian(){
        $pembelian = Pembelian::where('sinkron', '0')->withTrashed()->get();
        $data = [
            'key' => \Helper::getApiKey(),
            'data' => $pembelian,
        ];

        $urlServer = \Helper::getUrlServer();
    
        $request = \Helper::http_post($urlServer.'/api/sinkron/response/pembelian', $data);
        
        $result = json_decode($request, TRUE);

        if ($result['status_code'] == 200) {
            Pembelian::where('sinkron', '0')->withTrashed()->update(['sinkron' => '1']);

            foreach ($result['data'] as $data) {
                Pembelian::withTrashed()->updateOrCreate(
                    [
                        'no_pembelian' => $data['no_pembelian']
                    ],
                    [
                        'sinkron' => '1',
                        'tgl_pembelian'=>$data['tgl_pembelian'],
                        'kd_supplier'=>$data['kd_supplier'],
                        'keterangan'=>$data['keterangan'],
                        'dp'=>$data['dp'],
                        'ppn'=>$data['ppn'],
                        'pemohon'=>$data['pemohon'],
                        'penyetuju'=>$data['penyetuju'],
                        'status'=>$data['status'],
                        'deleted_at'=>$data['deleted_at'],
                    ]
                );
            }
        }

        return $result;
    }

    //DETAIL PEMBELIAN
    public static function reqDetailPembelian(){
        $detail_pembelian = DetailPembelian::where('sinkron', '0')->withTrashed()->get();
        $data = [
            'key' => \Helper::getApiKey(),
            'data' => $detail_pembelian,
        ];

        $urlServer = \Helper::getUrlServer();
    
        $request = \Helper::http_post($urlServer.'/api/sinkron/response/detail_pembelian', $data);
        
        $result = json_decode($request, TRUE);

        if ($result['status_code'] == 200) {
            DetailPembelian::where('sinkron', '0')->withTrashed()->update(['sinkron' => '1']);

            foreach ($result['data'] as $data) {
                DetailPembelian::withTrashed()->updateOrCreate(
                    [
                        'kd_sinkron' => $data['kd_sinkron']
                    ],
                    [
                        'sinkron' => '1',
                        'no_pembelian'=>$data['no_pembelian'],
                        'id_harga_barang'=>$data['id_harga_barang'],
                        'diskon'=>$data['diskon'],
                        'jumlah'=>$data['jumlah'],
                        'deleted_at'=>$data['deleted_at'],
                    ]
                );
            }
        }

        return $result;
    }

    //HUTANG
    public static function reqHutang(){
        $hutang = Hutang::where('sinkron', '0')->withTrashed()->get();
        $data = [
            'key' => \Helper::getApiKey(),
            'data' => $hutang,
        ];

        $urlServer = \Helper::getUrlServer();
    
        $request = \Helper::http_post($urlServer.'/api/sinkron/response/hutang', $data);
        
        $result = json_decode($request, TRUE);

        if ($result['status_code'] == 200) {
            Hutang::where('sinkron', '0')->withTrashed()->update(['sinkron' => '1']);

            foreach ($result['data'] as $data) {
                Hutang::withTrashed()->updateOrCreate(
                    [
                        'no_hutang' => $data['no_hutang']
                    ],
                    [
                        'sinkron' => '1',
                        'no_pembelian'=>$data['no_pembelian'],
                        'sisa_hutang'=>$data['sisa_hutang'],
                        'deleted_at'=>$data['deleted_at'],
                    ]
                );
            }
        }

        return $result;
    }

    //BAYAR PEMBELIAN
    public static function reqBayarPembelian(){
        $bayar_pembelian = BayarPembelian::where('sinkron', '0')->withTrashed()->get();
        $data = [
            'key' => \Helper::getApiKey(),
            'data' => $bayar_pembelian,
        ];

        $urlServer = \Helper::getUrlServer();
        $request = \Helper::http_post($urlServer.'/api/sinkron/response/bayar_pembelian', $data);
        
        $result = json_decode($request, TRUE);

        if ($result['status_code'] == 200) {
            BayarPembelian::where('sinkron', '0')->withTrashed()->update(['sinkron' => '1']);

            foreach ($result['data'] as $data) {
                BayarPembelian::withTrashed()->updateOrCreate(
                    [
                        'no_bayar_pembelian' => $data['no_bayar_pembelian']
                    ],
                    [
                        'sinkron' => '1',
                        'no_hutang'=>$data['no_hutang'],
                        'tgl_bayar_pembelian'=>$data['tgl_bayar_pembelian'],
                        'uang_bayar'=>$data['uang_bayar'],
                        'id_user'=>$data['id_user'],
                        'status'=>$data['status'],
                        'deleted_at'=>$data['deleted_at'],
                    ]
                );
            }
        }

        return $result;
    }




    //PETTY CASH
    public static function reqPettyCash(){
        $petty_cash = PettyCash::where('sinkron', '0')->withTrashed()->get();
        $data = [
            'key' => \Helper::getApiKey(),
            'data' => $petty_cash,
        ];

        $urlServer = \Helper::getUrlServer();
        $request = \Helper::http_post($urlServer.'/api/sinkron/response/petty_cash', $data);
        
        $result = json_decode($request, TRUE);

        if ($result['status_code'] == 200) {
            PettyCash::where('sinkron', '0')->withTrashed()->update(['sinkron' => '1']);

            foreach ($result['data'] as $data) {
                PettyCash::withTrashed()->updateOrCreate(
                    [
                        'kd_sinkron' => $data['kd_sinkron']
                    ],
                    [
                        'sinkron' => '1',
                        'tanggal'=>$data['tanggal'],
                        'cash_awal'=>$data['cash_awal'],
                        'cash_akhir'=>$data['cash_akhir'],
                        'deleted_at'=>$data['deleted_at'],
                    ]
                );
            }
        }

        return $result;
    }

    //RETUR PENJUALAN
    public static function reqReturPenjualan(){
        $retur_penjualan = ReturPenjualan::where('sinkron', '0')->withTrashed()->get();
        $data = [
            'key' => \Helper::getApiKey(),
            'data' => $retur_penjualan,
        ];

        $urlServer = \Helper::getUrlServer();
        $request = \Helper::http_post($urlServer.'/api/sinkron/response/retur_penjualan', $data);
        
        $result = json_decode($request, TRUE);

        if ($result['status_code'] == 200) {
            ReturPenjualan::where('sinkron', '0')->withTrashed()->update(['sinkron' => '1']);

            foreach ($result['data'] as $data) {
                ReturPenjualan::withTrashed()->updateOrCreate(
                    [
                        'no_retur_penjualan' => $data['no_retur_penjualan']
                    ],
                    [
                        'sinkron' => '1',
                        'tgl_retur_penjualan'=>$data['tgl_retur_penjualan'],
                        'keterangan'=>$data['keterangan'],
                        'kd_penjualan'=>$data['kd_penjualan'],
                        'id_user'=>$data['id_user'],
                        'deleted_at'=>$data['deleted_at'],
                    ]
                );
            }
        }

        return $result;
    }


    //RETUR DETAIL PENJUALAN
    public static function reqDetailReturPenjualan(){
        $detail_retur_penjualan = DetailReturPenjualan::where('sinkron', '0')->withTrashed()->get();
        $data = [
            'key' => \Helper::getApiKey(),
            'data' => $detail_retur_penjualan,
        ];

        $urlServer = \Helper::getUrlServer();
        $request = \Helper::http_post($urlServer.'/api/sinkron/response/detail_retur_penjualan', $data);
        
        $result = json_decode($request, TRUE);

        if ($result['status_code'] == 200) {
            DetailReturPenjualan::where('sinkron', '0')->withTrashed()->update(['sinkron' => '1']);

            foreach ($result['data'] as $data) {
                DetailReturPenjualan::withTrashed()->updateOrCreate(
                    [
                        'kd_sinkron' => $data['kd_sinkron']
                    ],
                    [
                        'sinkron' => '1',
                        'no_retur_penjualan'=>$data['no_retur_penjualan'],
                        'id_harga_barang'=>$data['id_harga_barang'],
                        'jumlah'=>$data['jumlah'],
                        'keterangan'=>$data['keterangan'],
                        'deleted_at'=>$data['deleted_at'],
                    ]
                );
            }
        }

        return $result;
    }


    //RETUR PEMBELIAN
    public static function reqReturPembelian(){
        $retur_pembelian = ReturPembelian::where('sinkron', '0')->withTrashed()->get();
        $data = [
            'key' => \Helper::getApiKey(),
            'data' => $retur_pembelian,
        ];

        $urlServer = \Helper::getUrlServer();
        $request = \Helper::http_post($urlServer.'/api/sinkron/response/retur_pembelian', $data);
        
        $result = json_decode($request, TRUE);

        if ($result['status_code'] == 200) {
            ReturPembelian::where('sinkron', '0')->withTrashed()->update(['sinkron' => '1']);

            foreach ($result['data'] as $data) {
                ReturPembelian::withTrashed()->updateOrCreate(
                    [
                        'no_retur_pembelian' => $data['no_retur_pembelian']
                    ],
                    [
                        'sinkron' => '1',
                        'tgl_retur_pembelian'=>$data['tgl_retur_pembelian'],
                        'keterangan'=>$data['keterangan'],
                        'kd_pembelian'=>$data['kd_pembelian'],
                        'id_user'=>$data['id_user'],
                        'deleted_at'=>$data['deleted_at'],
                    ]
                );
            }
        }

        return $result;
    }


    //RETUR DETAIL PEMBELIAN
    public static function reqDetailReturPembelian(){
        $detail_retur_pembelian = DetailReturPembelian::where('sinkron', '0')->withTrashed()->get();
        $data = [
            'key' => \Helper::getApiKey(),
            'data' => $detail_retur_pembelian,
        ];

        $urlServer = \Helper::getUrlServer();
        $request = \Helper::http_post($urlServer.'/api/sinkron/response/detail_retur_pembelian', $data);
        
        $result = json_decode($request, TRUE);

        if ($result['status_code'] == 200) {
            DetailReturPembelian::where('sinkron', '0')->withTrashed()->update(['sinkron' => '1']);

            foreach ($result['data'] as $data) {
                DetailReturPembelian::withTrashed()->updateOrCreate(
                    [
                        'kd_sinkron' => $data['kd_sinkron']
                    ],
                    [
                        'sinkron' => '1',
                        'no_retur_pembelian'=>$data['no_retur_pembelian'],
                        'id_harga_barang'=>$data['id_harga_barang'],
                        'jumlah'=>$data['jumlah'],
                        'keterangan'=>$data['keterangan'],
                        'deleted_at'=>$data['deleted_at'],
                    ]
                );
            }
        }

        return $result;
    }

    static function toRoman($number) {
        $map = array('M' => 1000, 'CM' => 900, 'D' => 500, 'CD' => 400, 'C' => 100, 'XC' => 90, 'L' => 50, 'XL' => 40, 'X' => 10, 'IX' => 9, 'V' => 5, 'IV' => 4, 'I' => 1);
        $returnValue = '';
        while ($number > 0) {
            foreach ($map as $roman => $int) {
                if($number >= $int) {
                    $number -= $int;
                    $returnValue .= $roman;
                    break;
                }
            }
        }
        return $returnValue;
    }

    public static function money($price)
    {
        $new_price = preg_replace("/[^0-9]/", "", $price);
        if ($price == NULL) {
            $new_price =0;
        }
        
        return round($new_price, 2);
    }

    public static function clearRupiah()
    {
        $harga = HargaBarang::all();
        foreach ($harga as $h) {
            $a = $h->harga_jual;
            $h->update([
                'harga_jual' => \Helper::money($a)
            ]);
        }
    }
}

Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]