Sprzedaż i zakupy
Całość operacji sprzedaży i zakupów jest ewidencjonowana w modelach:
- account.invoice - faktury
- account.invoice.line - wiersze faktur
- account.invoice.tax - podatki
- account.move - dokument księgowy (zapis w dzienniku)
- account.move.line - wiersze dokumentu księgowego
Przykładowe zapytanie do bazy danych, zwracające informacje związane z obrotem fakturowanym:
select move.id id, move.date date, date_invoice, move.name "name",
(select name from res_partner where res_partner.id=move.partner_id) partner,
(select name from res_currency cur where cur.id=move.currency_id) currency,
amount, move.write_date,
move.create_uid,
inv.number inv_number,
amount_total_company_signed amount_total,
amount_tax,
amount_untaxed,
move.company_id,
move.partner_id,
move.state,
move.journal_id
from account_move move
left outer join account_invoice inv on move.id=inv.move_id
Sposób zaksięgowania podatku pokazuje zapytanie:
select
move.name,
move.ref nr_doc,
move.partner_id,
(select sum(ml1.debit) from account_move_line ml1
left outer join account_move_line_account_tax_rel taxrel on taxrel.account_move_line_id=ml1.id
where ml.tax_line_id=taxrel.account_tax_id) amount,
ml.debit tax_amount,
ml.tax_line_id,
tax.amount percent
from account_move_line ml
join account_move move on ml.move_id=move.id
join account_tax tax on ml.tax_line_id=tax.id
where move.state='posted' and tax.type_tax_use='purchase';
Dotyczy to zarówno podatku VAT naliczonego jak i należnego. Decyduje type_tax_use
: purchase lub sale. Także w przypadku faktur mamy rozróżnienie zakupu od sprzedaży w polu tekstowym type. Odpowiednio: in_invoice, out_invoice.