Ver código fonte

[ADD] Commit Inicial

adrielso 7 anos atrás
commit
260caeae80

+ 2 - 0
.gitignore

@@ -0,0 +1,2 @@
+*.pyc
+.scannerwork

+ 1 - 0
README.md

@@ -0,0 +1 @@
+# Eiru pagos de nóminas

+ 1 - 0
__init__.py

@@ -0,0 +1 @@
+# -*- coding: utf-8 -*-

+ 23 - 0
__openerp__.py

@@ -0,0 +1,23 @@
+# -*- coding: utf-8 -*-
+{
+    'name': 'Eiru Pagos de nómina',
+    'version': '1.0',
+    'description': """
+
+Modulo para generar pagos de nóminas.
+
+	""",
+    'author': 'Adrielso Kunert',
+    'category': 'hr',
+    'depends': ['hr', 'account', 'base', 'hr_payroll', 'account_voucher', 'eiru_assets'],
+    'data': [
+        'view/template.xml',
+        'view/payslip_payments.xml',
+    ],
+    'qweb': [
+        'static/src/xml/*.xml',
+    ],
+
+    'installable': True,
+    'auto_install': False,
+ }

+ 0 - 0
model/__init__.py


+ 5 - 0
sonar-project.properties

@@ -0,0 +1,5 @@
+sonar.projectKey=eiru:payslip:payments
+sonar.projectName=eiru_payslip_payments
+sonar.projectVersion=1.0
+sonar.sources=.
+sonar.javascript.globals=openerp

BIN
static/descripcion/icon.png


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

@@ -0,0 +1,52 @@
+.eiru-payslip-payments {
+    width: auto !important;
+    height: auto !important;
+}
+.label-descrip {
+    float: left;
+    width: 130px;
+    height: 30px;
+    padding-bottom: 8px;
+    font-size: 13px;
+}
+
+.label-descrip.payslip-name {
+    width: 100%;
+    height: 30px
+}
+.label-descrip.labe-input {
+    padding-top: 5px;
+}
+.details-employee {
+    float: left;
+    width: calc(100% - 130px);
+    height: 30px;
+    padding-bottom: 8px;
+    font-size: 13px;
+}
+.details-employee.amount-net {
+    padding-bottom: 1px;
+    border: 1px solid #e9e9e9;
+    padding-right: 10px;
+    width: 150px;
+    text-align: right;
+}
+.current-journal {
+    width: 200px;
+    height: 30px;
+}
+.journal-ref {
+    width: 200px;
+    height: 30px;
+}
+/*botones*/
+.dismmis-modal {
+    width: 100px;
+    height: 30px;
+    color: #0288d1 !important;
+    font-weight: bold;
+}
+.payments-payslip {
+    width: 100px;
+    height: 30px;
+}

+ 194 - 0
static/src/js/payslip_payments.js

