Browse Source

New Report Addon in Sales

pull/9/merge
SHEREEF PT 8 years ago
parent
commit
0ab819406a
  1. 29
      untaxed_saleorder_report/README.rst
  2. 23
      untaxed_saleorder_report/__init__.py
  3. 42
      untaxed_saleorder_report/__openerp__.py
  4. 23
      untaxed_saleorder_report/models/__init__.py
  5. 65
      untaxed_saleorder_report/models/without_tax_report.py
  6. 39
      untaxed_saleorder_report/models/without_tax_report.py~
  7. BIN
      untaxed_saleorder_report/static/description/banner.jpg
  8. BIN
      untaxed_saleorder_report/static/description/icon.png
  9. 101
      untaxed_saleorder_report/static/description/index.html
  10. BIN
      untaxed_saleorder_report/static/description/originalinvoice.png
  11. BIN
      untaxed_saleorder_report/static/description/taxdissolvedinvoice.png
  12. BIN
      untaxed_saleorder_report/static/description/taxdissolvedmenu_sale.png
  13. BIN
      untaxed_saleorder_report/static/description/taxdissolvedreportmenu.png
  14. BIN
      untaxed_saleorder_report/static/description/taxdissolvedsalereport.png
  15. 114
      untaxed_saleorder_report/views/without_tax_account_view.xml
  16. 0
      untaxed_saleorder_report/views/without_tax_account_view.xml~
  17. 13
      untaxed_saleorder_report/views/without_tax_report_account_view.xml
  18. 13
      untaxed_saleorder_report/views/without_tax_report_account_view.xml~
  19. 13
      untaxed_saleorder_report/views/without_tax_report_sale_view.xml
  20. 120
      untaxed_saleorder_report/views/without_tax_sale_view.xml

29
untaxed_saleorder_report/README.rst

@ -0,0 +1,29 @@
Tax Dissolved SO/Customer Invoice Report
========================================
This module help to take tax dissolved PDF Print of SO & Customer Invoice.
Reports
-------
* Tax Dissolved Report (In Sales)
* Tax Dissolved Report (In Customer Invoice)
Installation
============
To install this module, you just update the app list after placing the module.
Usage
=====
To use this module, you need to:
* go to the Sales/Accounting menu
* select Quotation/SAle Order -> Print(Centralized Menu)
* select Tax Dissolved Report
Credits
=======
Author
------
* Nilmar Shereef , Cybrosys <www.cybrosys.com>

23
untaxed_saleorder_report/__init__.py

@ -0,0 +1,23 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
# Copyright (C) 2009-TODAY Cybrosys Technologies(<http://www.cybrosys.com>).
# Author: Nilmar Shereef(<http://www.cybrosys.com>)
# you can modify it under the terms of the GNU LESSER
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3.
#
# It is forbidden to publish, distribute, sublicense, or sell copies
# of the Software or modified copies of the Software.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details.
#
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE
# GENERAL PUBLIC LICENSE (LGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
import models

42
untaxed_saleorder_report/__openerp__.py

@ -0,0 +1,42 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
# Copyright (C) 2009-TODAY Cybrosys Technologies(<http://www.cybrosys.com>).
# Author: Nilmar Shereef(<http://www.cybrosys.com>)
# you can modify it under the terms of the GNU LESSER
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3.
#
# It is forbidden to publish, distribute, sublicense, or sell copies
# of the Software or modified copies of the Software.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details.
#
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE
# GENERAL PUBLIC LICENSE (LGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
{
'name': 'Tax Dissolved Sale Order Report',
'version': '0.2',
'author': 'Cybrosys Techno Solutions',
'company': 'Cybrosys Techno Solutions',
'website': "http://www.cybrosys.com",
'category': 'sale',
'description': """ Module gives the Tax Dissolved (In Total Amount) SO/Customer Invoice Print""",
'depends': ['sale', 'account'],
"data": [
"views/without_tax_report_account_view.xml",
"views/without_tax_account_view.xml",
"views/without_tax_sale_view.xml",
"views/without_tax_report_sale_view.xml",
],
'installable': True,
'auto_install': False,
}

23
untaxed_saleorder_report/models/__init__.py

