Browse Source

[ADD] Modal de transferencia de caja

adrielso 7 years ago
parent
commit
d094620a13

+ 1 - 0
.gitignore

@@ -0,0 +1 @@
+*.pyc

+ 2 - 0
__init__.py

@@ -0,0 +1,2 @@
+# -*- coding: utf-8 -*-
+import models

+ 4 - 3
__openerp__.py

@@ -10,11 +10,12 @@
         'eiru_assets',
     ],
     'data': [
-        # 'views/template.xml',
-        # 'views/import_statement.xml'
+        'views/template.xml',
+        'views/eiru_statement_utility.xml'
     ],
     'qweb': [
-        'static/src/xml/*.xml'
+        'static/src/xml/*.xml',
+        'static/src/xml/modal/*.xml',
     ],
 
     'installable': True,

+ 2 - 0
models/__init__.py

@@ -0,0 +1,2 @@
+# -*- coding: utf-8 -*-
+import account_bank_statement_utility

+ 36 - 0
models/account_bank_statement_utility.py

@@ -0,0 +1,36 @@
+# -*- coding: utf-8 -*-
+from openerp import models, fields, tools, api
+
+class AccountBankStatementUtility(models.Model):
+    _inherit = 'account.bank.statement'
+
+    '''
+        get_account_bank_statement_utility
+    '''
+    @api.model
+    def get_account_bank_statement_utility(self, id):
+        print('\n\nget_account_bank_statement_utility\n\n')
+        bankStatement = self.env['account.bank.statement'].browse(id)
+
+        if (not bankStatement):
+            return False
+
+        accountStatement = []
+        amount = 0.0
+        for line in bankStatement.line_ids:
+            amount += line.amount
+
+        accountStatement.append({
+            'id': bankStatement.id,
+            'name': bankStatement.name,
+            'date': bankStatement.date,
+            'journalId': bankStatement.journal_id.id,
+            'periodId': bankStatement.period_id.id,
+            'userId': bankStatement.user_id.id,
+            'userName': bankStatement.user_id.name,
+            'posSessionName': bankStatement.pos_session_id.name,
+            'typeStatement': bankStatement.type_statement,
+            'amount': amount
+        })
+
+        return accountStatement

BIN
static/description/icon.png


+ 79 - 0
static/src/css/style.css

@@ -0,0 +1,79 @@
+.eiru-statement-utility {
+    width: auto;
+    float: left;
+}
+.eiru-statement-button {
+    float: left;
+    margin-right: 0px;
+}
+.from-title-h3 {
+    font-size: 9pt !important;
+    margin-top: 0px;
+    margin-bottom: 10px;
+    padding-left: 12px;
+    color: #ccc;
+}
+.from-title-hr {
+    margin-bottom: 10px;
+    margin-top: 5px
+}
+.transfer-check {
+    padding-left:  90px;
+}
+.statement-radio-label{
+    font-size: 17px;
+}
+
+.statement-input-labe {
+    width: 150px;
+    height: 35px;
+    font-size: 17px;
+    padding-top: 5px;
+    padding-left: 5px;
+}
+.statement-input-group {
+    width: calc(100% - 150px);
+    height: 35px;
+    padding-left: 5px;
+    padding-right: 5px;
+    float: right;
+}
+.statement-input-number {
+    width: calc(100% - 30px);
+    height: 35px;
+    float: left;
+    font-size: 14pt;
+    text-align: right;
+}
+.input-all{
+    width: 100%;
+}
+.input-letters{
+    width: 100%;
+    text-align: left;
+}
+.statement-input-symbol {
+    width: 30px;
+    height: 35px;
+    float: right;
+    text-align: center;
+    font-size: 17pt;
+    border: 1px solid #ccc;
+    background: #e3e3e3;
+}
+
+
+
+
+
+
+/*Modal ( Pie de Pagina / Button)*/
+.statement-utility-footer {
+    padding-top: 10px;
+    padding-bottom: 10px;
+}
+.statement-utility-button {
+    font-size: 12pt !important;
+    width: 130px;
+    height: 35px;
+}

