query($query); $invoiceData = $result->fetch_assoc(); $invoiceData ["items"] = InvoiceItems::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, $pdf_type, $category, $type, $contractorId = FALSE, $stock_id = FALSE) { $db = $GLOBALS ['db']; global $app_list_strings; if ($_GET ['selectStock'] != "") $stock_id = $_GET['selectStock']; $query = "SELECT * FROM ecminvoiceouts WHERE register_date >= '$date_from' AND register_date <='$date_to' AND type LIKE '$type' AND deleted=0 AND canceled=0 "; if (!empty($contractorId) && $contractorId != "") { $query .= " AND parent_id = '" . $contractorId . "'"; } if (!empty($stock_id) && $stock_id != "") { $query .= " AND stock_id = '" . $stock_id . "' "; } if (isset($pdf_type) && in_array(true, $pdf_type)) { $query .= ' AND pdf_type IN ('; foreach ($pdf_type as $key => $value) { if ($value == true) { $query .= "'" . $key . "' ,"; } } $query = rtrim($query, ","); $query .=") "; } if (isset($category) && count($category) > 0 && count($category) != count($app_list_strings['ecminvoiceouts_category_dom'])) { if (in_array(" ", $category) && count($category) == 1) { $query .= " AND category IS NULL "; } else { if(in_array(" ", $category)){ $query .= " AND category IS NULL "; } $query .= " AND category IN ("; foreach ($category as $key => $value) { if ($value != " ") { $query .= "'" . $value . "' ,"; } } $query = rtrim($query, ","); $query .=") "; } } $query .= " ORDER BY date_entered 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 ["sell_date"]); $invoiceData ["sell_date"] = $date->format('d.m.Y'); $invoiceData ["items"] = InvoiceItems::getByInvoiceId($invoiceData ["id"]); $invoiceData ["account"] = Account::getByAccountId($invoiceData ["parent_id"]); if ($type == "correct") { $invoiceData ["showType"] = "FVK"; } else { $invoiceData ["showType"] = "FV"; } // 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"] != NULL ? $invoiceData["currency_value"] : $invoiceData["currency_value_nbp"]); $invoiceData ["netto7"] = Invoice::getNetto($invoiceData ["vats_summary"], "7%", $invoiceData["currency_value"] != NULL ? $invoiceData["currency_value"] : $invoiceData["currency_value_nbp"]); $invoiceData ["netto8"] = Invoice::getNetto($invoiceData ["vats_summary"], "8%", $invoiceData["currency_value"] != NULL ? $invoiceData["currency_value"] : $invoiceData["currency_value_nbp"]); $invoiceData ["netto22"] = Invoice::getNetto($invoiceData ["vats_summary"], "22%", $invoiceData["currency_value"] != NULL ? $invoiceData["currency_value"] : $invoiceData["currency_value_nbp"]); $invoiceData ["netto23"] = Invoice::getNetto($invoiceData ["vats_summary"], "23%", $invoiceData["currency_value"] != NULL ? $invoiceData["currency_value"] : $invoiceData["currency_value_nbp"]); $invoiceData ["vat0"] = Invoice::getVat($invoiceData ["vats_summary"], "0%", $invoiceData["currency_value"] != NULL ? $invoiceData["currency_value"] : $invoiceData["currency_value_nbp"]); $invoiceData ["vat7"] = Invoice::getVat($invoiceData ["vats_summary"], "7%", $invoiceData["currency_value"] != NULL ? $invoiceData["currency_value"] : $invoiceData["currency_value_nbp"]); $invoiceData ["vat8"] = Invoice::getVat($invoiceData ["vats_summary"], "8%", $invoiceData["currency_value"] != NULL ? $invoiceData["currency_value"] : $invoiceData["currency_value_nbp"]); $invoiceData ["vat22"] = Invoice::getVat($invoiceData ["vats_summary"], "22%", $invoiceData["currency_value"] != NULL ? $invoiceData["currency_value"] : $invoiceData["currency_value_nbp"]); $invoiceData ["vat23"] = Invoice::getVat($invoiceData ["vats_summary"], "23%", $invoiceData["currency_value"] != NULL ? $invoiceData["currency_value"] : $invoiceData["currency_value_nbp"]); // 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 //echo 'currency_value_nbp: ' . $data["currency_value_nbp"] . '
'; 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"]; } elseif ($data["currency_value_nbp"] != NULL && $data["currency_value_nbp"] != 0 && $data["currency_value_nbp"] != '') { $data["total_netto"] *= $data["currency_value_nbp"]; $data["total_brutto"] *= $data["currency_value_nbp"]; // $data["purchase_price"] *= $data["currency_value_nbp"]; $data["margin"] *= $data["currency_value_nbp"]; } } /** * 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; } } ?>