@ -0,0 +1,23 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
# Copyright (C) 2009-TODAY Cybrosys Technologies(<http://www.cybrosys.com>).
# Author: Nilmar Shereef(<http://www.cybrosys.com>)
# you can modify it under the terms of the GNU LESSER
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3.
#
# It is forbidden to publish, distribute, sublicense, or sell copies
# of the Software or modified copies of the Software.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details.
#
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE
# GENERAL PUBLIC LICENSE (LGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
import without_tax_report

65
untaxed_saleorder_report/models/without_tax_report.py

@ -0,0 +1,65 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
# Copyright (C) 2009-TODAY Cybrosys Technologies(<http://www.cybrosys.com>).
# Author: Nilmar Shereef(<http://www.cybrosys.com>)
# you can modify it under the terms of the GNU LESSER
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3.
#
# It is forbidden to publish, distribute, sublicense, or sell copies
# of the Software or modified copies of the Software.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details.
#
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE
# GENERAL PUBLIC LICENSE (LGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from openerp.report import report_sxw
from openerp.osv import osv
class WithoutTax(report_sxw.rml_parse):
_inherit = 'account.tax'
def __init__(self, cr, uid, name, context=None):
super(WithoutTax, self).__init__(cr, uid, name, context=context)
self.localcontext.update({
'get_details': self.get_details,
})
self.context = context
def get_details(self, tax, subtotal):
print tax
total_amount = 0
tax_amount = []
for i in tax:
tax_amount.append(i.amount * 100 )
print tax_amount
for j in range(0, len(tax)):
total_amount = (tax_amount[j] / 100 * subtotal) + total_amount
print total_amount
total = total_amount + subtotal
return total
class AccountReport(osv.AbstractModel):
_name = 'report.untaxed_saleorder_report.invoice_account_report'
_inherit = 'report.abstract_report'
_template = 'untaxed_saleorder_report.invoice_account_report'
_wrapped_report_class = WithoutTax
class SaleReport(osv.AbstractModel):
_name = 'report.untaxed_saleorder_report.invoice_sale_report'
_inherit = 'report.abstract_report'
_template = 'untaxed_saleorder_report.invoice_sale_report'
_wrapped_report_class = WithoutTax

39
untaxed_saleorder_report/models/without_tax_report.py~

@ -0,0 +1,39 @@
from openerp.report import report_sxw
from openerp.osv import osv
class WithoutTax(report_sxw.rml_parse):
_inherit = 'account.tax'
def __init__(self, cr, uid, name, context=None):
super(WithoutTax, self).__init__(cr, uid, name, context=context)
self.localcontext.update({
'get_details': self.get_details,
})
self.context = context
def get_details(self, tax, subtotal):
print tax
total_amount = 0
tax_amount = []
for i in tax:
tax_amount.append(i.amount*100 )
print tax_amount
for j in range(0, len(tax)):
total_amount = (tax_amount[j] / 100 * subtotal) + total_amount
print total_amount
total = total_amount + subtotal
return total
class PrintReport(osv.AbstractModel):
_name = 'report.untaxed_saleorder_report.invoice_report1'
_inherit = 'report.abstract_report'
_template = 'untaxed_saleorder_report.invoice_report1'
_wrapped_report_class = WithoutTax

BIN
untaxed_saleorder_report/static/description/banner.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 141 KiB

BIN
untaxed_saleorder_report/static/description/icon.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

101
untaxed_saleorder_report/static/description/index.html

