Sfoglia il codice sorgente

commit analisis_accountvoucher

sebas 8 anni fa
parent
commit
bd934f163e

+ 2 - 2
__init__.py

@@ -24,6 +24,6 @@
 ###################################################################################
 # Product Brand is an Openobject module wich enable Brand management for products #
 ###################################################################################
-from . import analisis_diariocta
-from . import report_diariocta
+
+from . import analisis_accountvoucher
 import math

BIN
__init__.pyc


+ 6 - 6
__openerp__.py

@@ -25,14 +25,14 @@
 # Product features is an Openobject module wich enable features management for products #
 ###################################################################################
 {
-    'name': 'Analisis de Entrada sobre Diario de Cuentas',
+    'name': 'Analisis de Entrada y Salida sobre Diario de Cuentas',
     'version': '0.1',
     'category': 'Product',
     'description': """
-Analisis de Entrada sobre Diario de Cuentas
+Analisis de Entrada y Salida sobre Account Voucher
 ====================================================
 
-Analisis de Entrada sobre Diario de Cuentas
+Analisis de Entrada y Salida sobre Account Voucher
 - Cuenta con varios filtros y muestra los siguientes datos: fecha, partner, referencia, monto, fecha
 
 
@@ -41,9 +41,9 @@ Analisis de Entrada sobre Diario de Cuentas
     'website': '',
 	'depends': ['account', 'report'],
     'data': [
-		'informe_analisis_diariocta_view.xml',
-        'analisisdiariocta_filter_view.xml',
-        'informe_diariocta_por_fecha.xml',
+		'analisis_accountvoucher_filter_view.xml',
+        'informe_analisis_accountvoucher_fecha.xml',
+        'informe_analisis_accountvoucher_view.xml',
     ],
     'installable': True,
 }

+ 19 - 13
analisis_diariocta.py → analisis_accountvoucher.py

@@ -15,7 +15,7 @@
 #    GNU Affero General Public License for more details.
 #
 #    You should have received a copy of the GNU Affero General Public License
-#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.                            if(l.type='receipt','l.amount','0') AS amount_entrada,
 #                                     r.employee_id as         'amount_salida': fields.float('Total Salida', readonly=True),
 #            GROUP BY p.id ,l.partner_id,l.journal_id,l.create_date,l.amount_total,s.total
 
@@ -27,40 +27,46 @@ from openerp.tools.translate import _
 from openerp.tools import DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT
 
 
-class diariocta_analisis(osv.osv):
-    _name = "diariocta.analisis"
-    _description = "Analisis de Entrada sobre Diario de Cuentas"
+class diarioacc_voucher(osv.osv):
+    _name = "diarioacc.voucher"
+    _description = "Analisis de Entrada y Salida sobre Diario de Cuentas"
     _auto = False
 
     _columns = {
         'invoice_id': fields.char('N°Ref Cobro', readonly=True),
         'partner_id': fields.many2one('res.partner', 'Partner', readonly=True),
+        'reference': fields.char('Ref #', readonly=True),
         'type': fields.char('Tipo', readonly=True),
         'currency_id': fields.many2one('res.currency', 'Moneda', required=True,readonly=True),
         'amount_entrada': fields.float('Total Entrada', readonly=True),
+        'amount_salida': fields.float('Total Salida', readonly=True),
+        'saldo': fields.float('Saldo', readonly=True),
         'date_x': fields.date('Date Order', readonly=True),
     }
     _order = 'date_x desc'
 
 
     def init(self, cr):
-            tools.sql.drop_view_if_exists(cr, 'diariocta_analisis')
+            tools.sql.drop_view_if_exists(cr,'diarioacc_voucher')
             cr.execute("""
-                CREATE OR REPLACE VIEW diariocta_analisis AS (
-                   SELECT row_number() over (ORDER BY l.id)as id,
+                CREATE OR REPLACE VIEW diarioacc_voucher AS (
+
+                   SELECT row_number() over (ORDER BY l.id) as id,
                            r.name as invoice_id,
                            l.partner_id as partner_id,
+                           l.reference as reference,
                            l.type as type,
                            l.payment_rate_currency_id as currency_id,
-                           l.amount AS amount_entrada,
+                           (case when l.type = 'receipt' and l.amount>0 then l.amount else 0 end) as amount_entrada,
+                           (case when l.type = 'payment' then l.amount else 0 end) as amount_salida,
+                           ((case when l.type = 'payment' then l.amount else 0 end)-(case when l.type = 'receipt' and l.amount>0 then l.amount else 0 end)) as saldo,
                            l.date as date_x
                     FROM account_move r
-                        left join account_voucher l on (r.id=l.move_id)
+                    left join account_voucher l on (r.id=l.move_id)
                              left join account_voucher_line p on (p.voucher_id=l.id)
-
-                    WHERE l.state='posted' and l.amount>0 and l.type='receipt'
-                    GROUP BY l.id,r.name,l.partner_id,l.type,l.payment_rate_currency_id ,l.amount,l.date
+                    WHERE l.state='posted'
+                    GROUP BY l.id,r.name,l.partner_id,l.reference,l.type,l.payment_rate_currency_id ,l.date
 
                 )
              """)
-diariocta_analisis()
+diarioacc_voucher()

BIN
analisis_accountvoucher.pyc


+ 11 - 11
analisisdiariocta_filter_view.xml → analisis_accountvoucher_filter_view.xml

@@ -6,37 +6,37 @@
 
     <!-- Custom reports (aka filters) -->
 
-   <record id="filter_analisis_diariocta_diario1" model="ir.filters">
+   <record id="filter_analisis_diariocta_voucher1" model="ir.filters">
         <field name="name">Por Mes</field>
-        <field name="model_id">diariocta.analisis</field>
+        <field name="model_id">diarioacc.voucher</field>
         <field name="journal_id" eval="False"/>
         <field name="context">{'group_by': ['date_x:month']}</field>
     </record>
 
-    <record id="filter_analisis_diariocta_diario" model="ir.filters">
+    <record id="filter_analisis_diarioacc_voucher" model="ir.filters">
          <field name="name">Por Moneda/Mes</field>
-         <field name="model_id">diariocta.analisis</field>
+         <field name="model_id">diarioacc.voucher</field>
          <field name="journal_id" eval="False"/>
          <field name="context">{'group_by': ['date_x:month', 'currency_id']}</field>
      </record>
 
-     <record id="filter_analisis_diariocta_diariomes" model="ir.filters">
+     <record id="filter_analisis_diariocta_vouchermes" model="ir.filters">
           <field name="name">Por Diario</field>
-          <field name="model_id">diariocta.analisis</field>
+          <field name="model_id">diarioacc.voucher</field>
           <field name="journal_id" eval="False"/>
           <field name="context">{'group_by': ['currency_id']}</field>
       </record>
 
-      <record id="filter_analisis_cliente_diario2" model="ir.filters">
+      <record id="filter_analisis_cliente_voucher2" model="ir.filters">
            <field name="name">Por Cliente</field>
-           <field name="model_id">diariocta.analisis</field>
+           <field name="model_id">diarioacc.voucher</field>
            <field name="journal_id" eval="False"/>
            <field name="context">{'group_by': ['partner_id']}</field>
        </record>
 
-    <record id="view_order_diariocta_search2" model="ir.ui.view">
-        <field name="name">diariocta.analisis.search</field>
-        <field name="model">diariocta.analisis</field>
+    <record id="view_order_diariovoucher_search2" model="ir.ui.view">
+        <field name="name">diarioacc.analisis.search</field>
+        <field name="model">diarioacc.voucher</field>
         <field name="arch" type="xml">
             <search string="Analisis de Entrada">
               <filter string="Este año" name="year" domain="[('date_x','&lt;=', time.strftime('%%Y-12-31')),('date_x','&gt;=',time.strftime('%%Y-01-01'))]"/>

BIN
analisis_diariocta.pyc


+ 118 - 0
informe_analisis_accountvoucher_fecha.xml

@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+	<data>
+		<report id="report_diarioacc3"
+            model="diarioacc.voucher"
+            string="Listado de Entrada y Salida"
+            report_type="qweb-pdf"
+            name="analisis_accountvoucher.informe_diarioacc_por_fecha"
+            file="analisis_accountvoucher.informe_diarioacc_por_fecha"
+    />
+
+		<template id="informe_diarioacc_por_fecha">
+			<t t-call="report.html_container">
+				<t t-call="report.external_layout">
+					<div class="page">
+						<style type="text/css">
+							.crm_tcab{
+							font-size: 3mm;
+							font-family: Arial, Helvetica, sans-serif;
+							}
+
+							.crm_tbody{
+							font-size: 2.8mm;
+							font-family: Arial, Helvetica, sans-serif;
+							}
+
+							.logo1{
+							width: 100%;
+							top: 1.5cm;
+							}
+
+							.total1{
+							font-size: 2.8mm;
+							font-family: Arial, Helvetica, sans-serif;
+							}
+
+						</style>
+						<h3 class="text-center">Listado de Entrada y Salida</h3>
+						<div class="logo1" />
+
+						<table class="table table-condensed" style="width: 100%">
+						<thead class="crm_tcad">
+								<tr class="active">
+									<th class="text-left"><u>Debe</u></th>
+									<th class="text-right"><u>Habe</u></th>
+								</tr>
+						</thead>
+						</table>
+
+						  <table class="table table-condensed" style="width: 100%">
+							<thead class="crm_tcab">
+								<tr class="active">
+									<th class="text-left" style="width: 20%">Referencia</th>
+									<th class="text-left" style="width: 15%">Moneda</th>
+									<th class="text-center" style="border-right-style: solid">Entrada</th>
+									<th class="text-left" style="width: 10%">Reg.Cobro</th>
+									<th class="text-left" style="width: 15%">    </th>
+									<th class="text-right" style="width: 20%">Salida</th>
+								</tr>
+							</thead>
+							<t t-foreach="docs" t-as="o">
+							<tbody>
+									<tr>
+										<td class="text-left" style="width: 20%">
+											<span t-esc="o.reference"/>
+										</td>
+										<td class="text-left" style="width: 15%">
+											<span t-esc="o.currency_id.name"/>
+										</td>
+										<td class="text-right" style="border-right-style: solid">
+											<span t-field="o.amount_entrada"/>
+										</td>
+										<td class="text-right" style="width: 10%;">
+											<span t-field="o.invoice_id"/>
+										</td>
+										<td class="text-right" style="width: 15%">
+											<li> </li>
+										</td>
+										<td class="text-right" style="width: 20%">
+											<span t-field="o.amount_salida"/>
+										</td>
+
+									</tr>
+							</tbody>
+							</t>
+
+							    <tr>
+										<td colspan="6"></td>
+									</tr>
+									<tr class="border-black">
+											<td colspan="1">Total:</td>
+											<td class="text-right">
+													<t t-set="totalent" t-value="sum([x.amount_entrada for x in docs])"/>
+													<span t-esc="totalent" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/>
+											</td>
+											<td colspan="4"></td>
+											<td class="text-right">
+													<t t-set="totalsal" t-value="sum([x.amount_salida for x in docs])"/>
+													<span t-esc="totalsal" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/>
+											</td>
+								 </tr>
+
+                 <tr>
+									   <td colspan="1">Diferencia/Saldo:</td>
+								     <td colspan="5"></td>
+								     <td class="text-right">
+										    <t t-set="tsaldo" t-value="sum([x.saldo for x in docs])"/>
+										    <span t-esc="tsaldo" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/>
+								     </td>
+                 </tr>
+						  </table>
+
+					</div>
+				</t>
+			</t>
+		</template>
+	</data>
+</openerp>

+ 37 - 0
informe_analisis_accountvoucher_view.xml

@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+    <data>
+        <record id="diarioacc_voucher_tree_view" model="ir.ui.view">
+            <field name="name">diarioacc.analisis.tree.view</field>
+            <field name="model">diarioacc.voucher</field>
+            <field name="priority" eval="20"/>
+            <field name="arch" type="xml">
+            <tree string="Analisis de Entrada sobre Diario de Cuentas" create="false">
+            <field name="id" invisible="1"/>
+            <field name="partner_id"/>
+            <field name="reference"/>
+            <field name="invoice_id"/>
+            <field name="currency_id" string="Moneda"/>
+            <field name="amount_entrada" sum="totalent" string="Total Entrada"/>
+            <field name="amount_salida" sum="totalsal" string="Total Salida"/>
+            <field name="saldo" sum="totalsaldo" string="Total Saldo" invisible="1"/>
+            <field name="date_x" string="Fecha"/>
+				</tree>
+            </field>
+        </record>
+
+
+		<record id="action_diarioacc_voucher_tree_view" model="ir.actions.act_window">
+            <field name="name">Entrada y Salida sobre Account Voucher</field>
+            <field name="res_model">diarioacc.voucher</field>
+            <field name="view_type">form</field>
+            <field name="view_mode">tree</field>
+        </record>
+
+
+
+		<menuitem name="Entrada y Salida sobre Account Voucher" sequence="47" id="menu_analisisdiarioacc_gral" parent="base.menu_reporting"/>
+		<menuitem id="diarioacc_analisis_menu" name="Entrada y Salida sobre Account Voucher" parent="menu_analisisdiarioacc_gral" action="action_diarioacc_voucher_tree_view"/>
+
+	</data>
+</openerp>

+ 0 - 53
informe_analisis_diariocta_view.xml

@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<openerp>
-    <data>
-        <record id="diariocta_analisis_tree_view" model="ir.ui.view">
-            <field name="name">diariocta.analisis.tree.view</field>
-            <field name="model">diariocta.analisis</field>
-            <field name="priority" eval="20"/>
-            <field name="arch" type="xml">
-            <tree string="Analisis de Entrada sobre Diario de Cuentas" create="false">
-            <field name="id" invisible="1"/>
-            <field name="partner_id"/>
-            <field name="invoice_id"/>
-            <field name="currency_id" string="Moneda"/>
-            <field name="amount_entrada" sum="totalent" string="Total Entrada"/>
-            <field name="date_x" string="Fecha"/>
-				</tree>
-            </field>
-        </record>
-
-    <!--  	<record model="ir.ui.view" id="diariocta_analisis_form">
-                <field name="name">Analisis de Entrada y Salida sobre Diario de Cuentas</field>
-                <field name="model">diariocta.analisis</field>
-                <field name="view_type">form</field>
-                <field eval="20" name="priority"/>
-                <field name="arch" type="xml">
-                    <form string="Entrada/Salida" create="false" edit="false">
-                        <group>
-                            <field name="partner_id" on_change="onchange_partner_id(partner_id)"/>
-                            <field name="employee_id"/>
-                            <field name="invoice_id" on_change="onchange_invoice_id(invoice_id)"/>
-                            <field name="journal_id"/>
-                            <field name="amount_entrada"/>
-    						            <field name="amount_salida"/>
-    						            <field name="date_x"/>
-                        </group>
-                    </form>
-                </field>
-            </record> -->
-
-		<record id="action_diariocta_analisis_tree_view" model="ir.actions.act_window">
-            <field name="name">Analisis de Entrada sobre Diario de Cuentas</field>
-            <field name="res_model">diariocta.analisis</field>
-            <field name="view_type">form</field>
-            <field name="view_mode">tree</field>
-        </record>
-
-
-
-		<menuitem name="Analisis de Entrada sobre Diario de Cuentas" sequence="47" id="menu_analisisdiariocta_gral" parent="base.menu_reporting"/>
-		<menuitem id="diariocta_analisis_menu" name="Analisis de Entrada sobre Diario de Cuentas" parent="menu_analisisdiariocta_gral" action="action_diariocta_analisis_tree_view"/>
-
-	</data>
-</openerp>

+ 0 - 90
informe_diariocta_por_fecha.xml

@@ -1,90 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<openerp>
-	<data>
-		<report id="report_diariocta3"
-            model="diariocta.analisis"
-            string="Listado de Entrada"
-            report_type="qweb-pdf"
-            name="analisis_entrada.informe_diariocta_por_fecha"
-            file="analisis_entrada.informe_diariocta_por_fecha"
-    />
-
-		<template id="informe_diariocta_por_fecha">
-			<t t-call="report.html_container">
-				<t t-call="report.external_layout">
-					<div class="page">
-						<style type="text/css">
-							.crm_tcab{
-							font-size: 3mm;
-							font-family: Arial, Helvetica, sans-serif;
-							}
-
-							.crm_tbody{
-							font-size: 2.8mm;
-							font-family: Arial, Helvetica, sans-serif;
-							}
-
-							.logo1{
-							width: 100%;
-							top: 1.5cm;
-							}
-
-							.total1{
-							font-size: 2.8mm;
-							font-family: Arial, Helvetica, sans-serif;
-							}
-
-						</style>
-						<h4 class="text-center">Listado de Entrada</h4>
-						<div class="logo1" />
-
-						  <table class="table table-condensed">
-							<thead class="crm_tcab">
-								<tr class="active">
-									<th class="text-left">Cliente</th>
-									<th class="text-left">N°Ref Cobro</th>
-									<th class="text-left">Moneda</th>
-									<th class="text-center">Entrada</th>
-									<th class="text-center">Fecha</th>
-								</tr>
-							</thead>
-							<t t-foreach="docs" t-as="o">
-							<tbody>
-									<tr>
-										<td class="text-left">
-											<span t-esc="o.partner_id.name"/>
-										</td>
-										<td class="text-left">
-											<span t-esc="o.invoice_id"/>
-										</td>
-										<td class="text-left">
-											<span t-esc="o.currency_id.name"/>
-										</td>
-										<td class="text-right">
-											<span t-field="o.amount_entrada"/>
-										</td>
-										<td>
-											<span t-field="o.date_x" t-field-options='{"widget": "date"}'/>
-										</td>
-									</tr>
-							</tbody>
-							</t>
-
-							    <tr>
-												 <td colspan="8"></td>
-														 </tr>
-														 <tr class="border-black">
-																 <td colspan="3">Total:</td>
-																 <td class="text-right">
-																		 <t t-set="totalent" t-value="sum([x.amount_entrada for x in docs])"/>
-																		 <span t-esc="totalent" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/>
-																</td>
-								 </tr>
-						  </table>
-
-					</div>
-				</t>
-			</t>
-		</template>
-	</data>
-</openerp>

+ 12 - 0
report_accountvoucher.py

@@ -0,0 +1,12 @@
+#    You should have received a copy of the GNU Affero General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+from openerp  import models, fields, api
+
+
+
+
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

BIN
report_accountvoucher.pyc


+ 0 - 55
report_diariocta.py

@@ -1,55 +0,0 @@
-#    You should have received a copy of the GNU Affero General Public License
-#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-##############################################################################
-
-from datetime import datetime, timedelta
-import time
-from openerp.osv import fields, osv
-from openerp.tools.translate import _
-from openerp.tools import DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT
-import openerp.addons.decimal_precision as dp
-from openerp import workflow
-
-# class product_product(osv.Model):
-    # _inherit = 'product.product'
-
-    # def _sales_count(self, cr, uid, ids, field_name, arg, context=None):
-        # SaleOrderLine = self.pool['sale.order.line']
-        # return {
-            # product_id: SaleOrderLine.search_count(cr,uid, [('product_id', '=', product_id)], context=context)
-            # for product_id in ids
-        # }
-
-    # _columns = {
-        # 'sales_count': fields.function(_sales_count, string='# Sales', type='integer'),
-
-    # }
-
-# class product_template(osv.Model):
-    # _inherit = 'product.template'
-
-    # def _sales_count(self, cr, uid, ids, field_name, arg, context=None):
-        # res = dict.fromkeys(ids, 0)
-        # for template in self.browse(cr, uid, ids, context=context):
-            # res[template.id] = sum([p.sales_count for p in template.product_variant_ids])
-        # return res
-    
-    # def action_view_sales(self, cr, uid, ids, context=None):
-        # act_obj = self.pool.get('ir.actions.act_window')
-        # mod_obj = self.pool.get('ir.model.data')
-        # product_ids = []
-        # for template in self.browse(cr, uid, ids, context=context):
-            # product_ids += [x.id for x in template.product_variant_ids]
-        # result = mod_obj.xmlid_to_res_id(cr, uid, 'sale.action_order_line_product_tree',raise_if_not_found=True)
-        # result = act_obj.read(cr, uid, [result], context=context)[0]
-        # result['domain'] = "[('product_id','in',[" + ','.join(map(str, product_ids)) + "])]"
-        # return result
-    
-    
-    # _columns = {
-        # 'sales_count': fields.function(_sales_count, string='# Sales', type='integer'),
-
-    # }
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

BIN
report_diariocta.pyc