+ 156 - 0
static/src/js/eiru_statement_transfer.js

@@ -0,0 +1,156 @@
+(function() {
+
+    openerp.widgetInstanceStatementTransfer = null;
+    openerp.parentInstanceStatementTransfer = {};
+    var QWeb = openerp.web.qweb;
+    var instanceWeb = openerp.web;
+    // StatementTransfer
+    openerp.EiruStatementTransfer = openerp.Widget.extend({
+        template: 'EiruStatementUtility.Transfer',
+        id: undefined,
+        buttons: undefined,
+        bankStatement: [],
+        accountStatement: [],
+        /* init */
+        init: function(parent) {
+            this._super(parent);
+            this.buttons = parent.$buttons;
+        },
+        /* start */
+        start: function () {
+            var self = this;
+            this.$el.click(function(){
+                self.fetchInitial();
+            });
+            self.buttons.click(function(e) {
+                /* C (Crear) */
+                if (e.target.accessKey === 'C')
+                    self.$el.css('display','none');
+                /* E (Editar) */
+                if (e.target.accessKey === 'E')
+                    self.$el.css('display','none');
+                /* S (Guarrdar) */
+                if (e.target.accessKey === 'S')
+                    self.$el.css('display','flex');
+                /* D (Cancelar) */
+                if (e.target.accessKey === 'D')
+                    self.$el.css('display','flex');
+            });
+        },
+        /* Actualizar Id de la visat actual  */
+        updateId: function(id) {
+            var self = this;
+            self.id = id;
+        },
+        /* Reload Page*/
+        reloadPage: function() {
+             openerp.parentInstanceStatementTransfer.reload();
+        },
+        /* Description: Función para remover el modal */
+        removeModal: function() {
+            $('.expired-account-modal').remove();
+            $('.modal-backdrop').remove();
+        },
+        /* Método inicial  */
+        fetchInitial: function() {
+            var self = this;
+            self.fetchBankStatement(self.id).then(function(bankStatement){
+                return bankStatement;
+            }).then(function(bankStatement){
+                self.bankStatement = bankStatement;
+                return self.fetchAccountBankStatement();
+            }).then(function(accountStatement){
+                self.accountStatement = accountStatement;
+                return self.showModalTransfer();
+            });
+
+        },
+        /* Account bank Statement */
+        fetchBankStatement: function(id) {
+            var invoiceMoveLine = new instanceWeb.Model('account.bank.statement');
+            return invoiceMoveLine.call('get_account_bank_statement_utility',[id], {
+                context: new instanceWeb.CompoundContext()
+            });
+        },
+
+        fetchAccountBankStatement() {
+            var self = this;
+            var statement = self.bankStatement[0];
+
+            if (!statement)
+                return false;
+
+            var fields = ['id','journal_id','date','period_id','type_statement','user_id', 'name'];
+            var domain = [['id', '!=', statement.id],['journal_id', '=', statement.journalId],['date', '=', statement.date],['period_id', '=', statement.periodId]];
+            var statementBank = new instanceWeb.Model('account.bank.statement');
+            return statementBank.query(fields).filter(domain).all();
+        },
+
+        // id
+        // name
+        // date
+        // journalId
+        // periodId
+        // userId
+        // userName
+        // posSessionName
+        // typeStatement
+        // amount
+
+        /*Modal  Transfer */
+        showModalTransfer: function() {
+            var self = this;
+            var defer =$.Deferred();
+            var results = true;
+
+            var modal = QWeb.render('ModalStatementUtility.Transfer',{
+                'journal': [],
+                'statement': self.accountStatement,
+            });
+
+            $('.openerp_webclient_container').after(modal);
+            $('.expired-account-modal').modal();
+
+            /* Click Cerrar */
+            $('.expired-account-modal').on('hidden.bs.modal', function(e) {
+                results = false;
+                defer.resolve(results);
+                self.removeModal(e);
+            });
+
+            var statementAmount = $('.expired-account-modal').find('.statement-amount')
+
+
+            statementAmount.val(self.bankStatement[0].amount)
+            return defer;
+        },
+    });
+
+    if (openerp.web && openerp.web.FormView) {
+        openerp.web.FormView.include({
+            load_record: function(record) {
+                this._super.apply(this, arguments);
+
+                if (this.model !== 'account.bank.statement')
+                    return;
+
+                openerp.parentInstanceStatementTransfer = this;
+
+                if (openerp.widgetInstanceStatementTransfer) {
+                    openerp.widgetInstanceStatementTransfer.updateId(record.id);
+                    if (this.$el.find('.button-statement-transfer').length !== 0 )
+                        return ;
+                }
+
+                if (this.$el.find('.button-statement-transfer').length !== 0 )
+                    return;
+
+                openerp.widgetInstanceStatementTransfer = new openerp.EiruStatementTransfer(this);
+                var element =this.$el.find('.oe_form').find('.eiru-statement-utility');
+
+                openerp.widgetInstanceStatementTransfer.appendTo(element[0]);
+                openerp.widgetInstanceStatementTransfer.updateId(record.id);
+            }
+        });
+    }
+})();