@ -0,0 +1,101 @@
<section class="oe_container">
<div class="oe_row oe_spaced">
<h2 class="oe_slogan">Tax Dissolved Sale Order/Customer Invoice Report</h2>
<div class="oe_span12">
<p class='oe_mt32'>
We can easily print the Sale Order & Customer Invoice without tax.
Here actually we do not avoid the tax amount, But it dissolved with total amount.
</p>
<div class="oe_centeralign oe_websiteonly">
</div>
</div>
</div>
</section>
<section class="oe_container oe_dark">
<div class="oe_row">
<h2 class="oe_slogan">Tax Dissolved Sale Report</h2>
<div class="oe_span12">
<p class='oe_mt32'>
If you want to hide the tax information from the Sale Report without
effecting the total amount in the sale order report.<br>
You just click the PRINT button
then there we can see two option
</p>
<p class='oe_mt32'>
1.Quotation/Sale Order<br>
2.Tax Dissolved Sale Order
</p>
</div>
</div>
</section>
<section class="oe_container oe_dark">
<div class="oe_row oe_padded">
<div class="oe_span6">
<h3>Print Button</h3>
<div class="oe_row_img oe_centered">
<img class="oe_picture oe_screenshot" src="taxdissolvedmenu_sale.png">
</div>
</div>
<div class="oe_span6">
<h3>Tax Dissolved Sale Order Print</h3>
<img class="oe_picture oe_screenshot" src="taxdissolvedsalereport.png">
</div>
</div>
</section>
<section class="oe_container oe_dark">
<div class="oe_row">
<h2 class="oe_slogan">Tax Dissolved Invoice Report</h2>
<div class="oe_span12">
<p class='oe_mt32'>
If you want to hide the tax information from the Invoice Report without
effecting the total amount in the customer invoice report.<br>
You just click the PRINT button
then there we can see two option
</p>
<p class='oe_mt32'>
1.Invoice<br>
2.Tax Dissolved Invoice
</p>
</div>
</div>
</section>
<section class="oe_container oe_dark">
<div class="oe_row oe_padded">
<div class="oe_span6">
<h3>Print Button</h3>
<div class="oe_row_img oe_centered">
<img class="oe_picture oe_screenshot" src="taxdissolvedreportmenu.png">
</div>
</div>
<div class="oe_span6">
<h3>Tax Dissolved Invoice Print</h3>
<img class="oe_picture oe_screenshot" src="taxdissolvedinvoice.png">
</div>
</div>
</section>
<section class="oe_container oe_dark">
<h2 class="oe_slogan">Need Any Help?</h2>
<div class="oe_slogan">
<a class="btn btn-primary btn-lg mt8"
style="color: #FFFFFF !important;" href="http://www.cybrosys.com"><i
class="fa fa-envelope"></i> Email </a> <a
class="btn btn-primary btn-lg mt8" style="color: #FFFFFF !important;"
href="http://www.cybrosys.com/contact/"><i
class="fa fa-phone"></i> Contact Us </a> <a
class="btn btn-primary btn-lg mt8" style="color: #FFFFFF !important;"
href="http://www.cybrosys.com/odoo-customization-and-installation/"><i
class="fa fa-check-square"></i> Request Customization </a>
</div>
</section>

BIN
untaxed_saleorder_report/static/description/originalinvoice.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

BIN
untaxed_saleorder_report/static/description/taxdissolvedinvoice.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

BIN
untaxed_saleorder_report/static/description/taxdissolvedmenu_sale.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

BIN
untaxed_saleorder_report/static/description/taxdissolvedreportmenu.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 270 KiB

BIN
untaxed_saleorder_report/static/description/taxdissolvedsalereport.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

114
untaxed_saleorder_report/views/without_tax_account_view.xml