@@ -0,0 +1,194 @@
+openerp.eiru_payslip_payments = function(instance, local) {
+
+    local.widgetInstance = null;
+    local.parentInstance = null;
+    var Qweb = openerp.web.qweb;
+
+    local.PayslipPaymentsWidget = instance.Widget.extend({
+        template: 'eiru_payslip_payments.PayslipWidget',
+        id: undefined,
+        payslip: [],
+
+        init: function(parent) {
+            this._super(parent);
+        },
+        start: function() {
+            var self = this;
+            this.$el.click(function(){
+                self.fectchInitial()
+                // self.showPayments();
+            });
+        },
+        updateId: function(id) {
+            var self = this;
+            self.id = id;
+        },
+
+        fectchInitial: function() {
+            var self = this;
+            self.fectchHrPayslip().then(function(payslip) {
+                return payslip;
+            }).then(function(payslip) {
+                self.payslip = payslip;
+                // console.log(self.payslip);
+                return self.fectchHrPayslipLine(payslip);
+            }).then(function(payslipLine) {
+                self.payslipLine = payslipLine;
+                return self.fectchJournalSalario();
+            }).then(function(journalSalario) {
+                self.journalSalario = journalSalario;
+                console.log(journalSalario);
+
+                // console.log(payslipLine);
+                // local.parentInstance.reload();
+                // if (!payslip)
+                //     instance.web.notification.do_warn("Atención","No existe nomina para ser generada, en el periodo seleccionado");
+            });
+        },
+        fectchHrPayslip: function() {
+            var self = this;
+            var defer = $.Deferred();
+            var fields = ['id', 'name', 'employee_id', 'date_from', 'date_to', 'move_id', 'number', 'line_ids', 'journal_id'];
+            var domain = [['payslip_run_id', 'in', [self.id]],['state', '=', 'done']];
+            var payslip = new instance.web.Model('hr.payslip');
+            payslip.query(fields).filter(domain).all().then(function(results) {
+                defer.resolve(results);
+            });
+
+            return defer;
+        },
+        // Hr payslip Line
+        fectchHrPayslipLine: function(payslip) {
+            var self = this;
+            var defer = $.Deferred();
+
+            var payslip_id = _.map(payslip, function(map) {
+                return map.id;
+            });
+            var fields = ['id', 'name', 'code', 'total', 'amount'];
+            var domain = [['slip_id', 'in', payslip_id], ['code', '=', 'NET']];
+            var payslipLine = new instance.web.Model('hr.payslip.line');
+            payslipLine.query(fields).filter(domain).all().then(function(results) {
+                defer.resolve(results);
+            });
+
+            return defer;
+        },
+        // Diario de Salario
+        fectchJournalSalario: function() {
+            var self = this;
+            var defer = $.Deferred();
+            var journal_id = _.map(self.payslip, function(map) {
+                return map.journal_id[0];
+            });
+            console.log(journal_id);
+            var fields = ['id', 'name', 'code', 'type', 'currency', 'default_debit_account_id', 'default_credit_account_id'];
+            var domain = [['id', 'in', journal_id]];
+            var journalSalario = new instance.web.Model('account.journal');
+            journalSalario.query(fields).filter(domain).all().then(function(results) {
+                defer.resolve(results);
+            });
+
+            return defer;
+        },
+        // fectchGenerateNomina: function() {
+        //     var self = this;
+        //     var defer = $.Deferred();
+        //     var hr_payslip = new instance.web.Model('hr.payslip');
+        //
+        //     hr_payslip.call('generate_payroll_eiru',[self.id], {
+        //         context: new instance.web.CompoundContext()
+        //     }).then(function(results) {
+        //         defer.resolve(results);
+        //     });
+        //     return defer;
+        // },
+
+        showPayments: function() {
+            var self = this;
+            // Nomina Detalle
+            var headerModalName = [{
+                name: "Nómina salarial de Adrielso Kunert para diciembre-2017"
+            }];
+            //
+            dataPayslip = [{
+                employee: 'Adrielso kunert',
+                periodo: '01-10-2017 -30-10-2017',
+                salario: '5.000.000',
+                ref: '	SLIP/062'
+            }]
+
+            var modal = Qweb.render('EiruPayslipPaymentsModal', {
+                data: dataPayslip,
+                dataName: headerModalName,
+            });
+
+
+            $('.openerp_webclient_container').after(modal);
+            $('.expired-account-modal').modal();
+
+            // Cargara los metodo de pago
+            var journal =  $('.expired-account-modal').find('.current-journal');
+            console.log(journal);
+            journal.append('<option value="1">TODAS LAS SUC.</option>');
+            journal.append('<option value="2">TODAS LAS SUC.</option>');
+            journal.append('<option value="3">TODAS LAS SUC.</option>');
+            journal.append('<option value="4">TODAS LAS SUC.</option>');
+            journal.append('<option value="5">TODAS LAS SUC.</option>');
+            // Actualizar monto a pagar
+            $('.expired-account-modal').find('.amount-net').val('5.000.000')
+
+            // Selecion de Journal
+            journal.click(function(e){
+                $('.expired-account-modal').find('.amount-net').val(journal.val())
+            })
+            // Click Cerrar
+            $('.expired-account-modal').on('hidden.bs.modal', function (e) {
+                self.removeModal(e);
+            })
+
+            // clcik boton pagar
+            var contenido = $('.expired-account-modal').find('.payments-payslip');
+            contenido.click(function (e) {
+                // $(contenido).find('tr').removeClass('table-row-select');
+                // $(e.target).closest('tr').addClass('table-row-select');
+                // var chirdren_id =$(e.target).closest('tr').children()[0].textContent;
+                // self.renderForm(chirdren_id);
+                // console.log(e);
+            });
+        },
+        // Remover <Modal></Modal>
+        removeModal: function (e) {
+            $('.expired-account-modal').remove();
+            $('.modal-backdrop').remove();
+        },
+    });
+
+    if (instance.web && instance.web.FormView) {
+        instance.web.FormView.include({
+            load_record: function(record) {
+                this._super.apply(this, arguments);
+
+                if (this.model !== 'hr.payslip.run')
+                    return;
+
+                local.parentInstance = this;
+
+                if (local.widgetInstance) {
+                    local.widgetInstance.updateId(record.id);
+                }
+
+                if (this.$el.find('.payslip-payments').length !== 0 )
+                    return;
+
+                local.widgetInstance = new local.PayslipPaymentsWidget(this);
+
+                var elemento = this.$el.find('.oe_form_sheet.oe_form_sheet_width');
+                elemento = elemento.find('.oe_right.oe_button_box.eiru-payslip-payments');
+
+                local.widgetInstance.appendTo(elemento);
+                local.widgetInstance.updateId(record.id);
+            }
+        });
+    }
+}

