|
@@ -0,0 +1,380 @@
|
|
|
+(function() {
|
|
|
+
|
|
|
+ openerp.widgetInstanceStatementTransferDeleted = null;
|
|
|
+ openerp.parentInstanceStatementTransferDeleted = {};
|
|
|
+ var QWeb = openerp.web.qweb;
|
|
|
+ var instanceWeb = openerp.web;
|
|
|
+
|
|
|
+ openerp.EiruStatementTransferDeleted = openerp.Widget.extend({
|
|
|
+ template: 'EiruStatementUtility.TransferDeleted',
|
|
|
+ id: undefined,
|
|
|
+ buttons: undefined,
|
|
|
+ bankStatement: [],
|
|
|
+ accountJournal :[],
|
|
|
+ statementOpen: [],
|
|
|
+ /** config */
|
|
|
+ statementConfig: [],
|
|
|
+ resUser: [],
|
|
|
+ statementUser: [],
|
|
|
+ /* 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.parentInstanceStatementTransferDeleted.reload();
|
|
|
+ },
|
|
|
+
|
|
|
+ /* Description: Función para remover el modal */
|
|
|
+ removeModal: function() {
|
|
|
+ $('.expired-account-modal').remove();
|
|
|
+ $('.modal-backdrop').remove();
|
|
|
+ },
|
|
|
+
|
|
|
+ /*Get User*/
|
|
|
+ fetchGetUserLogin: function(){
|
|
|
+ var bankStatementUser = new instanceWeb.Model('account.bank.statement');
|
|
|
+ return bankStatementUser.call('eiru_transfers_get_user', {
|
|
|
+ context: new instanceWeb.CompoundContext()
|
|
|
+ });
|
|
|
+ },
|
|
|
+ /* statement Config */
|
|
|
+ fetchStatementConfigTransfer: function() {
|
|
|
+ var fields = ['id', 'name', 'delete_transfer_user_ids'];
|
|
|
+ var domain = [['active', '=', true]];
|
|
|
+ var statementConfig = new openerp.web.Model('account.bank.statement.config');
|
|
|
+ return statementConfig.query(fields).filter(domain).all();
|
|
|
+ },
|
|
|
+
|
|
|
+ /* 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.fetchStatementConfigTransfer();
|
|
|
+ }).then(function(statementConfig){
|
|
|
+ self.statementConfig = statementConfig;
|
|
|
+ return self.fetchGetUserLogin();
|
|
|
+ }).then(function(resUser) {
|
|
|
+ self.resUser = resUser;
|
|
|
+ if (!self.statementConfig.length){
|
|
|
+ instanceWeb.notification.do_warn("Atencion", "No fue posible localizar las configuración de las cajas.");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if (!self.resUser.length){
|
|
|
+ instanceWeb.notification.do_warn("Atencion", "No fue posible localizar el usuario.");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if (!self.bankStatement.length) {
|
|
|
+ instanceWeb.notification.do_warn("Atencion", "No fue posible localizar el usuario.");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!(_.contains(self.statementConfig[0].delete_transfer_user_ids, self.resUser[0].id))){
|
|
|
+ instanceWeb.notification.do_warn("Atencion", "El usuario no tiene autorización para eliminar las transferencia.");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ self.fetchCashBoxTransfer(self.id).then(function(cashBoxTransfer){
|
|
|
+ return cashBoxTransfer;
|
|
|
+ }).then(function(cashBoxTransfer){
|
|
|
+ self.cashBoxTransfer = cashBoxTransfer;
|
|
|
+ console.log(cashBoxTransfer);
|
|
|
+ })
|
|
|
+ // delete_transfer_user_ids
|
|
|
+ // var statementConfig = self.statementConfig[0];
|
|
|
+ // var resUser = self.resUser[0];
|
|
|
+ // var statementUser = self.bankStatement[0];
|
|
|
+ // /* Verificar si el tipo caja tiene permiso para la transferencia */
|
|
|
+ // if (!(_.contains(statementConfig.transfer_statement_ids, statementUser.typeStatement))) {
|
|
|
+ // instanceWeb.notification.do_warn("Atencion", "El tipo caja no tiene permiso para realizar transferencia.");
|
|
|
+ // return false;
|
|
|
+ // }
|
|
|
+ // /* Verificar si el usuario tiene permiso para la transferencia*/
|
|
|
+ // if (!(_.contains(statementConfig.transfer_user_ids, resUser.id))) {
|
|
|
+ // instanceWeb.notification.do_warn("Atencion", "El usuario no tiene permiso para realizar transferencia.");
|
|
|
+ // return false;
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // if (self.bankStatement[0].amount <= 0) {
|
|
|
+ // if (!self.statementConfig.length){
|
|
|
+ // instanceWeb.notification.do_warn("Atencion", "La caja seleccionada no tiene saldo disponible.");
|
|
|
+ // return false;
|
|
|
+ // }
|
|
|
+ // if (!self.statementConfig[0].transfer_negative_amount){
|
|
|
+ // instanceWeb.notification.do_warn("Atencion", "La caja seleccionada no tiene saldo disponible.");
|
|
|
+ // return false;
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // self.fetchAccountJournal(self.id).then(function(accountJournal) {
|
|
|
+ // return accountJournal;
|
|
|
+ // }).then(function(accountJournal) {
|
|
|
+ // self.accountJournal = accountJournal;
|
|
|
+ // if (!accountJournal[0].statementJournal.length){
|
|
|
+ // instanceWeb.notification.do_warn("Atencion", "No tienes ninguna caja abierta.");
|
|
|
+ // return false;
|
|
|
+ // }
|
|
|
+
|
|
|
+ // return self.showModalTransfer();
|
|
|
+ // });
|
|
|
+ });
|
|
|
+ },
|
|
|
+ /* Account bank Statement */
|
|
|
+ fetchBankStatement: function(id) {
|
|
|
+ var bankStatement = new instanceWeb.Model('account.bank.statement');
|
|
|
+ return bankStatement.call('get_account_bank_statement_utility',[id], {
|
|
|
+ context: new instanceWeb.CompoundContext()
|
|
|
+ });
|
|
|
+ },
|
|
|
+ // /* Account Journal*/
|
|
|
+ // fetchAccountJournal: function(id) {
|
|
|
+ // var accountJournal = new instanceWeb.Model('account.bank.statement');
|
|
|
+ // return accountJournal.call('get_account_journal_utility',[id], {
|
|
|
+ // context: new instanceWeb.CompoundContext()
|
|
|
+ // });
|
|
|
+ // },
|
|
|
+
|
|
|
+
|
|
|
+ /* cash_box_transfer*/
|
|
|
+ fetchCashBoxTransfer: function(id) {
|
|
|
+ var cashBoxTransfer = new instanceWeb.Model('account.bank.statement');
|
|
|
+ return cashBoxTransfer.call('eiru_transfers_get_chas_box_transfer',[id], {
|
|
|
+ context: new instanceWeb.CompoundContext()
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ // /* Get statement Journal */
|
|
|
+ // getStatementJournal(id) {
|
|
|
+ // var self = this;
|
|
|
+ // var journal = _.filter(self.accountJournal, function(item) {
|
|
|
+ // return item.id === id ;
|
|
|
+ // });
|
|
|
+ // return _.flatten(_.map(journal, function(map) {
|
|
|
+ // return map.statementJournal;
|
|
|
+ // }));
|
|
|
+ // },
|
|
|
+ // /* Save Statement transfer */
|
|
|
+ // statementCompletTransfers: function(values) {
|
|
|
+ // var bankStatementTransfer = new instanceWeb.Model('account.bank.statement');
|
|
|
+ // return bankStatementTransfer.call('statement_complet_transfers',[values], {
|
|
|
+ // context: new instanceWeb.CompoundContext()
|
|
|
+ // });
|
|
|
+ // },
|
|
|
+
|
|
|
+ /*Modal Transfer */
|
|
|
+ showModalTransfer: function() {
|
|
|
+ var self = this;
|
|
|
+ var defer =$.Deferred();
|
|
|
+ var results = true;
|
|
|
+ // var accountJournal = self.accountJournal;
|
|
|
+ //
|
|
|
+ // accountJournal.unshift({'name': '', 'id': ''});
|
|
|
+
|
|
|
+ var modal = QWeb.render('ModalStatementUtility.TransferDeleted');
|
|
|
+
|
|
|
+ $('.openerp_webclient_container').after(modal);
|
|
|
+ $('.expired-account-modal').modal();
|
|
|
+
|
|
|
+
|
|
|
+ // var statementAmount = $('.expired-account-modal').find('.statement-amount');
|
|
|
+ // var statementAmountSymbol = $('.expired-account-modal').find('.statement-amount-symbol');
|
|
|
+ // var selectedJournal = $('.expired-account-modal').find('.selected-Journal');
|
|
|
+ // var statementOpen = $('.expired-account-modal').find('.statement-open-selected');
|
|
|
+ // var amountTransfer = $('.expired-account-modal').find('.amount-transfer');
|
|
|
+ // var amountTransferSymbol = $('.expired-account-modal').find('.amount-transfer-symbol');
|
|
|
+ // var refTransfer = $('.expired-account-modal').find('.ref-transfer');
|
|
|
+ // /* Button */
|
|
|
+ // var buttonSave = $('.expired-account-modal').find('.button-save');
|
|
|
+ // var currency = self.bankStatement[0].currencystatement;
|
|
|
+ //
|
|
|
+ // /* Monto */
|
|
|
+ // statementAmount.val(accounting.formatNumber(self.bankStatement[0].amount, currency.decimalPlaces, currency.thousandsSeparator, currency.decimalSeparator));
|
|
|
+ // /* Symbol */
|
|
|
+ // statementAmountSymbol.text(currency.symbol);
|
|
|
+ // amountTransferSymbol.text(currency.symbol);
|
|
|
+ // /*select Journal */
|
|
|
+ // selectedJournal.focus();
|
|
|
+ // selectedJournal.change(function(e) {
|
|
|
+ // statementOpen.empty();
|
|
|
+ //
|
|
|
+ // var statementJournal = self.getStatementJournal(parseInt(selectedJournal.val()));
|
|
|
+ // if (!!statementJournal.length)
|
|
|
+ // statementOpen.append('<option value=""></option>');
|
|
|
+ //
|
|
|
+ // _.each(statementJournal, function(item) {
|
|
|
+ // statementOpen.append('<option value="' + item.id + '">' + item.statementname + '</option>');
|
|
|
+ // });
|
|
|
+ // });
|
|
|
+ //
|
|
|
+ // /* amountTransfer.keyup*/
|
|
|
+ // amountTransfer.keyup(function(e) {
|
|
|
+ // var amount = accounting.unformat(amountTransfer.val(),currency.decimalSeparator);
|
|
|
+ // amountTransfer.val(accounting.formatNumber(amount,0, currency.thousandsSeparator, currency.decimalSeparator));
|
|
|
+ // amountTransfer.css('border-color','#ccc');
|
|
|
+ //
|
|
|
+ // if (e.keyCode === 13)
|
|
|
+ // refTransfer.focus();
|
|
|
+ // });
|
|
|
+ // /* amountTransfer. focusout*/
|
|
|
+ // amountTransfer.focusout(function(e) {
|
|
|
+ // var amountAvailable = accounting.unformat(statementAmount.val(),currency.decimalSeparator);
|
|
|
+ // var amount = Math.abs(accounting.unformat(amountTransfer.val(),currency.decimalSeparator));
|
|
|
+ //
|
|
|
+ // if (amountAvailable < amount && !self.statementConfig[0].transfer_negative_amount) {
|
|
|
+ // instanceWeb.notification.do_warn("Atencion", "El valor a transferir supera el saldo disponible de la caja .");
|
|
|
+ // amountTransfer.css('border-color','red');
|
|
|
+ // amountTransfer.focus();
|
|
|
+ // return false;
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // amountTransfer.val(accounting.formatNumber( amount,currency.decimalPlaces, currency.thousandsSeparator, currency.decimalSeparator));
|
|
|
+ // });
|
|
|
+ //
|
|
|
+ // /*Click buttonSave*/
|
|
|
+ // buttonSave.click(function(e){
|
|
|
+ // var amountAvailable = accounting.unformat(statementAmount.val(),currency.decimalSeparator);
|
|
|
+ // var amount = accounting.unformat(amountTransfer.val(),currency.decimalSeparator);
|
|
|
+ //
|
|
|
+ // /* Journal */
|
|
|
+ // if (!selectedJournal.val()) {
|
|
|
+ // instanceWeb.notification.do_warn("Atencion", "Debes seleccionar un tipo de pago para continuar.");
|
|
|
+ // selectedJournal.css('border-color','red');
|
|
|
+ // selectedJournal.focus();
|
|
|
+ // return false;
|
|
|
+ // }
|
|
|
+ // selectedJournal.css('border-color','#ccc');
|
|
|
+ // /* Statement Open */
|
|
|
+ // if (!statementOpen.val()) {
|
|
|
+ // instanceWeb.notification.do_warn("Atencion", "Debes seleccionar la caja donde vas a transferir.");
|
|
|
+ // statementOpen.css('border-color','red');
|
|
|
+ // statementOpen.focus();
|
|
|
+ // return false;
|
|
|
+ // }
|
|
|
+ // statementOpen.css('border-color','#ccc');
|
|
|
+ //
|
|
|
+ // /* ammount transfer*/
|
|
|
+ // if (amount <= 0) {
|
|
|
+ // instanceWeb.notification.do_warn("Atencion", "El valor a transferir debe ser mayor a cero.");
|
|
|
+ // amountTransfer.css('border-color','red');
|
|
|
+ // amountTransfer.focus();
|
|
|
+ // return false;
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // if (amountAvailable < amount) {
|
|
|
+ // if (!self.statementConfig.length){
|
|
|
+ // instanceWeb.notification.do_warn("Atencion", "El valor a transferir supera el saldo disponible de la caja .");
|
|
|
+ // amountTransfer.css('border-color','red');
|
|
|
+ // amountTransfer.focus();
|
|
|
+ // return false;
|
|
|
+ // }
|
|
|
+ // if (!self.statementConfig[0].transfer_negative_amount){
|
|
|
+ // instanceWeb.notification.do_warn("Atencion", "El valor a transferir supera el saldo disponible de la caja .");
|
|
|
+ // amountTransfer.css('border-color','red');
|
|
|
+ // amountTransfer.focus();
|
|
|
+ // return false;
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // amountTransfer.css('border-color','#ccc');
|
|
|
+ // /* Ref transfer */
|
|
|
+ // if (!refTransfer.val()) {
|
|
|
+ // instanceWeb.notification.do_warn("Atencion", "Debes de ingresar un motivo para la transferencia.");
|
|
|
+ // refTransfer.css('border-color','red');
|
|
|
+ // refTransfer.focus();
|
|
|
+ // return false;
|
|
|
+ // }
|
|
|
+ // refTransfer.css('border-color','#ccc');
|
|
|
+ //
|
|
|
+ // statementTransfer = {
|
|
|
+ // 'statementOriginId': self.bankStatement[0].id,
|
|
|
+ // 'statementDestinyId': parseInt(statementOpen.val()),
|
|
|
+ // 'amountTransfer': amount,
|
|
|
+ // 'refTransfer': refTransfer.val().trim(),
|
|
|
+ // 'journalID': parseInt(selectedJournal.val())
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // /* Save Payments */
|
|
|
+ // self.statementCompletTransfers(statementTransfer).then(function(resultsTransfer) {
|
|
|
+ // return resultsTransfer;
|
|
|
+ // }).then(function(resultsTransfer) {
|
|
|
+ // self.reloadPage();
|
|
|
+ // self.removeModal(e);
|
|
|
+ // if (!resultsTransfer)
|
|
|
+ // 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;
|
|
|
+ },
|
|
|
+ });
|
|
|
+
|
|
|
+ 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.parentInstanceStatementTransferDeleted = this;
|
|
|
+
|
|
|
+ if (openerp.widgetInstanceStatementTransferDeleted) {
|
|
|
+ openerp.widgetInstanceStatementTransferDeleted.updateId(record.id);
|
|
|
+ if (this.$el.find('.button-statement-transfer-deleted').length !== 0 )
|
|
|
+ return ;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if (this.$el.find('.button-statement-transfer-deleted').length !== 0 )
|
|
|
+ return;
|
|
|
+
|
|
|
+ openerp.widgetInstanceStatementTransferDeleted = new openerp.EiruStatementTransferDeleted(this);
|
|
|
+ var element =this.$el.find('.oe_form').find('.eiru-statement-utility');
|
|
|
+
|
|
|
+ openerp.widgetInstanceStatementTransferDeleted.appendTo(element[0]);
|
|
|
+ openerp.widgetInstanceStatementTransferDeleted.updateId(record.id);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+})();
|