Ver código fonte

[FIX] Cancelar caja

adrielso 6 anos atrás
pai
commit
fcad4a77c7

+ 4 - 0
models/account_bank_statement.py

@@ -28,6 +28,10 @@ class AccountBankStatement(models.Model):
             })
 
 
+    # @api.multi
+    # def button_cancel(self):
+        # import web_pdb; web_pdb.set_trace()
+
     # @api.model
     # def get_statement_point_of_sale(self, id):
     #     accountStatement = self.env['account.bank.statement'].browse(id)

+ 3 - 3
models/account_bank_statement_utility.py

@@ -696,9 +696,9 @@ class AccountBankStatementUtility(models.Model):
     '''
         Cerrar Caja
     '''
-    @api.multi
-    def button_confirm_cash(self):
-        return super(AccountBankStatementUtility, self).button_confirm_cash()
+    # @api.multi
+    # def button_confirm_cash(self):
+    #     return super(AccountBankStatementUtility, self).button_confirm_cash()
 
 
     @api.model

+ 82 - 24
models/cashbox_statement_cancel.py

@@ -74,6 +74,7 @@ class eiru_account_statement_cancel(models.Model):
             } for casBox in self.env['cashbox.statement.confirm'].search(['|', ('statement_id.id','=',statement.id), ('statement_open.id','=',statement.id)])],
         } for statement in self.env['account.bank.statement'].search([('id','=',id)])]
 
+
     '''
           ____ _____  _  _____ _____ __  __ _____ _   _ _____    ____    _    _   _  ____ _____ _
          / ___|_   _|/ \|_   _| ____|  \/  | ____| \ | |_   _|  / ___|  / \  | \ | |/ ___| ____| |
@@ -81,30 +82,86 @@ class eiru_account_statement_cancel(models.Model):
           ___) || |/ ___ \| | | |___| |  | | |___| |\  | | |   | |___ / ___ \| |\  | |___| |___| |___
          |____/ |_/_/   \_\_| |_____|_|  |_|_____|_| \_| |_|    \____/_/   \_\_| \_|\____|_____|_____|
     '''
+    '''
+        Get Statement
+    '''
+    def _eiru_get_account_bank_statement(self, id):
+        return self.env['account.bank.statement'].browse(id)
+
+    '''
+        statement Cancel
+    '''
     @api.model
-    def eiru_statement_cancel(self, id):
-        # print("\n\neiru_statement_cancel\n\n")
-        '''
-        cashbox.statement.cancel
-            name
-            ref
-            date
-            message
-            statement_id
-            journal_id
-            user_statement
-            user_cancel
-        '''
-        '''
-        cashbox.statement.cancel.line
-            cancel_id
-            statement_line
-            date
-            name
-            ref
-            partner_id
-            amount
-        '''
+    def eiru_statement_cancel(self, values):
+        ### date server
+        dateServer = self.get_server_datetime()
+        ###  Statement
+        statement = self._eiru_get_account_bank_statement(values['statementId'])
+        if (not statement):
+            return {
+                'state': False
+            }
+
+        ### user
+        users = self.env.user
+        if (not users):
+            return {
+                'state': False
+            }
+
+        # Creatre Line cancel
+        line_ids = []
+        for line in statement.line_ids:
+            line_ids.append([0, False, {
+                'statement_line': line.id,
+                'date': line.date,
+                'name': line.name,
+                'ref': line.ref,
+                'partner_id': line.partner_id.id,
+                'amount': line.amount,
+                'currency_id': line.currency_id.id
+            }])
+
+        # create cancel
+        cancel = {
+            'name': "Cancelación de caja "+str(statement.name),
+            'ref': values['messege'],
+            'date': dateServer,
+            'message': values['messege'],
+            'statement_id': statement.id,
+            'journal_id': statement.journal_id.id,
+            'user_statement': statement.user_id.id,
+            'user_cancel': users.id,
+            'line_ids': line_ids
+        }
+        statementCancel = self.env['cashbox.statement.cancel'].create(cancel)
+        if (not statementCancel):
+            return {
+                'state': False
+            }
+
+        ## Cancel statement
+        cancel = self.eiru_button_cancel(statement)
+        if (not cancel):
+            return {
+                'state': False
+            }
+
+        ### open statement
+        open = statement.button_open()
+        if (not open):
+            return {
+                'state': False
+            }
+
+        return {
+            'state': True
+        }
+
+    def eiru_button_cancel(self,statement):
+        # return super(eiru_account_statement_cancel, statement).button_cancel()
+        return super(eiru_account_statement_cancel, statement.with_context(cancel_from_statement=True)).button_cancel()
+
 '''
     Registro de caja cancel.
 '''
