select( 'ceidg', '*', [ 'AND' => [ 'date_add[>=]' => date( 'Y-m-d', strtotime( '-7 days', time() ) ), 'date_add[<]' => date( 'Y-m-d' ), 'status' => 'Aktywny', 'telefon[!]' => '' ] ], [ 'ORDERY' => [ 'date_add' => 'ASC' ] ] ); $title = "CEIDG"; $xls = new \Excel($title); $xls -> home(); $xls -> label( 'Data dodania' ); $xls -> right(); $xls -> label( \S::no_pl_excel( 'Data rozpoczęcia działalności' ) ); $xls -> right(); $xls -> label( 'Firma' ); $xls -> right(); $xls -> label( \S::no_pl_excel( 'Imię i nazwisko' ) ); $xls -> right(); $xls -> label( 'NIP' ); $xls -> right(); $xls -> label( 'Regon' ); $xls -> right(); $xls -> label( 'Telefon' ); $xls -> right(); $xls -> label( 'Email' ); $xls -> right(); $xls -> label( 'www' ); $xls -> right(); $xls -> label( \S::no_pl_excel( 'Województwo' ) ); $xls -> right(); $xls -> label( 'kod pocztowy' ); $xls -> right(); $xls -> label( \S::no_pl_excel( 'Miejscowość' ) ); $xls -> right(); $xls -> label( 'Ulica' ); $xls -> right(); $xls -> label( \S::no_pl_excel( 'Województwo' ) . ' - kor.' ); $xls -> right(); $xls -> label( 'kod pocztowy - kor.' ); $xls -> right(); $xls -> label( \S::no_pl_excel( 'Miejscowość' ) . ' - kor.' ); $xls -> right(); $xls -> label( 'Ulica - kor.' ); $xls -> right(); $xls -> down(); foreach ( $results as $row ) { $xls -> home(); $xls -> label( date( 'Y-m-d', strtotime( $row['date_add'] ) ) ); $xls -> right(); $xls -> label( date( 'Y-m-d', strtotime( $row['rozpoczecie_dzialalnosci'] ) ) ); $xls -> right(); $xls -> label( \S::no_pl_excel( $row['firma'] ) ); $xls -> right(); $xls -> label( \S::no_pl_excel( $row['imie_nazwisko'] ) ); $xls -> right(); $xls -> label( $row['nip'] ); $xls -> right(); $xls -> label( $row['regon'] ); $xls -> right(); $xls -> label( $row['telefon'] ); $xls -> right(); $xls -> label( $row['email'] ); $xls -> right(); $xls -> label( $row['www'] ); $xls -> right(); $xls -> label( \S::no_pl_excel( $row['ad1_wojewodztwo'] ) ); $xls -> right(); $xls -> label( $row['ad1_kod_pocztowy'] ); $xls -> right(); $xls -> label( \S::no_pl_excel( $row['ad1_miejscowosc'] ) ); $xls -> right(); $xls -> label( \S::no_pl_excel( $row['ad1_ulica'] ) ); $xls -> right(); $xls -> label( \S::no_pl_excel( $row['ad2_wojewodztwo'] ) ); $xls -> right(); $xls -> label( $row['ad2_kod_pocztowy'] ); $xls -> right(); $xls -> label( \S::no_pl_excel( $row['ad2_miejscowosc'] ) ); $xls -> right(); $xls -> label( \S::no_pl_excel( $row['ad2_ulica'] ) ); $xls -> down(); }; $xls -> send_to_file('ceidg.xls'); \S::send_email( 'biuro@project-pro.pl', 'CEIDG - baza firm od ' . date( 'Y-m-d', strtotime( '-7 days', time() ) ) . ' do ' . date( 'Y-m-d', strtotime( '-1 days', time() ) ), 'CEIDG - baza firm', 'ceidg.xls' ); // \S::send_email( 'andrzej.noga81@gmail.com', 'CEIDG - baza firm od ' . date( 'Y-m-d', strtotime( '-7 days', time() ) ) . ' do ' . date( 'Y-m-d', strtotime( '-1 days', time() ) ), 'CEIDG - baza firm', 'ceidg.xls' ); // \S::send_email( '4axel@poczta.fm', 'CEIDG - baza firm od ' . date( 'Y-m-d', strtotime( '-7 days', time() ) ) . ' do ' . date( 'Y-m-d', strtotime( '-1 days', time() ) ), 'CEIDG - baza firm', 'ceidg.xls' ); unlink( 'ceidg.xls' ); return true; } public static function ceidg_download() { global $mdb; if ( $results = $mdb -> get( 'ceidg_urls', '*', ['date_update[!]' => date( 'Y-m-d' )] ) ) { $curl = curl_init(); curl_setopt( $curl, CURLOPT_HEADER, true ); curl_setopt( $curl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" ); curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true ); curl_setopt( $curl, CURLOPT_VERBOSE, true ); curl_setopt( $curl, CURLOPT_URL, str_replace( '[DATA]', date( "Y-m-d", strtotime( '-1 day', time() ) ), $results['url'] ) ); curl_setopt( $curl, CURLOPT_TIMEOUT, 60 ); curl_setopt( $curl, CURLOPT_MAXREDIRS, 60 ); curl_setopt( $curl, CURLOPT_FOLLOWLOCATION, true ); $newUpdate = curl_exec( $curl ); print_r( curl_error( $curl ) ); curl_close( $curl ); $dlHandler = fopen( 'ceidg.zip', 'w' ); if ( !fwrite( $dlHandler, $newUpdate ) ) { exit(); } fclose( $dlHandler ); ob_start(); @system( 'unzip ceidg.zip' ); ob_clean(); $mdb -> update( 'ceidg_urls', ['date_update' => date( 'Y-m-d' )], ['id' => $results['id']] ); unlink( 'ceidg.zip' ); return [ 'status' => 'ok', 'msg' => 'Pobieram xml do CEIDG: ' . $results['name'] ]; } return false; } public static function ceidg_import() { global $mdb; $xml = false; if ( file_exists( utf8_decode( 'dzien_ExtendedAddress_dolnoslaskie.xml' ) ) ) $xml = 'dzien_ExtendedAddress_dolnoslaskie.xml'; if ( file_exists( utf8_decode( 'dzien_ExtendedAddress_kujawsko-pomorskie.xml' ) ) ) $xml = 'dzien_ExtendedAddress_kujawsko-pomorskie.xml'; if ( file_exists( utf8_decode( 'dzien_ExtendedAddress_lubelskie.xml' ) ) ) $xml = 'dzien_ExtendedAddress_lubelskie.xml'; if ( file_exists( utf8_decode( 'dzien_ExtendedAddress_lubuskie.xml' ) ) ) $xml = 'dzien_ExtendedAddress_lubuskie.xml'; if ( file_exists( utf8_decode( 'dzien_ExtendedAddress_lódzkie.xml' ) ) ) $xml = 'dzien_ExtendedAddress_lódzkie.xml'; if ( file_exists( utf8_decode( 'dzien_ExtendedAddress_malopolskie.xml' ) ) ) $xml = 'dzien_ExtendedAddress_malopolskie.xml'; if ( file_exists( utf8_decode( 'dzien_ExtendedAddress_mazowieckie.xml' ) ) ) $xml = 'dzien_ExtendedAddress_mazowieckie.xml'; if ( file_exists( utf8_decode( 'dzien_ExtendedAddress_opolskie.xml' ) ) ) $xml = 'dzien_ExtendedAddress_opolskie.xml'; if ( file_exists( utf8_decode( 'dzien_ExtendedAddress_podkarpackie.xml' ) ) ) $xml = 'dzien_ExtendedAddress_podkarpackie.xml'; if ( file_exists( utf8_decode( 'dzien_ExtendedAddress_podlaskie.xml' ) ) ) $xml = 'dzien_ExtendedAddress_podlaskie.xml'; if ( file_exists( utf8_decode( 'dzien_ExtendedAddress_pomorskie.xml' ) ) ) $xml = 'dzien_ExtendedAddress_pomorskie.xml'; if ( file_exists( utf8_decode( 'dzien_ExtendedAddress_slaskie.xml' ) ) ) $xml = 'dzien_ExtendedAddress_slaskie.xml'; if ( file_exists( utf8_decode( 'dzien_ExtendedAddress_swietokrzyskie.xml' ) ) ) $xml = 'dzien_ExtendedAddress_swietokrzyskie.xml'; if ( file_exists( utf8_decode( 'dzien_ExtendedAddress_warminsko-mazurskie.xml' ) ) ) $xml = 'dzien_ExtendedAddress_warminsko-mazurskie.xml'; if ( file_exists( utf8_decode( 'dzien_ExtendedAddress_wielkopolskie.xml' ) ) ) $xml = 'dzien_ExtendedAddress_wielkopolskie.xml'; if ( file_exists( utf8_decode( 'dzien_ExtendedAddress_zachodniopomorskie.xml' ) ) ) $xml = 'dzien_ExtendedAddress_zachodniopomorskie.xml'; if ( $xml ) { $reader = new XMLReader(); $reader -> open( $xml ); $reader -> read() && $reader -> read(); while ( $reader -> next( 'InformacjaOWpisie' ) ) { $node = new SimpleXMLElement( $reader -> readOuterXML() ); if ( !$mdb -> count( 'ceidg', ['hash' => (string)$node -> IdentyfikatorWpisu] ) ) { $mdb -> insert( 'ceidg', [ 'hash' => (string)$node -> IdentyfikatorWpisu, 'imie_nazwisko' => (string)$node -> DanePodstawowe -> Imie . ' ' . (string)$node -> DanePodstawowe -> Nazwisko, 'nip' => (string)$node -> DanePodstawowe -> NIP, 'regon' => (string)$node -> DanePodstawowe -> REGON, 'firma' => (string)$node -> DanePodstawowe -> Firma, 'email' => !empty( $node -> DaneKontaktowe -> AdresPocztyElektronicznej ) ? (string)$node -> DaneKontaktowe -> AdresPocztyElektronicznej : null, 'www' => !empty( $node -> DaneKontaktowe -> AdresStronyInternetowej ) ? (string)$node -> DaneKontaktowe -> AdresStronyInternetowej : null, 'telefon' => !empty( $node -> DaneKontaktowe -> Telefon ) ? (string)$node -> DaneKontaktowe -> Telefon : null, 'faks' => !empty( $node -> DaneKontaktowe -> Faks ) ? (string)$node -> DaneKontaktowe -> Faks : null, 'ad1_terc' => (string)$node -> DaneAdresowe -> AdresGlownegoMiejscaWykonywaniaDzialalnosci -> TERC, 'ad1_simc' => (string)$node -> DaneAdresowe -> AdresGlownegoMiejscaWykonywaniaDzialalnosci -> SIMC, 'ad1_ulic' => (string)$node -> DaneAdresowe -> AdresGlownegoMiejscaWykonywaniaDzialalnosci -> ULIC, 'ad1_miejscowosc' => (string)$node -> DaneAdresowe -> AdresGlownegoMiejscaWykonywaniaDzialalnosci -> Miejscowosc, 'ad1_terc' => (string)$node -> DaneAdresowe -> AdresGlownegoMiejscaWykonywaniaDzialalnosci -> TERC, 'ad1_kod_pocztowy' => (string)$node -> DaneAdresowe -> AdresGlownegoMiejscaWykonywaniaDzialalnosci -> KodPocztowy, 'ad1_poczta' => (string)$node -> DaneAdresowe -> AdresGlownegoMiejscaWykonywaniaDzialalnosci -> Poczta, 'ad1_gmina' => (string)$node -> DaneAdresowe -> AdresGlownegoMiejscaWykonywaniaDzialalnosci -> Gmina, 'ad1_powiat' => (string)$node -> DaneAdresowe -> AdresGlownegoMiejscaWykonywaniaDzialalnosci -> Powiat, 'ad1_wojewodztwo' => (string)$node -> DaneAdresowe -> AdresGlownegoMiejscaWykonywaniaDzialalnosci -> Wojewodztwo, 'ad2_terc' => (string)$node -> DaneAdresowe -> AdresDoDoreczen -> TERC, 'ad2_simc' => (string)$node -> DaneAdresowe -> AdresDoDoreczen -> SIMC, 'ad2_ulic' => (string)$node -> DaneAdresowe -> AdresDoDoreczen -> ULIC, 'ad2_miejscowosc' => (string)$node -> DaneAdresowe -> AdresDoDoreczen -> Miejscowosc, 'ad2_ulica' => (string)$node -> DaneAdresowe -> AdresDoDoreczen -> Ulica . ' ' . (string)$node -> DaneAdresowe -> AdresDoDoreczen -> Budynek . ' ' . ( $node -> DaneAdresowe -> AdresDoDoreczen -> Budynek != '' ? ' lok. ' . (string)$node -> DaneAdresowe -> AdresDoDoreczen -> Budynek : '' ), 'ad2_kod_pocztowy' => (string)$node -> DaneAdresowe -> AdresDoDoreczen -> KodPocztowy, 'ad2_poczta' => (string)$node -> DaneAdresowe -> AdresDoDoreczen -> Poczta, 'ad2_gmina' => (string)$node -> DaneAdresowe -> AdresDoDoreczen -> Gmina, 'ad2_powiat' => (string)$node -> DaneAdresowe -> AdresDoDoreczen -> Powiat, 'ad2_wojewodztwo' => (string)$node -> DaneAdresowe -> AdresDoDoreczen -> Wojewodztwo, 'obywatelstwo' => (string)$node -> DaneAdresowe -> PrzedsiebiorcaPosiadaObywatelstwaPanstw, 'rozpoczecie_dzialalnosci' => (string)$node -> DaneDodatkowe -> DataRozpoczeciaWykonywaniaDzialalnosciGospodarczej, 'zaprzestanie_dzialalnosci' => !empty( $node -> DaneDodatkowe -> DataZaprzestaniaWykonywaniaDzialalnosciGospodarczej ) ? (string)$node -> DaneDodatkowe -> DataZaprzestaniaWykonywaniaDzialalnosciGospodarczej : null, 'data_wykreslenia' => !empty( $node -> DaneDodatkowe -> DataWykresleniaWpisuZRejestru ) ? (string)$node -> DaneDodatkowe -> DataWykresleniaWpisuZRejestru : null, 'wspolnosc_majatkowa' => !empty( $node -> DaneDodatkowe -> MalzenskaWspolnoscMajatkowa ) ? (string)$node -> DaneDodatkowe -> MalzenskaWspolnoscMajatkowa : null, 'status' => !empty( $node -> DaneDodatkowe -> Status ) ? (string)$node -> DaneDodatkowe -> Status : null, 'pkd' => !empty( $node -> DaneDodatkowe -> KodyPKD ) ? (string)$node -> DaneDodatkowe -> KodyPKD : null, 'spolki_cywilne' => !empty( $node -> SpolkiCywilneKtorychWspolnikiemJestPrzedsiebiorca ) ? json_encode( $node -> SpolkiCywilneKtorychWspolnikiemJestPrzedsiebiorca ) : null, 'zakazy' => !empty( $node -> Zakazy ) ? json_encode( $node -> Zakazy ) : null, 'postepowanie_naprawcze' => !empty( $node -> InformacjeDotyczaceUpadlosciPostepowaniaNaprawczego ) ? json_encode( $node -> InformacjeDotyczaceUpadlosciPostepowaniaNaprawczego ) : null ] ); $i++; } else { $mdb -> update( 'ceidg', [ 'imie_nazwisko' => (string)$node -> DanePodstawowe -> Imie . ' ' . (string)$node -> DanePodstawowe -> Nazwisko, 'nip' => (string)$node -> DanePodstawowe -> NIP, 'regon' => (string)$node -> DanePodstawowe -> REGON, 'firma' => (string)$node -> DanePodstawowe -> Firma, 'email' => !empty( $node -> DaneKontaktowe -> AdresPocztyElektronicznej ) ? (string)$node -> DaneKontaktowe -> AdresPocztyElektronicznej : null, 'www' => !empty( $node -> DaneKontaktowe -> AdresStronyInternetowej ) ? (string)$node -> DaneKontaktowe -> AdresStronyInternetowej : null, 'telefon' => !empty( $node -> DaneKontaktowe -> Telefon ) ? (string)$node -> DaneKontaktowe -> Telefon : null, 'faks' => !empty( $node -> DaneKontaktowe -> Faks ) ? (string)$node -> DaneKontaktowe -> Faks : null, 'ad1_terc' => (string)$node -> DaneAdresowe -> AdresGlownegoMiejscaWykonywaniaDzialalnosci -> TERC, 'ad1_simc' => (string)$node -> DaneAdresowe -> AdresGlownegoMiejscaWykonywaniaDzialalnosci -> SIMC, 'ad1_ulic' => (string)$node -> DaneAdresowe -> AdresGlownegoMiejscaWykonywaniaDzialalnosci -> ULIC, 'ad1_miejscowosc' => (string)$node -> DaneAdresowe -> AdresGlownegoMiejscaWykonywaniaDzialalnosci -> Miejscowosc, 'ad1_terc' => (string)$node -> DaneAdresowe -> AdresGlownegoMiejscaWykonywaniaDzialalnosci -> TERC, 'ad1_kod_pocztowy' => (string)$node -> DaneAdresowe -> AdresGlownegoMiejscaWykonywaniaDzialalnosci -> KodPocztowy, 'ad1_poczta' => (string)$node -> DaneAdresowe -> AdresGlownegoMiejscaWykonywaniaDzialalnosci -> Poczta, 'ad1_gmina' => (string)$node -> DaneAdresowe -> AdresGlownegoMiejscaWykonywaniaDzialalnosci -> Gmina, 'ad1_powiat' => (string)$node -> DaneAdresowe -> AdresGlownegoMiejscaWykonywaniaDzialalnosci -> Powiat, 'ad1_wojewodztwo' => (string)$node -> DaneAdresowe -> AdresGlownegoMiejscaWykonywaniaDzialalnosci -> Wojewodztwo, 'ad2_terc' => (string)$node -> DaneAdresowe -> AdresDoDoreczen -> TERC, 'ad2_simc' => (string)$node -> DaneAdresowe -> AdresDoDoreczen -> SIMC, 'ad2_ulic' => (string)$node -> DaneAdresowe -> AdresDoDoreczen -> ULIC, 'ad2_miejscowosc' => (string)$node -> DaneAdresowe -> AdresDoDoreczen -> Miejscowosc, 'ad2_ulica' => (string)$node -> DaneAdresowe -> AdresDoDoreczen -> Ulica . ' ' . (string)$node -> DaneAdresowe -> AdresDoDoreczen -> Budynek . ' ' . ( $node -> DaneAdresowe -> AdresDoDoreczen -> Budynek != '' ? ' lok. ' . (string)$node -> DaneAdresowe -> AdresDoDoreczen -> Budynek : '' ), 'ad2_kod_pocztowy' => (string)$node -> DaneAdresowe -> AdresDoDoreczen -> KodPocztowy, 'ad2_poczta' => (string)$node -> DaneAdresowe -> AdresDoDoreczen -> Poczta, 'ad2_gmina' => (string)$node -> DaneAdresowe -> AdresDoDoreczen -> Gmina, 'ad2_powiat' => (string)$node -> DaneAdresowe -> AdresDoDoreczen -> Powiat, 'ad2_wojewodztwo' => (string)$node -> DaneAdresowe -> AdresDoDoreczen -> Wojewodztwo, 'obywatelstwo' => (string)$node -> DaneAdresowe -> PrzedsiebiorcaPosiadaObywatelstwaPanstw, 'rozpoczecie_dzialalnosci' => (string)$node -> DaneDodatkowe -> DataRozpoczeciaWykonywaniaDzialalnosciGospodarczej, 'zaprzestanie_dzialalnosci' => !empty( $node -> DaneDodatkowe -> DataZaprzestaniaWykonywaniaDzialalnosciGospodarczej ) ? (string)$node -> DaneDodatkowe -> DataZaprzestaniaWykonywaniaDzialalnosciGospodarczej : null, 'data_wykreslenia' => !empty( $node -> DaneDodatkowe -> DataWykresleniaWpisuZRejestru ) ? (string)$node -> DaneDodatkowe -> DataWykresleniaWpisuZRejestru : null, 'wspolnosc_majatkowa' => !empty( $node -> DaneDodatkowe -> MalzenskaWspolnoscMajatkowa ) ? (string)$node -> DaneDodatkowe -> MalzenskaWspolnoscMajatkowa : null, 'status' => !empty( $node -> DaneDodatkowe -> Status ) ? (string)$node -> DaneDodatkowe -> Status : null, 'pkd' => !empty( $node -> DaneDodatkowe -> KodyPKD ) ? (string)$node -> DaneDodatkowe -> KodyPKD : null, 'spolki_cywilne' => !empty( $node -> SpolkiCywilneKtorychWspolnikiemJestPrzedsiebiorca ) ? json_encode( $node -> SpolkiCywilneKtorychWspolnikiemJestPrzedsiebiorca ) : null, 'zakazy' => !empty( $node -> Zakazy ) ? json_encode( $node -> Zakazy ) : null, 'postepowanie_naprawcze' => !empty( $node -> InformacjeDotyczaceUpadlosciPostepowaniaNaprawczego ) ? json_encode( $node -> InformacjeDotyczaceUpadlosciPostepowaniaNaprawczego ) : null ], [ 'hash' => (string)$node -> IdentyfikatorWpisu ] ); $j++; } } if ( $xml == 'dzien_ExtendedAddress_dolnoslaskie.xml' ) unlink( utf8_decode( 'dzien_ExtendedAddress_dolnoslaskie.xml' ) ); if ( $xml == 'dzien_ExtendedAddress_kujawsko-pomorskie.xml' ) unlink( utf8_decode( 'dzien_ExtendedAddress_kujawsko-pomorskie.xml' ) ); if ( $xml == 'dzien_ExtendedAddress_lubelskie.xml' ) unlink( utf8_decode( 'dzien_ExtendedAddress_lubelskie.xml' ) ); if ( $xml == 'dzien_ExtendedAddress_lubuskie.xml' ) unlink( utf8_decode( 'dzien_ExtendedAddress_lubuskie.xml' ) ); if ( $xml == 'dzien_ExtendedAddress_lódzkie.xml' ) unlink( utf8_decode( 'dzien_ExtendedAddress_lódzkie.xml' ) ); if ( $xml == 'dzien_ExtendedAddress_malopolskie.xml' ) unlink( utf8_decode( 'dzien_ExtendedAddress_malopolskie.xml' ) ); if ( $xml == 'dzien_ExtendedAddress_mazowieckie.xml' ) unlink( utf8_decode( 'dzien_ExtendedAddress_mazowieckie.xml' ) ); if ( $xml == 'dzien_ExtendedAddress_opolskie.xml' ) unlink( utf8_decode( 'dzien_ExtendedAddress_opolskie.xml' ) ); if ( $xml == 'dzien_ExtendedAddress_podkarpackie.xml' ) unlink( utf8_decode( 'dzien_ExtendedAddress_podkarpackie.xml' ) ); if ( $xml == 'dzien_ExtendedAddress_podlaskie.xml' ) unlink( utf8_decode( 'dzien_ExtendedAddress_podlaskie.xml' ) ); if ( $xml == 'dzien_ExtendedAddress_pomorskie.xml' ) unlink( utf8_decode( 'dzien_ExtendedAddress_pomorskie.xml' ) ); if ( $xml == 'dzien_ExtendedAddress_slaskie.xml' ) unlink( utf8_decode( 'dzien_ExtendedAddress_slaskie.xml' ) ); if ( $xml == 'dzien_ExtendedAddress_swietokrzyskie.xml' ) unlink( utf8_decode( 'dzien_ExtendedAddress_swietokrzyskie.xml' ) ); if ( $xml == 'dzien_ExtendedAddress_warminsko-mazurskie.xml' ) unlink( utf8_decode( 'dzien_ExtendedAddress_warminsko-mazurskie.xml' ) ); if ( $xml == 'dzien_ExtendedAddress_wielkopolskie.xml' ) unlink( utf8_decode( 'dzien_ExtendedAddress_wielkopolskie.xml' ) ); if ( $xml == 'dzien_ExtendedAddress_zachodniopomorskie.xml' ) unlink( utf8_decode( 'dzien_ExtendedAddress_zachodniopomorskie.xml' ) ); return [ 'status' => 'ok', 'msg' => 'Importuję firmy do CEIDG. Zaimportowano ' . (int)$i . ' firm. Zaktualizowano ' . (int)$j . ' firm.' ]; } return false; } public static function recursive_tasks() { global $mdb; $results = $mdb -> query( 'SELECT ' . 't.*, ' . '( SELECT COUNT(0) FROM tasks WHERE parent_id = t.id ) AS quantity ' . 'FROM ' . 'tasks AS t ' . 'WHERE ' . 'recursively = 1 AND date_end IS NOT NULL AND date_end < \'' . date( 'Y-m-d', strtotime( '+1 months', time() ) ) . '\' ' . 'HAVING quantity = 0' ) -> fetchAll(); if ( is_array( $results ) and count( $results ) ) foreach ( $results as $row ) { if ( $row['date_end_month_day'] == null ) { $mdb -> update( 'tasks', ['date_end_month_day' => date( 'j', strtotime( $row['date_end'] ) )], ['id' => $row['id']] ); $row['date_end_month_day'] = date( 'j', strtotime( $row['date_end'] ) ); } if ( $row['date_start_month_day'] == null ) { $mdb -> update( 'tasks', ['date_start_month_day' => date( 'j', strtotime( $row['date_start'] ) )], ['id' => $row['id']] ); $row['date_start_month_day'] = date( 'j', strtotime( $row['date_start'] ) ); } /* powtarzanie co x dni */ if ( $row['period'] == 1 ) { $new_date_end = date( 'Y-m-d', strtotime( '+' . $row['frequency'] . ' days', strtotime( $row['date_end'] ) ) ); if ( $row['date_start'] ) $new_date_start = date( 'Y-m-d', strtotime( '+' . $row['frequency'] . ' days', strtotime( $row['date_start'] ) ) ); } /* powtarzanie do x miesięcy */ if ( $row['period'] == 2 ) { $new_date_end = date( 'Y-m', strtotime( '+' . $row['frequency'] . ' months', strtotime( date( 'Y-m', strtotime( $row['date_end'] ) ) ) ) ); $max_days = date( 't', strtotime( $new_date_end ) ); if ( $max_days <= $row['date_end_month_day'] ) $new_date_end = date( 'Y-m-d', strtotime( $new_date_end . '-' . $max_days ) ); else $new_date_end = date( 'Y-m-d', strtotime( $new_date_end . '-' . $row['date_end_month_day'] ) ); if ( $row['date_start'] ) { $new_date_start = date( 'Y-m', strtotime( '+' . $row['frequency'] . ' months', strtotime( date( 'Y-m', strtotime( $row['date_start'] ) ) ) ) ); $max_days = date( 't', strtotime( $new_date_start ) ); if ( $max_days <= $row['date_start_month_day'] ) $new_date_start = date( 'Y-m-d', strtotime( $new_date_start . '-' . $max_days ) ); else $new_date_start = date( 'Y-m-d', strtotime( $new_date_start . '-' . $row['date_start_month_day'] ) ); } } /* powtarzanie co x lat */ if ( $row['period'] == 3 ) { $new_date_end = date( 'Y-m', strtotime( '+' . $row['frequency'] . ' years', strtotime( date( 'Y-m', strtotime( $row['date_end'] ) ) ) ) ); $max_days = date( 't', strtotime( $new_date_end ) ); if ( $max_days <= $row['date_end_month_day'] ) $new_date_end = date( 'Y-m-d', strtotime( $new_date_end . '-' . $max_days ) ); else $new_date_end = date( 'Y-m-d', strtotime( $new_date_end . '-' . $row['date_end_month_day'] ) ); if ( $row['date_start'] ) { $new_date_start = date( 'Y-m', strtotime( '+' . $row['frequency'] . ' years', strtotime( date( 'Y-m', strtotime( $row['date_start'] ) ) ) ) ); $max_days = date( 't', strtotime( $new_date_start ) ); if ( $max_days <= $row['date_start_month_day'] ) $new_date_start = date( 'Y-m-d', strtotime( $new_date_start . '-' . $max_days ) ); else $new_date_start = date( 'Y-m-d', strtotime( $new_date_start . '-' . $row['date_start_month_day'] ) ); } } $task_users = $mdb -> select( 'task_user', 'user_id', ['task_id' => $row['id']] ); \factory\Projects::task_save( null, $row['id'], $row['created_by'], $row['name'], $row['text'], $new_date_start, $new_date_end, $row['project_id'], $row['client'], $row['reminders'] ? 'on' : 'off', $row['reminders_interval'], $row['recursively'] ? 'on' : 'off', $row['frequency'], $row['period'], $row['gantt'] ? 'on' : 'off', $row['on_top'] ? 'on' : 'off', $task_users, $row['date_end_month_day'], $row['date_start_month_day'] ); return [ 'status' => 'ok', 'msg' => 'Dodawanie rekursywnych zadań' ]; } return false; } public static function tasks_emails() { global $mdb, $setttings; include_once 'libraries/phpmailer/class.phpmailer.php'; include_once 'libraries/phpmailer/class.smtp.php'; $results = $mdb -> query( 'SELECT ' . 't.* ' . 'FROM ' . 'tasks AS t ' . 'WHERE ' . 'reminders = 1 AND reminders_send = 0 AND status = 0 AND deleted = 0' ) -> fetchAll(); if ( is_array( $results ) and!empty( $results ) ) foreach ( $results as $row ) { $days_counter = explode( ',', $row['reminders_interval'] ); rsort( $days_counter ); if ( is_array( $days_counter ) and!empty( $days_counter ) ) foreach ( $days_counter as $dc ) { if ( !$mdb -> count( 'tasks_reminders', ['AND' => ['task_id' => $row['id'], 'day_counter' => $dc]] ) ) { $send = false; $date_tmp = date( 'Y-m-d', strtotime( '+' . $dc . 'days', strtotime( date( 'Y-m-d' ) ) ) ); if ( $date_tmp >= $row['date_end'] ) { if ( !$mdb -> count( 'tasks_reminders', ['AND' => ['task_id' => $row['id'], 'day_counter' => $dc]] ) ) { $users = $mdb -> select( 'task_user', 'user_id', ['task_id' => $row['id']] ); if ( is_array( $users ) and count( $users ) ) { foreach ( $users as $user ) { $user_email = $mdb -> get( 'users', 'email', ['id' => $user] ); date( 'Y-m-d', strtotime( $row['date_end'] ) ) == date( 'Y-m-d' ) ? $date = 'dzisiaj' : $date = date( 'Y-m-d', strtotime( $row['date_end'] ) ); $subject = 'crmPRO - ' . $row['name']; $text = '

Witaj.

' . '

Otrzymałeś ten email z powodu ustawionego przypomnienia. Poniżej znajdziesz jego treść.

' . '

---------------------------------------------------------------------------------------

' . '

' . $row['name'] . ' (termin zadania: ' . $date . ')

' . '

' . $row['text'] . '

'; if ( \S::send_email( $user_email, $subject, $text ) ); $send = true; } if ( $send ) { $mdb -> insert( 'tasks_reminders', ['task_id' => $row['id'], 'day_counter' => $dc] ); return [ 'status' => 'ok', 'msg' => 'Wiadomość została wysłana na adres: ' . $user_email ]; } } else { $mdb -> insert( 'tasks_reminders', ['task_id' => $row['id'], 'day_counter' => $dc] ); return [ 'status' => 'ok', 'msg' => 'Wiadomość nie wysłana z powodu braku odbiorców.' ]; } } } } } if ( count( $days_counter ) == $mdb -> count( 'tasks_reminders', ['task_id' => $row['id']] ) ) $mdb -> update( 'tasks', ['reminders_send' => 1], ['id' => $row['id']] ); } return ['status' => 'empty']; } }