adrielso 6 лет назад
Родитель
Сommit
61871f95b5

+ 1 - 18
models/account_bank_statement_utility.py

@@ -28,7 +28,6 @@ class AccountBankStatementUtility(models.Model):
 
         if (bankStatement.balance_start > 0):
             amount += bankStatement.balance_start
-        # import web_pdb; web_pdb.set_trace()
 
         accountStatement.append({
             'id': bankStatement.id,
@@ -51,19 +50,6 @@ class AccountBankStatementUtility(models.Model):
                 'decimalPlaces': bankStatement.currency.decimal_places,
                 'position': bankStatement.currency.position,
             },
-            'currencyAmount': [{
-                'id': currency.id,
-                'symbol': currency.symbol,
-                'rate': currency.rate,
-                'thousandsSeparator': currency.thousands_separator,
-                'decimalSeparator': currency.decimal_separator,
-                'decimalPlaces': currency.decimal_places,
-                'position': currency.position,
-                'base': currency.base,
-                'accuracy': currency.accuracy,
-                'rounding': currency.rounding,
-                'amountCurency': round((amount * (currency.rate / bankStatement.currency.rate)), decimal_precision)
-            } for currency in self.env['res.currency'].search([('active', '=', True)])]
         })
 
         return accountStatement
@@ -74,10 +60,7 @@ class AccountBankStatementUtility(models.Model):
         if (not bankStatement):
             return False
 
-        domain = [('active', '=', True), ('type', 'in', ['bank', 'cash'])];
-
-        if (bankStatement.type_statement == 'normal'):
-            domain.append(('id', 'in', [bankStatement.journal_id.id]));
+        domain = [('active', '=', True), ('type', 'in', ['bank', 'cash']), ('id', 'in', [bankStatement.journal_id.id])];
 
         accountJournal = self.env['account.journal'].search(domain)
         journalUtility = []

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

@@ -1,3 +1,8 @@
+@media (min-width: 768px) {
+    .expired-account-modal .modal-lg {
+            width: 900px !important;
+    }
+}
 .eiru-statement-utility {
     width: auto;
     float: left;

+ 75 - 30
static/src/js/eiru_statement_transfer.js

@@ -21,7 +21,7 @@
         /* start */
         start: function () {
             var self = this;
-            this.$el.click(function(){
+            this.$el.click(function() {
                 self.fetchInitial();
             });
             self.buttons.click(function(e) {
@@ -56,14 +56,23 @@
         /* Método inicial  */
         fetchInitial: function() {
             var self = this;
-            self.fetchBankStatement(self.id).then(function(bankStatement){
+            self.fetchBankStatement(self.id).then(function(bankStatement) {
                 return bankStatement;
-            }).then(function(bankStatement){
+            }).then(function(bankStatement) {
                 self.bankStatement = bankStatement;
-                return self.fetchAccountJournal(self.id);
-            }).then(function(accountJournal){
-                self.accountJournal = accountJournal;
-                return self.showModalTransfer();
+                if (!bankStatement || !bankStatement.length)
+                    return false;
+
+                if (bankStatement[0].amount <= 0) {
+                    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;
+                    return self.showModalTransfer();
+                });
             });
         },
         /* Account bank Statement */
@@ -83,10 +92,10 @@
         /* Get statement Journal */
         getStatementJournal(id) {
             var self = this;
-            var journal = _.filter(self.accountJournal, function(item){
+            var journal = _.filter(self.accountJournal, function(item) {
                 return  item.id === id ;
             });
-            return _.flatten(_.map(journal, function(map){
+            return _.flatten(_.map(journal, function(map) {
                 return map.statementJournal;
             }));
         },
@@ -114,15 +123,24 @@
             $('.expired-account-modal').modal();
 
 
-            var statementAmount = $('.expired-account-modal').find('.statement-amount')             // Monto Disponible.
-            var selectedJournal = $('.expired-account-modal').find('.selected-Journal')             // Journal.
-            var statementOpen = $('.expired-account-modal').find('.statement-open')                 // Caja a Transferir.
-            var amountTransfer = $('.expired-account-modal').find('.amount-transfer')               // Monto a Transferir.
-            var amountTransferSymbol = $('.expired-account-modal').find('.amount-transfer-symbol')  // Symbolo del monto a Transferir.
-            var refTransfer = $('.expired-account-modal').find('.ref-transfer')                     // Referencia de la Transferencia.
+            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');
+            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 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();
 
@@ -132,13 +150,37 @@
 
                 _.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 = accounting.unformat(amountTransfer.val(),currency.decimalSeparator);
 
+                if (amountAvailable < 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));
             });
 
-            statementAmount.val(self.bankStatement[0].amount)
             /*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.");
@@ -157,15 +199,20 @@
                 statementOpen.css('border-color','#ccc');
 
                 /* ammount transfer*/
-                // if (!amountTransfer.val()) {
-                //     instanceWeb.notification.do_warn("Atencion", "Tienes que seleccionar un método de pago para continuar.");
-                //     amountTransfer.css('border-color','red');
-                //     amountTransfer.focus();
-                //     return false;
-                // }
-                // amountTransfer.css('border-color','#ccc');
-
-                /**Ref 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) {
+                    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');
@@ -177,18 +224,16 @@
                 statementTransfer = {
                     'statementOriginId': self.bankStatement[0].id,
                     'statementDestinyId': parseInt(statementOpen.val()),
-                    'amountTransfer': 100000,
+                    'amountTransfer': amount,
                     'refTransfer': refTransfer.val().trim(),
                     'journalID': parseInt(selectedJournal.val())
                 }
 
                 /* Save Payments */
-                $('.expired-account-modal').find('.widget-content.widget-loading-payments').css('display','flex');
                 self.statementCompletTransfers(statementTransfer).then(function(resultsTransfer) {
                     return resultsTransfer;
                 }).then(function(resultsTransfer) {
                     self.reloadPage();
-                    // $('.expired-account-modal').find('.widget-content.widget-loading-payments').css('display','none');
                     self.removeModal(e);
                     if (!resultsTransfer)
                         results = false;

+ 3 - 3
static/src/xml/modal/modal_statement_transfer.xml

@@ -15,7 +15,7 @@
                     <!-- Body -->
                     <div class="modal-body">
                         <!-- Forma de Transferencia [Transferencia - Poner dinero - Sacar Dinero ] -->
-                        <div class="row">
+                        <!-- <div class="row">
                              <h3 class="from-title-h3">Forma de Transferencia</h3>
                         </div>
                         <div class="row">
@@ -31,7 +31,7 @@
                                 <input type="checkbox" class="retire-money"></input>
                                 <label class="statement-radio-label">Sacar dinero</label>
                             </div>
-                        </div>
+                        </div> -->
 
                         <div class="row">
                             <h3 class="from-title-h3">Transferencia de caja</h3>
@@ -42,7 +42,7 @@
                                 <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">
+                                    <div class="statement-input-symbol statement-amount-symbol">
                                         <span class="input-group-text"></span>
                                     </div>
                                 </div>