@ -0,0 +1,114 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<template id="without_tax_account_invoice">
<t t-call="report.external_layout">
<div class="page">
<div class="row">
<div class="col-xs-5 col-xs-offset-7">
<address t-field="o.partner_id"
t-field-options='{"widget": "contact", "fields": ["address", "name"], "no_marker": true}' />
<span t-if="o.partner_id.vat">TIN: <span t-field="o.partner_id.vat"/></span>
</div>
</div>
<h2>
<span t-if="o.type == 'out_invoice' and (o.state == 'open' or o.state == 'paid')">Invoice</span>
<span t-if="o.type == 'out_invoice' and o.state == 'proforma2'">PRO-FORMA</span>
<span t-if="o.type == 'out_invoice' and o.state == 'draft'">Draft Invoice</span>
<span t-if="o.type == 'out_invoice' and o.state == 'cancel'">Cancelled Invoice</span>
<span t-if="o.type == 'out_refund'">Refund</span>
<span t-if="o.type == 'in_refund'">Supplier Refund</span>
<span t-if="o.type == 'in_invoice'">Supplier Invoice</span>
<span t-field="o.number"/>
</h2>
<div class="row mt32 mb32">
<div class="col-xs-2" t-if="o.name">
<strong>Description:</strong>
<p t-field="o.name"/>
</div>
<div class="col-xs-2" t-if="o.date_invoice">
<strong>Invoice Date:</strong>
<p t-field="o.date_invoice"/>
</div>
<div class="col-xs-2" t-if="o.origin">
<strong>Source:</strong>
<p t-field="o.origin"/>
</div>
<div class="col-xs-2" t-if="o.partner_id.ref">
<strong>Customer Code:</strong>
<p t-field="o.partner_id.ref"/>
</div>
<div class="col-xs-2" t-if="o.reference">
<strong>Reference:</strong>
<p t-field="o.reference"/>
</div>
</div>
<table class="table table-condensed">
<thead>
<tr>
<th>Descriptions</th>
<th>Quantity</th>
<th class="text-right">Unit Price</th>
<th class="text-right" groups="sale.group_discount_per_so_line">Discount (%)</th>
<th class="text-right">Amount</th>
</tr>
</thead>
<tbody class="invoice_tbody">
<tr t-foreach="o.invoice_line" t-as="l">
<td><span t-field="l.name"/></td>
<td>
<span t-field="l.quantity"/>
<span t-field="l.uos_id" groups="product.group_uom"/>
</td>
<td class="text-right">
<span t-field="l.price_unit"/>
</td>
<td class="text-right" groups="sale.group_discount_per_so_line"><span t-field="l.discount"/></td>
<td class="text-right">
<span t-esc="get_details(l.invoice_line_tax_id,l.price_subtotal)"/>
</td>
</tr>
</tbody>
</table>
<div class="row">
<div class="col-xs-4 pull-right">
<table class="table table-condensed">
<tr class="border-black">
<td><strong>Total</strong></td>
<td class="text-right">
<span t-field="o.amount_total" t-field-options='{"widget": "monetary", "display_currency": "o.currency_id"}'/>
</td>
</tr>
</table>
</div>
</div>
<p t-if="o.comment">
<strong>Comment:</strong>
<span t-field="o.comment"/>
</p>
<p t-if="o.payment_term.note">
<strong>Payment Term:</strong>
<span t-field="o.payment_term.note"/>
</p>
<p t-if="o.fiscal_position.note">
<strong>Fiscal Position Remark:</strong>
<span t-field="o.fiscal_position.note"/>
</p>
</div>
</t>
</template>
<template id="invoice_account_report">
<t t-call="report.html_container">
<t t-foreach="doc_ids" t-as="doc_id">
<t t-raw="translate_doc(doc_id, doc_model, 'partner_id.lang', 'untaxed_saleorder_report.without_tax_account_invoice')"/>
</t>
</t>
</template>
</data>
</openerp>

0
untaxed_saleorder_report/views/without_tax_account_view.xml~

13
untaxed_saleorder_report/views/without_tax_report_account_view.xml

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<report
id="account_without_tax_invoice"
string="Tax Dissolved Invoice Report"
model="account.invoice"
report_type="qweb-pdf"
file="untaxed_saleorder_report.invoice_account_report"
name="untaxed_saleorder_report.invoice_account_report"
/>
</data>
</openerp>

13
untaxed_saleorder_report/views/without_tax_report_account_view.xml~

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<report
id="without_tax_invoice"
string="Tax Dissolved Invoice Report"
model="account.invoice"
report_type="qweb-pdf"
file="untaxed_saleorder_print.invoice_account_report"
name="untaxed_saleorder_print.invoice_account_report"
/>
</data>
</openerp>

13
untaxed_saleorder_report/views/without_tax_report_sale_view.xml

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<report
id="sale_without_tax_invoice"
string="tax dissolved invoice report"
model="sale.order"
report_type="qweb-pdf"
file="untaxed_saleorder_report.invoice_sale_report"
name="untaxed_saleorder_report.invoice_sale_report"
/>
</data>
</openerp>