+ 8 - 0
static/src/xml/eiru_statement_transfer.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<templates xml:space="preserve">
+    <t t-name="EiruStatementUtility.Transfer">
+        <button class="button-statement-transfer eiru-statement-button oe_button oe_form_button oe_highlight">
+            <span>Transferir</span>
+        </button>
+  </t>
+</templates>

+ 107 - 0
static/src/xml/modal/modal_statement_transfer.xml

@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<template xml:space="preserve">
+    <t t-name="ModalStatementUtility.Transfer">
+        <div class="modal in expired-account-modal" tabindex="-1" role="dialog">
+            <div class="modal-dialog modal-lg" role="document">
+                <div class="modal-content openerp">
+                    <!-- <div class="widget-content widget-loading-payments">
+                        <i class='fa fa-cog fa-spin fa-3x fa-fw'></i>
+                    </div> -->
+                    <!-- title  -->
+                    <div class="modal-header paymnets-invoice-header">
+                        <button type="button" class="close" data-dismiss="modal" aria-label="Close" aria-hidden="true">×</button>
+                        <h3 class="modal-title">Transferencia de valores</h3>
+                    </div>
+                    <!-- Body -->
+                    <div class="modal-body">
+                        <!-- Forma de Transferencia [Transferencia - Poner dinero - Sacar Dinero ] -->
+                        <div class="row">
+                             <h3 class="from-title-h3">Forma de Transferencia</h3>
+                        </div>
+                        <div class="row">
+                            <div class="col-xs-4 transfer-check">
+                                <input type='checkbox' class="transfer"></input>
+                                <label class="statement-radio-label">Transferencia</label>
+                            </div>
+                            <div class="col-xs-4 transfer-check">
+                                <input type="checkbox" class="add-money"></input>
+                                <label class="statement-radio-label">Poner dinero</label>
+                            </div>
+                            <div class="col-xs-4 transfer-check">
+                                <input type="checkbox" class="retire-money"></input>
+                                <label class="statement-radio-label">Sacar dinero</label>
+                            </div>
+                        </div>
+
+                        <div class="row">
+                            <h3 class="from-title-h3">Transferencia de caja</h3>
+                        </div>
+
+                        <div class="row ">
+                            <div class="col-xs-6">
+                                <label class="statement-input-labe">Monto en caja</label>
+                                <div class="statement-input-group">
+                                    <input type="text" class="form-control statement-input-number statement-amount" readonly="readonly" value="0"></input>
+                                    <div class="statement-input-symbol">
+                                        <span class="input-group-text"></span>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="col-xs-6">
+                                <label class="statement-input-labe">Método de pago: </label>
+                                <div class="statement-input-group">
+                                    <select class="statement-input-number input-all">
+                                        <t t-foreach="journal" t-as="journal">
+                                            <option t-attf-value="{{ journal_value.id }}" >
+                                                <t t-esc="journal_value.name"/>
+                                            </option>
+                                        </t>
+                                    </select>
+                                </div>
+                            </div>
+                        </div>
+
+                        <div class="row ">
+                            <div class="col-xs-6">
+                                <label class="statement-input-labe">Caja a Transferir: </label>
+                                <div class="statement-input-group">
+                                    <select class="statement-input-number input-all">
+                                        <t t-foreach="statement" t-as="statement">
+                                            <option t-attf-value="{{ statement_value.id }}" >
+                                                <t t-esc="statement_value.name"/>
+                                            </option>
+                                        </t>
+                                    </select>
+                                </div>
+                            </div>
+                            <div class="col-xs-6">
+                                <label class="statement-input-labe">Monto a transferir</label>
+                                <div class="statement-input-group">
+                                    <input type="text" class="form-control statement-input-number" value="0"></input>
+                                    <div class="statement-input-symbol">
+                                        <span class="input-group-text"></span>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+
+                        <div class="row">
+                            <div class="col-xs-12">
+                                <label class="statement-input-labe">Motivo</label>
+                                <div class="statement-input-group">
+                                    <input type="text" class="form-control statement-input-number input-letters"></input>
+                                </div>
+                            </div>
+                        </div>
+
+                    </div>
+                    <!-- Pie de Pagina -->
+                    <div class="modal-footer statement-utility-footer">
+                        <button type="button" class="oe_button oe_form_button oe_highlight statement-utility-button">Guardar</button>
+                        <button type="button" class="oe_button oe_form_button oe_link dismmis-modal statement-utility-button" data-dismiss="modal">Salir</button>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </t>
+</template>

