query ( $query ); $invoiceData = $result->fetch_assoc (); $invoiceData ["items"] = PurchaseInvoiceItems::getByInvoiceId ( $id ); $invoiceData ["account"] = Account::getByInvoiceId ( $id ); return $invoiceData; } /** * Pobiera wszystkie dokumenty z podanego przedzia�u dat * * @param $date_from - * data od( w formacie YYYY-mm-dd ) * @param $date_to - * data do( w formacie YYYY-mm-dd ) * @param $type - * typ faktury(normal/correct) */ public static function getBetweenDate($date_from, $date_to, $category, $contractorId) { $db = $GLOBALS ['db']; $query = "SELECT * FROM documents WHERE register_date >= '$date_from' AND register_date <='$date_to' AND register_date IS NOT NULL AND register_date >= STR_TO_DATE('01.01.1990', '%d.%m.%Y') AND register_date <= STR_TO_DATE('01.01.2515', '%d.%m.%Y') AND deleted=0 AND canceled=0 AND sdocument_number IS NOT NULL "; if (! empty ( $contractorId )) { $query .= " AND parent_id = '" . $contractorId . "'"; } if( count( $category ) != 0 && $category[0] != "%" ) { for( $i = 0; $i < count($category); $i++ ) { if( $i == 0) { $query .= " AND category = '".$category[$i]."'"; } else { $query .= " OR category = '".$category[$i]."'"; } } } $query .= " ORDER BY rgister_date asc"; $result = $db->query ( $query ); $invoicesArray = array (); while ( $invoiceData = $result->fetch_assoc () ) { // Formatowanie dat zgodnie z datą systemową $date = new DateTime ( $invoiceData ["register_date"] ); $invoiceData ["register_date"] = $date->format ( 'd.m.Y' ); $date = new DateTime ( $invoiceData ["document_date"] ); $invoiceData ["document_date"] = $date->format ( 'd.m.Y' ); $invoiceData ["items"] = PurchaseInvoiceItems::getByInvoiceId ( $invoiceData ["id"] ); $invoiceData ["account"] = Account::getByAccountId ( $invoiceData ["parent_id"] ); // Mnożę odpowiednie sumy przez currency_value Invoice::multiplyValuesByCurrencyValue ( $invoiceData ); // Obliczam wysokość VAT i sumę netto $invoiceData ["netto0"] = Invoice::getNetto ( $invoiceData ["vats_summary"], "0%", $invoiceData["currency_value"]); $invoiceData ["netto7"] = Invoice::getNetto ( $invoiceData ["vats_summary"], "7%", $invoiceData["currency_value"]); $invoiceData ["netto8"] = Invoice::getNetto ( $invoiceData ["vats_summary"], "8%", $invoiceData["currency_value"]); $invoiceData ["netto22"] = Invoice::getNetto ( $invoiceData ["vats_summary"], "22%", $invoiceData["currency_value"]); $invoiceData ["netto23"] = Invoice::getNetto ( $invoiceData ["vats_summary"], "23%", $invoiceData["currency_value"]); $invoiceData ["vat0"] = Invoice::getVat ( $invoiceData ["vats_summary"], "0%", $invoiceData["currency_value"]); $invoiceData ["vat7"] = Invoice::getVat ( $invoiceData ["vats_summary"], "7%", $invoiceData["currency_value"]); $invoiceData ["vat8"] = Invoice::getVat ( $invoiceData ["vats_summary"], "8%", $invoiceData["currency_value"]); $invoiceData ["vat22"] = Invoice::getVat ( $invoiceData ["vats_summary"], "22%", $invoiceData["currency_value"]); $invoiceData ["vat23"] = Invoice::getVat ( $invoiceData ["vats_summary"], "23%", $invoiceData["currency_value"]); // Jeżeli koszt własny na fakturze nie istnieje albo nulem if ($invoiceData ["purchase_price"] == NULL || $invoiceData ["purchase_price"] == "") { $invoiceData ["purchase_price"] = 0.00; } // Wyliczam marżę dla faktury // if ($type != "correct") { // $invoiceData ["marginInPercent"] = ($invoiceData ['total_netto'] - $invoiceData ['purchase_price']) / ($invoiceData ['total_netto']) * 100; // $invoiceData ["margin"] = $invoiceData ['total_netto'] - $invoiceData ['purchase_price']; // } else { // $invoiceData ["marginInPercent"] = 0; // $invoiceData ["margin"] = 0; // } array_push ( $invoicesArray, $invoiceData ); } return $invoicesArray; } /** * Funkcja mnoży wszystkie sumy przez currency_value o ile currency_value nie jest 0 * * @param $data - * tablica danych przekazana jako referencja */ public static function multiplyValuesByCurrencyValue(&$data) { // Jeżeli kurs walutowy nie jest zerem ani pustym polem wtedy należy przemnożyć wszystkie wartości // bo wszystko musi być w złotówkach if( $data["currency_value"] != NULL && $data["currency_value"] != 0 && $data["currency_value"] != '') { $data["total_netto"] *= $data["currency_value"]; $data["total_brutto"] *= $data["currency_value"]; $data["purchase_price"] *= $data["currency_value"]; $data["margin"] *= $data["currency_value"]; } } /** * Funkcja wyciąga netto z bazy( w bazie zapisane jest to w formacie: 23%:2000.00:460.00:2460.00 ) * @param unknown $formatted_string * @param unknown $param_vat * @param unknown $currency_value * @return Ambigous */ public static function getNetto($formatted_string, $param_vat, $currency_value) { $return = NULL; $vats = explode( ";" , $formatted_string); foreach( $vats as $vat ) { $split_values = explode( ":" , $vat ); if( $split_values[0] == $param_vat ) { // Ceny na itemach wymagają przemnożenia przez kurs walutowy ($currency_value == NULL || $currency_value == "") ? $currency_value = 1 : $currency_value = $currency_value; $return = $split_values[1] * $currency_value; } } return $return; } /** * Funkcja wyciąga vat z bazy( w bazie zapisane jest to w formacie: 23%:2000.00:460.00:2460.00 ) * @param unknown $formatted_string * @param unknown $param_vat * @param unknown $currency_value * @return Ambigous */ public static function getVat($formatted_string, $param_vat, $currency_value) { $return = NULL; $vats = explode( ";" , $formatted_string); foreach( $vats as $vat ) { $split_values = explode( ":" , $vat ); if( $split_values[0] == $param_vat ) { // Ceny na itemach wymagają przemnożenia przez kurs walutowy ($currency_value == NULL || $currency_value == "") ? $currency_value = 1 : $currency_value = $currency_value; $return = $split_values[2] * $currency_value; } } return $return; } } ?>