120
untaxed_saleorder_report/views/without_tax_sale_view.xml

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<template id="without_tax_sale_invoice">
<t t-call="report.external_layout">
<div class="page">
<div class="oe_structure"/>
<div class="row">
<div class="col-xs-6">
<strong t-if="o.partner_shipping_id == o.partner_invoice_id">Invoice and shipping address:</strong>
<strong t-if="o.partner_shipping_id != o.partner_invoice_id">Invoice address:</strong>
<div t-field="o.partner_invoice_id"
t-field-options='{"widget": "contact", "fields": ["address", "name", "phone", "fax"], "no_marker": true}'/>
<p t-if="o.partner_id.vat">VAT: <span t-field="o.partner_id.vat"/></p>
<div t-if="o.partner_shipping_id != o.partner_invoice_id" class="mt8">
<strong>Shipping address:</strong>
<div t-field="o.partner_shipping_id"
t-field-options='{"widget": "contact", "fields": ["address", "name", "phone", "fax"], "no_marker": true}'/>
<p t-if="o.partner_id.vat">VAT: <span t-field="o.partner_id.vat"/></p>
</div>
</div>
<div class="col-xs-5 col-xs-offset-1">
<div t-field="o.partner_id"
t-field-options='{"widget": "contact", "fields": ["address", "name"], "no_marker": true}' />
</div>
</div>
<h2>
<span t-if="o.state not in ['draft','sent']">Order N° </span>
<span t-if="o.state in ['draft','sent']">Quotation N° </span>
<span t-field="o.name"/>
</h2>
<div class="row mt32 mb32" id="informations">
<div t-if="o.client_order_ref" class="col-xs-3">
<strong>Your Reference:</strong>
<p t-field="o.client_order_ref"/>
</div>
<div t-if="o.date_order" class="col-xs-3">
<strong t-if="o.state not in ['draft','sent']">Date Ordered:</strong>
<strong t-if="o.state in ['draft','sent']">Quotation Date:</strong>
<p t-field="o.date_order"/>
</div>
<div t-if="o.user_id.name" class="col-xs-3">
<strong>Salesperson:</strong>
<p t-field="o.user_id.name"/>
</div>
<div t-if="o.payment_term" class="col-xs-3">
<strong>Payment Term:</strong>
<p t-field="o.payment_term"/>
</div>
</div>
<table class="table table-condensed">
<thead>
<tr>
<th>Description</th>
<!--<th>Taxes</th>-->
<th class="text-right">Quantity</th>
<th class="text-right">Unit Price</th>
<th groups="sale.group_discount_per_so_line">Disc.(%)</th>
<th class="text-right">Price</th>
</tr>
</thead>
<tbody class="sale_tbody">
<tr t-foreach="o.order_line" t-as="l">
<td>
<span t-field="l.name"/>
</td>
<td class="text-right">
<span t-field="l.product_uom_qty"/>
<span groups="product.group_uom" t-field="l.product_uom"/>
</td>
<td class="text-right">
<span t-field="l.price_unit"/>
</td>
<td groups="sale.group_discount_per_so_line">
<span t-field="l.discount"/>
</td>
<td class="text-right">
<span t-esc="get_details(l.tax_id,l.price_subtotal)"/>
</td>
</tr>
</tbody>
</table>
<div class="row">
<div class="col-xs-4 pull-right">
<table class="table table-condensed">
<tr class="border-black">
<td><strong>Total</strong></td>
<td class="text-right">
<span t-field="o.amount_total"
t-field-options='{"widget": "monetary", "display_currency": "o.pricelist_id.currency_id"}'/>
</td>
</tr>
</table>
</div>
</div>
<p t-field="o.note" />
<p t-if="o.payment_term.note">
<strong>Payment Term:</strong>
<span t-field="o.payment_term.note"/>
</p>
<div class="oe_structure"/>
</div>
</t>
</template>
<template id="invoice_sale_report">
<t t-call="report.html_container">
<t t-foreach="doc_ids" t-as="doc_id">
<t t-raw="translate_doc(doc_id, doc_model, 'partner_id.lang','untaxed_saleorder_report.without_tax_sale_invoice')" />
</t>
</t>
</template>
</data>
</openerp>
Loading…
Cancel
Save