added fatturato
This commit is contained in:
@@ -59,6 +59,39 @@ class MagoSalesStats
|
||||
return "DATE_ADD($z, INTERVAL (" . (int)self::ZIBO_WEEK_END_DAYS . " - WEEKDAY($z)) DAY)";
|
||||
}
|
||||
|
||||
/**
|
||||
* FATTURATO: tipi di documento di vendita che contano (verificati sui dati reali il 14/10/2026)
|
||||
* e segno con cui contano. Esclusi: DDT 3407873, DDT non valorizzati 3407881,
|
||||
* proforma 3407888, movimenti deposito 3407890.
|
||||
*/
|
||||
const INVOICE_TYPES = [
|
||||
3407874 => 1, // Fattura (immediata / differita) serie A ...
|
||||
3407883 => 1, // Fattura d'acconto (TD02) serie B
|
||||
3407876 => -1, // Nota di credito (TD04) → in negativo serie D ...
|
||||
];
|
||||
|
||||
/** Vista fatture/note di credito (alias i) con imponibile già col segno giusto (revenue). */
|
||||
public static function invoiceFrom()
|
||||
{
|
||||
$types = implode(',', array_map('intval', array_keys(self::INVOICE_TYPES)));
|
||||
$sign = 'CASE d.document_type';
|
||||
foreach (self::INVOICE_TYPES as $t => $sg) $sign .= ' WHEN ' . (int)$t . ' THEN ' . ((int)$sg < 0 ? -1 : 1);
|
||||
$sign .= ' ELSE 0 END';
|
||||
|
||||
return "(
|
||||
SELECT d.sale_doc_id, d.document_type, d.doc_no, d.document_date,
|
||||
d.customer, d.salesperson, d.area,
|
||||
COALESCE(NULLIF(c.company_name, ''), d.customer) AS company_name,
|
||||
($sign) * COALESCE(d.taxable_amount, 0) AS revenue,
|
||||
($sign) < 0 AS is_credit_note,
|
||||
d.summary_tb_modified IS NULL AS no_amount
|
||||
FROM mago_sale_doc d
|
||||
LEFT JOIN mago_cust_supp c
|
||||
ON c.cust_supp_type = " . self::CUSTOMER_TYPE . " AND c.cust_supp = d.customer
|
||||
WHERE d.document_type IN ($types) AND d.cancelled = 0
|
||||
) i";
|
||||
}
|
||||
|
||||
/** Scadenza di testata (usata solo per ordini senza righe). */
|
||||
public static function headerDue($a)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user