+ 31 - 0
views/eiru_statement_utility.xml

@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<openerp>
+	<data>
+		<!-- Registros de caja -->
+        <record id="eiru_statement_utility_cash" model="ir.ui.view">
+            <field name="name">eiru.statement.utility.cash</field>
+            <field name="model">account.bank.statement</field>
+            <field name="inherit_id" ref="account.view_bank_statement_form2"/>
+            <field name="arch" type="xml">
+				<field name='state' position="before">
+					<div class="eiru-statement-utility" attrs="{'invisible': [('state','!=','open')]}"></div>
+				</field>
+            </field>
+        </record>
+		<!-- Extractos bancarios -->
+		<!-- <record id="eiru_import_statement_bank" model="ir.ui.view">
+            <field name="name">eiru.import.statement.bank</field>
+            <field name="model">account.bank.statement</field>
+            <field name="inherit_id" ref="account.view_bank_statement_form"/>
+            <field name="arch" type="xml">
+				<field name='state' position="before">
+					<div class="import-statement" attrs="{'invisible': [('state','!=','draft')]}"> </div>
+				</field>
+				<field name="journal_id" position='after'>
+					<field name="type_statement"/>
+				</field>
+            </field>
+        </record> -->
+
+	</data>
+</openerp>

+ 10 - 0
views/template.xml

@@ -0,0 +1,10 @@
+<openerp>
+    <data>
+        <template id="eiru_account_bank_statement_utility.eiru_assets" name="eiru_account_bank_statement_utility_assets" inherit_id="eiru_assets.assets">
+            <xpath expr="." position="inside">
+                <link rel="stylesheet" href="/eiru_account_bank_statement_utility/static/src/css/style.css"/>
+                <script type="text/javascript" src="/eiru_account_bank_statement_utility/static/src/js/eiru_statement_transfer.js"/>
+            </xpath>
+        </template>
+    </data>
+</openerp>