|
@@ -0,0 +1,245 @@
|
|
|
+(function() {
|
|
|
+ openerp.widgetInstanceStatementUnlink = null;
|
|
|
+ openerp.parentInstanceStatementUnlink = {};
|
|
|
+ var QWeb = openerp.web.qweb;
|
|
|
+ var instanceWeb = openerp.web;
|
|
|
+ // Abrir caja
|
|
|
+ openerp.EiruStatementUnlink = openerp.Widget.extend({
|
|
|
+ template: 'EiruStatementUtility.Unlink',
|
|
|
+ id: undefined,
|
|
|
+ buttons: undefined,
|
|
|
+ bankStatement: [],
|
|
|
+ resUser: [],
|
|
|
+ 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.parentInstanceStatementUnlink.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.fetchBankStatementUnlink(self.id).then(function(bankStatement) {
|
|
|
+ return bankStatement;
|
|
|
+ }).then(function(bankStatement) {
|
|
|
+ self.bankStatement = bankStatement;
|
|
|
+
|
|
|
+ // return self.fetchGetUserLogin();
|
|
|
+ // }).then(function(resUser){
|
|
|
+ // self.resUser = resUser;
|
|
|
+ // return self.fetchStatementConfigTransfer();
|
|
|
+ // }).then(function(statementConfig){
|
|
|
+ // self.statementConfig = statementConfig;
|
|
|
+ // /* Verificar el usuario */
|
|
|
+ // if (!self.resUser.length){
|
|
|
+ // instanceWeb.notification.do_warn("Atencion", "No estas autorizado a realizar esta operación.");
|
|
|
+ // return false;
|
|
|
+ // }
|
|
|
+ // /* Verificar si existe configuracion */
|
|
|
+ // if (!self.statementConfig.length){
|
|
|
+ // instanceWeb.notification.do_warn("Atencion", "No estas autorizado a realizar esta operación, no existe configuración de caja.");
|
|
|
+ // return false;
|
|
|
+ // }
|
|
|
+ // /* Verificar si el usuario tiene autorización para cerrar la caja */
|
|
|
+ // if (!(_.contains(self.statementConfig[0].statement_cancel_user, self.resUser[0].id))){
|
|
|
+ // instanceWeb.notification.do_warn("Atencion", "El usuario no tiene autorización para cancelar la caja.");
|
|
|
+ // return false;
|
|
|
+ // }
|
|
|
+
|
|
|
+ return self.showModal();
|
|
|
+ });
|
|
|
+ },
|
|
|
+ /* Get Account bank Statement */
|
|
|
+ fetchBankStatementUnlink: function(id) {
|
|
|
+ var bankStatement = new instanceWeb.Model('account.bank.statement');
|
|
|
+ return bankStatement.call('eiru_get_bank_statement_unlink',[parseInt(id)], {
|
|
|
+ context: new instanceWeb.CompoundContext()
|
|
|
+ });
|
|
|
+ },
|
|
|
+ /* Get state Object*/
|
|
|
+ getStatementState: function(statement, state){
|
|
|
+ return _.filter(statement,function(item){
|
|
|
+ return item.state === state;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ /* Filter Object Id*/
|
|
|
+ getStateTransfer: function(statement, id) {
|
|
|
+ return _.filter(statement, function(item){
|
|
|
+ return item.id === id;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ /* filter line statement */
|
|
|
+ filterStatementLine: function() {
|
|
|
+ var self= this;
|
|
|
+ var statement = self.bankStatement[0];
|
|
|
+ var currency = statement.currencystatement;
|
|
|
+ var lineStatement = [];
|
|
|
+
|
|
|
+ _.each(statement.lineStatement, function(line){
|
|
|
+ var state = statement.state
|
|
|
+
|
|
|
+ if (!!line.casBoxTransfer.length){
|
|
|
+ if (line.casBoxTransfer[0].inputStatementState !== statement.state)
|
|
|
+ state = line.casBoxTransfer[0].inputStatementState
|
|
|
+
|
|
|
+ if (line.casBoxTransfer[0].outputStatementState !== statement.state)
|
|
|
+ state = line.casBoxTransfer[0].outputStatementState
|
|
|
+ }
|
|
|
+
|
|
|
+ lineStatement.push({
|
|
|
+ 'id': line.id,
|
|
|
+ 'date': moment(line.date).format("DD-MM-YYYY"),
|
|
|
+ 'name': line.name,
|
|
|
+ 'amount': accounting.formatNumber(line.amount, currency.decimalPlaces, currency.thousandsSeparator, currency.decimalSeparator),
|
|
|
+ 'state': state
|
|
|
+ });
|
|
|
+ });
|
|
|
+ return lineStatement;
|
|
|
+ },
|
|
|
+ // /*Modal */
|
|
|
+ showModal: function() {
|
|
|
+ var self = this;
|
|
|
+ var defer =$.Deferred();
|
|
|
+ var results = true;
|
|
|
+ var lineStatement = self.filterStatementLine();
|
|
|
+
|
|
|
+ var modal = QWeb.render('ModalStatementUtility.Unlink',{
|
|
|
+ 'statementLine': lineStatement
|
|
|
+ });
|
|
|
+
|
|
|
+ $('.openerp_webclient_container').after(modal);
|
|
|
+ $('.expired-account-modal').modal();
|
|
|
+
|
|
|
+ /* Transferencia */
|
|
|
+ var lineMessege = $('.expired-account-modal').find('.line-unlink-messege');
|
|
|
+ var table = $('.expired-account-modal').find('.table-tbody').find('tr');
|
|
|
+ var buttonSave = $('.expired-account-modal').find('.button-save');
|
|
|
+
|
|
|
+ if (!lineStatement.length)
|
|
|
+ $('.expired-account-modal').find('.statement-line').css('display', 'none');
|
|
|
+
|
|
|
+ _.each(table, function(tr) {
|
|
|
+ var idLine = (($(tr).children()[0]).textContent).trim();
|
|
|
+ var stateStatement = self.getStateTransfer(lineStatement, parseInt(idLine));
|
|
|
+ if (!stateStatement.length)
|
|
|
+ return false;
|
|
|
+
|
|
|
+ if (stateStatement[0].state === 'confirm'){
|
|
|
+ $(tr).css('color','red')
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ /* Caja Cerrada */
|
|
|
+ stateStatement = self.getStatementState(lineStatement, 'confirm');
|
|
|
+ lineMessege.css('display','none');
|
|
|
+ lineMessege.text("");
|
|
|
+ if (stateStatement.length)
|
|
|
+ lineMessege.css('display','flex');
|
|
|
+ lineMessege.text("Existe "+stateStatement.length+" caja relacionada que ya están cerrada.");
|
|
|
+
|
|
|
+ /*Click buttonSave*/
|
|
|
+ buttonSave.click(function(e) {
|
|
|
+ stateStatement = self.getStatementState(lineStatement, 'confirm');
|
|
|
+ if (stateStatement.length) {
|
|
|
+ instanceWeb.notification.do_warn("Atencion", "No se puede eliminar la caja, porque tiene relación con cajas cerradas.");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ self.unlinkStatement(self.id).then(function(resultsUnlink) {
|
|
|
+ return resultsUnlink;
|
|
|
+ }).then(function(resultsUnlink) {
|
|
|
+ if (!resultsUnlink.state)
|
|
|
+ instanceWeb.notification.do_warn("Atencion", resultsUnlink.messege);
|
|
|
+
|
|
|
+ self.reloadPage();
|
|
|
+ self.removeModal(e);
|
|
|
+
|
|
|
+ if (!resultsCancel)
|
|
|
+ results = false;
|
|
|
+ });
|
|
|
+
|
|
|
+ defer.resolve(results);
|
|
|
+ });
|
|
|
+
|
|
|
+ /* Click Cerrar */
|
|
|
+ $('.expired-account-modal').on('hidden.bs.modal', function(e) {
|
|
|
+ results = false;
|
|
|
+ defer.resolve(results);
|
|
|
+ self.removeModal(e);
|
|
|
+ });
|
|
|
+
|
|
|
+ return defer;
|
|
|
+ },
|
|
|
+
|
|
|
+ unlinkStatement: function(id){
|
|
|
+ var bankStatementUser = new instanceWeb.Model('account.bank.statement');
|
|
|
+ return bankStatementUser.call('eiru_unlink_statement',[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.parentInstanceStatementUnlink = this;
|
|
|
+
|
|
|
+ if (openerp.widgetInstanceStatementUnlink) {
|
|
|
+ openerp.widgetInstanceStatementUnlink.updateId(record.id);
|
|
|
+ if (this.$el.find('.button-statement-unlink').length !== 0 )
|
|
|
+ return ;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (this.$el.find('.button-statement-unlink').length !== 0 )
|
|
|
+ return;
|
|
|
+
|
|
|
+ openerp.widgetInstanceStatementUnlink = new openerp.EiruStatementUnlink(this);
|
|
|
+ var element =this.$el.find('.oe_form').find('.eiru-statement-unlink');
|
|
|
+
|
|
|
+ openerp.widgetInstanceStatementUnlink.appendTo(element[0]);
|
|
|
+ openerp.widgetInstanceStatementUnlink.updateId(record.id);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+})();
|