|
@@ -0,0 +1,120 @@
|
|
|
+(function() {
|
|
|
+ openerp.widgetInstanceStatementOpen = null;
|
|
|
+ openerp.parentInstanceStatementOpen = {};
|
|
|
+ var QWeb = openerp.web.qweb;
|
|
|
+ var instanceWeb = openerp.web;
|
|
|
+ // Abrir caja
|
|
|
+ openerp.EiruStatementOpen = openerp.Widget.extend({
|
|
|
+ template: 'EiruStatementUtility.Open',
|
|
|
+ id: undefined,
|
|
|
+ buttons: undefined,
|
|
|
+ bankStatement: [],
|
|
|
+ statementConfig: [],
|
|
|
+ /* 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.parentInstanceStatementOpen.reload();
|
|
|
+ },
|
|
|
+ /* 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.fetchStatementConfig();
|
|
|
+ }).then(function(statementConfig) {
|
|
|
+ self.statementConfig = statementConfig;
|
|
|
+
|
|
|
+ if (!!self.statementConfig.length && !!self.bankStatement.length) {
|
|
|
+ if(!self.statementConfig[0].statement_open_config) {
|
|
|
+ instanceWeb.notification.do_warn("Atencion", "Ya existe caja abierta.");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return self.statementOpenCashbox(self.id);
|
|
|
+ }).then(function() {
|
|
|
+ self.reloadPage();
|
|
|
+ });
|
|
|
+ },
|
|
|
+ /* Account bank Statement Open*/
|
|
|
+ fetchBankStatement: function(id) {
|
|
|
+ var bankStatement = new instanceWeb.Model('account.bank.statement');
|
|
|
+ return bankStatement.call('account_bank_statement_open',[id], {
|
|
|
+ context: new instanceWeb.CompoundContext()
|
|
|
+ });
|
|
|
+ },
|
|
|
+ /* statement Config */
|
|
|
+ fetchStatementConfig: function() {
|
|
|
+ var fields = ['id','name','statement_open_config'];
|
|
|
+ var domain = [['active', '=', true]];
|
|
|
+ var statementConfig = new openerp.web.Model('account.bank.statement.config');
|
|
|
+ return statementConfig.query(fields).filter(domain).all();
|
|
|
+ },
|
|
|
+ /* Open cashBox */
|
|
|
+ statementOpenCashbox: function(id) {
|
|
|
+ var bankStatement = new instanceWeb.Model('account.bank.statement');
|
|
|
+ return bankStatement.call('account_bank_statement_open_cashbox',[id], {
|
|
|
+ context: new instanceWeb.CompoundContext()
|
|
|
+ });
|
|
|
+ },
|
|
|
+ });
|
|
|
+
|
|
|
+ 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.parentInstanceStatementOpen = this;
|
|
|
+
|
|
|
+ if (openerp.widgetInstanceStatementOpen) {
|
|
|
+ openerp.widgetInstanceStatementOpen.updateId(record.id);
|
|
|
+ if (this.$el.find('.button-statement-open').length !== 0 )
|
|
|
+ return ;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (this.$el.find('.button-statement-open').length !== 0 )
|
|
|
+ return;
|
|
|
+
|
|
|
+ openerp.widgetInstanceStatementOpen = new openerp.EiruStatementOpen(this);
|
|
|
+ var element =this.$el.find('.oe_form').find('.eiru-statement-utility-open');
|
|
|
+
|
|
|
+ openerp.widgetInstanceStatementOpen.appendTo(element[0]);
|
|
|
+ openerp.widgetInstanceStatementOpen.updateId(record.id);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+})();
|