@@ -121,7 +178,7 @@ class cashbox_statement_cancel(models.Model):
     journal_id = fields.Many2one('account.journal', 'Journal')
     user_statement = fields.Many2one('res.users', 'User Statement')
     user_cancel = fields.Many2one('res.users', 'Usaer Cancel')
-
+    line_ids    = fields.One2many('cashbox.statement.cancel.line', 'cancel_id', 'Cancel Lines')
 
 class cashbox_statement_cancel_line(models.Model):
     _name = "cashbox.statement.cancel.line"
@@ -134,3 +191,4 @@ class cashbox_statement_cancel_line(models.Model):
     ref = fields.Char('Ref')
     partner_id = fields.Many2one('res.partner', 'partner')
     amount = fields.Float('Amount Line', digits_compute=dp.get_precision('Account'))
+    currency_id = fields.Many2one('res.currency', string="Currency", help="Moneda de la operación")

+ 13 - 7
static/src/js/eiru_statement_cancel.js

@@ -79,6 +79,7 @@
                     instanceWeb.notification.do_warn("Atencion", "El usuario no tiene autorización para cancelar la caja.");
                     return false;
                 }
+
                 return self.showModal();
             });
         },
@@ -215,7 +216,7 @@
 
             /*Click buttonSave*/
             buttonSave.click(function(e) {
-                if (!messegeCancel.val()){
+                if (!(messegeCancel.val().trim())){
                     instanceWeb.notification.do_warn("Atencion", "Debes ingresar el motivo para continuar.");
                     messegeCancel.css('border-color','red');
                     messegeCancel.focus();
@@ -223,12 +224,17 @@
                 }
                 messegeCancel.css('border-color','#ccc');
 
-                self.cancelStatement().then(function(resultsConfirm) {
-                    return resultsConfirm;
-                }).then(function(resultsConfirm) {
+                cancel = {
+                    'statementId': self.id,
+                    'messege':messegeCancel.val()
+                };
+
+                self.cancelStatement(cancel).then(function(resultsCancel) {
+                    return resultsCancel;
+                }).then(function(resultsCancel) {
                     self.reloadPage();
                     self.removeModal(e);
-                    if (!resultsConfirm)
+                    if (!resultsCancel)
                         results = false;
                 });
 
@@ -245,9 +251,9 @@
             return defer;
         },
 
-        cancelStatement:function(statementId){
+        cancelStatement:function(values){
             var bankStatementUser = new instanceWeb.Model('account.bank.statement');
-            return bankStatementUser.call('eiru_statement_cancel',[statementId], {
+            return bankStatementUser.call('eiru_statement_cancel',[values], {
                 context: new instanceWeb.CompoundContext()
             });
         }

+ 1 - 1
static/src/xml/eiru_statement_confirm.xml

@@ -2,7 +2,7 @@
 <templates xml:space="preserve">
     <t t-name="EiruStatementUtility.Confirm">
         <button class="button-statement-confirm eiru-statement-button oe_button oe_form_button oe_highlight">
-            <span>Cerrar caja Eiru</span>
+            <span>Cerrar caja</span>
         </button>
   </t>
 </templates>

+ 1 - 1
views/template.xml

@@ -19,7 +19,7 @@
                 <!-- print confirm -->
                 <script type="text/javascript" src="/eiru_account_bank_statement_utility/static/src/js/eiru_statement_confirm_print.js"/>
                 <!-- cancel statement -->
-                <!-- <script type="text/javascript" src="/eiru_account_bank_statement_utility/static/src/js/eiru_statement_cancel.js"/> -->
+                <script type="text/javascript" src="/eiru_account_bank_statement_utility/static/src/js/eiru_statement_cancel.js"/>
                 <!-- Importar Cajas -->
                 <!-- <script type="text/javascript" src="/eiru_account_bank_statement_utility/static/src/js/import_statement.js"/> -->
             </xpath>