first commit

This commit is contained in:
2025-04-30 23:59:49 +02:00
commit 652863d54f
117 changed files with 12276 additions and 0 deletions

536
autoload/class.Cron.php Normal file
View File

@@ -0,0 +1,536 @@
<?php
class Cron
{
static public function ceidg_send_excel()
{
global $mdb;
$results = $mdb -> 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 = '<p>Witaj.</p>' .
'<p>Otrzymałeś ten email z powodu ustawionego przypomnienia. Poniżej znajdziesz jego treść.</p>' .
'<p>---------------------------------------------------------------------------------------</p>' .
'<p><b>' . $row['name'] . '</b> (termin zadania: <b>' . $date . ')</b></p>' .
'<p>' . $row['text'] . '</p>';
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'];
}
}