+ 12 - 0
static/src/xml/eiru_payslip_payments.xml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<templates xml:space="preserve">
+    <t t-name="eiru_payslip_payments.PayslipWidget">
+        <div class="payslip-payments">
+            <button class="payslip-payments oe_stat_button btn btn-default oe_inline">
+                <div class="stat_button_icon fa fa-money"></div>
+                <div>Pagar Nómina</div>
+            </button>
+        </div>
+  </t>
+</templates>

+ 109 - 0
static/src/xml/hr_payslip_payments.xml

@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<template xml:space="preserve">
+    <t t-name="EiruPayslipPaymentsModal">
+        <div class="modal in expired-account-modal" tabindex="-1" role="dialog">
+            <div class="modal-dialog modal-lg" role="document">
+                <div class="modal-content openerp">
+                    <!-- title  -->
+                    <div class="modal-header">
+                        <button type="button" class="close" data-dismiss="modal" aria-label="Close" aria-hidden="true">×</button>
+                        <h3 class="modal-title">
+                            Pagos de Nómina
+                        </h3>
+                    </div>
+                    <!-- Body -->
+                    <div class="modal-body">
+                        <!-- Descripcion de la nominas  -->
+                        <div class="row" t-foreach="dataName" t-as="head">
+                            <div class="col-xs-12">
+                                <label class="label-descrip payslip-name">
+                                    <t t-esc="head_value.name"/>
+                                </label>
+                            </div>
+                        </div>
+                        <!-- Datos del Empleado  -->
+                        <div class="row" t-foreach="data" t-as="data">
+                            <div class="col-xs-6">
+                                <label class="label-descrip">Empleado : </label>
+                                <span class="details-employee">
+                                    <t t-esc="data_value.employee"/>
+                                </span>
+                            </div>
+                            <div class="col-xs-6">
+                                <label class="label-descrip">Periodo : </label>
+                                <span class="details-employee">
+                                    <t t-esc="data_value.periodo"/>
+                                </span>
+                            </div>
+                            <div class="col-xs-6">
+                                <label class="label-descrip">Referencia : </label>
+                                <span class="details-employee">
+                                    <t t-esc="data_value.ref"/>
+                                </span>
+                            </div>
+                            <div class="col-xs-6">
+                                <label class="label-descrip labe-input">Monto a Pagar : </label>
+                                <input class="details-employee amount-net" readonly='readonly'></input>
+                            </div>
+                            <!-- Metodo de pagos -->
+                            <div class="col-xs-6">
+                                <label class="label-descrip labe-input">Método de pago: </label>
+                                <select class="current-journal">
+                                </select>
+                            </div>
+                            <!-- Referencia de pagos -->
+                            <div class="col-xs-6">
+                                <label class="label-descrip labe-input">Referencia de pago: </label>
+                                <input type="text" class="journal-ref"></input>
+                            </div>
+                        </div>
+                    </div>
+                    <!-- <div class="oe_view_manager_body table-model"> -->
+                        <!-- tabla Head -->
+                        <!-- <div class="modal-head-wrapper">
+                            <table class="oe_list_content">
+                                <thead >
+                                    <tr class="oe_list_header_columns" >
+                                        <th t-foreach="dataThead" t-as="head" class="oe_list_header_char oe_sortable">
+                                            <t t-esc="head_value.title"/>
+                                        </th>
+                                    </tr>
+                                </thead>
+                            </table>
+                        </div> -->
+                        <!-- table body -->
+                        <!-- <div class="modal-items-wrapper">
+                            <table class="oe_list_content">
+                                <tbody class="table-tbody">
+                                    <tr t-foreach="data" t-as="field">
+                                        <td><t t-esc="field_value.invoice[0]"/></td>
+                                        <td><t t-esc="field_value.partner_id[1]"/></td>
+                                        <td><t t-esc="field_value.ref"/></td>
+                                        <td>
+                                            <t t-set="vencimiento" t-value="field_value.date_maturity"/>
+                                            <t t-js="ctx">
+                                                ctx.vencimiento = $.timeago(moment(ctx.vencimiento).format("YYYY-DD-MM"));
+                                            </t>
+                                            <t t-esc="vencimiento"/></td>
+                                        <td>
+                                            <t t-set="monto" t-value="field_value.amount_residual"/>
+                                            <t t-js="ctx">
+                                                ctx.monto = accounting.formatNumber(ctx.monto,0,'.',',');
+                                            </t>
+                                            <t t-esc="monto"/>
+                                        </td>
+                                    </tr>
+                                </tbody>
+                            </table>
+                        </div> -->
+                    <!-- </div> -->
+                    <!-- Pie de Pagina -->
+                    <div class="modal-footer">
+                        <button type="button" class="oe_button oe_form_button oe_highlight payments-payslip">Pagar</button>
+                        <button type="button" class="oe_button oe_form_button oe_link dismmis-modal" data-dismiss="modal">Cancelar</button>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </t>
+</template>

+ 15 - 0
view/payslip_payments.xml

@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<openerp>
+	<data>
+        <record id="view_eiru_payslip_payments" model="ir.ui.view">
+            <field name="name">view.eiru.payslip.payments</field>
+            <field name="model">hr.payslip.run</field>
+            <field name="inherit_id" ref="hr_payroll.hr_payslip_run_form"/>
+            <field name="arch" type="xml">
+                <label for="name" position="before">
+                    <div class="oe_right oe_button_box eiru-payslip-payments" attrs="{'invisible': [('state','!=','close')]}"></div>
+                </label>
+            </field>
+        </record>
+	</data>
+</openerp>

+ 10 - 0
view/template.xml

@@ -0,0 +1,10 @@
+<openerp>
+    <data>
+        <template id="eiru_payslip_payments.eiru_assets" name="aeiru_payslip_payments_eiru_assets" inherit_id="eiru_assets.assets">
+            <xpath expr="." position="inside">
+                <link rel="stylesheet" href="/eiru_payslip_payments/static/src/css/style.css"/>
+                <script type="text/javascript" src="/eiru_payslip_payments/static/src/js/payslip_payments.js"/>
+            </xpath>
+        </template>
+    </data>
+</openerp>