123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289 |
- (function() {
- openerp.widgetInstanceStatementCancel = null;
- openerp.parentInstanceStatementCancel = {};
- var QWeb = openerp.web.qweb;
- var instanceWeb = openerp.web;
- // Abrir caja
- openerp.EiruStatementCancel = openerp.Widget.extend({
- template: 'EiruStatementUtility.Cancel',
- 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.parentInstanceStatementCancel.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.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();
- });
- },
- /* Account bank Statement */
- fetchBankStatement: function(id) {
- var bankStatement = new instanceWeb.Model('account.bank.statement');
- return bankStatement.call('eiru_get_bank_statement_cancel',[parseInt(id)], {
- context: new instanceWeb.CompoundContext()
- });
- },
- /*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','statement_cancel_user'];
- var domain = [['active', '=', true]];
- var statementConfig = new openerp.web.Model('account.bank.statement.config');
- return statementConfig.query(fields).filter(domain).all();
- },
- /* get Transferencia */
- getTransfer: function(){
- var self = this;
- var statement = self.bankStatement[0];
- var transfer = [];
- var currency = statement.currencystatement;
- if(!currency)
- return transfer;
- _.each(statement.statementTransfer, function(item) {
- transfer.push({
- 'id': item.id,
- 'date': moment(item.date).format("DD-MM-YYYY"),
- 'amount': accounting.formatNumber(item.amount, currency.decimalPlaces, currency.thousandsSeparator, currency.decimalSeparator),
- 'statementUser': item.type === 'out' ? item.inputStatement.statementUser :item.outputStatement.statementUser,
- 'statement': item.type === 'out' ? item.inputStatement.name :item.outputStatement.name,
- 'statementState': item.type === 'out' ? item.inputStatement.state : item.outputStatement.state,
- 'type': item.type === 'in' ?'Entrada' :'Salida',
- 'typeStatement': item.type
- });
- });
- return transfer;
- },
- getStatementState: function(statement, state){
- return _.filter(statement,function(item){
- return item.statementState === state;
- });
- },
- getStateTransfer: function(statement, id) {
- return _.filter(statement, function(item){
- return item.id === id;
- });
- },
- /* Get Statement Confirm*/
- getStatementConfirm: function(){
- var self = this;
- var statement = self.bankStatement[0];
- var confirm = [];
- var currency = statement.currencystatement;
- if (!currency)
- return confirm;
- _.each(statement.statementConfirm, function(item) {
- if ((item.type === 'confirm') && (!item.statementOpen.statementUser))
- return false;
- confirm.push({
- 'id': item.id,
- 'date': moment(item.date).format("DD-MM-YYYY"),
- 'amountNextOpen': accounting.formatNumber(item.amountNextOpen, currency.decimalPlaces, currency.thousandsSeparator, currency.decimalSeparator),
- 'statement': item.type === 'open' ?item.statementConfirm.name :item.statementOpen.name,
- 'statementUser': item.type === 'open' ?item.statementConfirm.statementUser :item.statementOpen.statementUser,
- 'messege': 'Saldo de Apertura',
- });
- })
- return confirm;
- },
- /*Modal */
- showModal: function() {
- var self = this;
- var defer =$.Deferred();
- var results = true;
- var transfer = self.getTransfer();
- var confirm = self.getStatementConfirm();
- var modal = QWeb.render('ModalStatementUtility.Cancel',{
- 'transfer': transfer,
- 'confirm': confirm
- });
- $('.openerp_webclient_container').after(modal);
- $('.expired-account-modal').modal();
- /* Transferencia */
- var cancelTransferMessege = $('.expired-account-modal').find('.cancel-transfer-messege');
- var tableTransfer = $('.expired-account-modal').find('.table-tbody-transfer').find('tr');
- /* confirm */
- var cancelConfirmMessege = $('.expired-account-modal').find('.cancel-confirm-messege');
- /* Motivo */
- var messegeCancel = $('.expired-account-modal').find('.messege-cancel');
- /* button */
- var buttonSave = $('.expired-account-modal').find('.button-save');
- if (!transfer.length)
- $('.expired-account-modal').find('.cancel-transfer').css('display','none');
- if (!confirm.length)
- $('.expired-account-modal').find('.cancel-confirm').css('display','none');
- _.each(tableTransfer, function(tr) {
- var idTransfer = (($(tr).children()[0]).textContent).trim();
- var stateTransfer = self.getStateTransfer(transfer, parseInt(idTransfer));
- if (!stateTransfer.length)
- return false;
- if (stateTransfer[0].statementState === 'confirm'){
- $(tr).css('color','red')
- }
- });
- /* Caja Cerrada */
- stateStatement = self.getStatementState(transfer, 'confirm');
- cancelTransferMessege.css('display','none');
- cancelTransferMessege.text("");
- if (stateStatement.length)
- cancelTransferMessege.css('display','flex');
- cancelTransferMessege.text("Existe "+stateStatement.length+" caja cerrada ");
- /*Click buttonSave*/
- buttonSave.click(function(e) {
- if (!(messegeCancel.val().trim())){
- instanceWeb.notification.do_warn("Atencion", "Debes ingresar el motivo para continuar.");
- messegeCancel.css('border-color','red');
- messegeCancel.focus();
- return false;
- }
- messegeCancel.css('border-color','#ccc');
- cancel = {
- 'statementId': self.id,
- 'messege':messegeCancel.val()
- };
- self.cancelStatement(cancel).then(function(resultsCancel) {
- return resultsCancel;
- }).then(function(resultsCancel) {
- 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;
- },
- cancelStatement:function(values){
- var bankStatementUser = new instanceWeb.Model('account.bank.statement');
- return bankStatementUser.call('eiru_statement_cancel',[values], {
- 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.parentInstanceStatementCancel = this;
- if (openerp.widgetInstanceStatementCancel) {
- openerp.widgetInstanceStatementCancel.updateId(record.id);
- if (this.$el.find('.button-statement-cancel').length !== 0 )
- return ;
- }
- if (this.$el.find('.button-statement-cancel').length !== 0 )
- return;
- openerp.widgetInstanceStatementCancel = new openerp.EiruStatementCancel(this);
- var element =this.$el.find('.oe_form').find('.eiru-statement-utility-cancel');
- openerp.widgetInstanceStatementCancel.appendTo(element[0]);
- openerp.widgetInstanceStatementCancel.updateId(record.id);
- }
- });
- }
- })();
|