123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442 |
- (function() {
- openerp.widgetInstanceEiruAddTask = null;
- openerp.parentInstanceEiruAddTask = null;
- var Qweb = openerp.web.qweb;
- var instance = openerp;
- var instanceWeb = openerp.web;
- openerp.EiruAddTask = instance.Widget.extend({
- template: 'eiruCivil.AddTask',
- id: undefined,
- eiruTasks: [],
- currencyFormat: [],
- init: function(parent) {
- this._super(parent);
- this.buttons = parent.$buttons;
- },
- start: function() {
- var self = this;
- this.$el.click(function(){
- self.fectchInitial()
- });
- self.buttons.click(function(e) {
- /* 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');
- /* CREAR */
- if (e.target.accessKey === 'C')
- self.$el.css('display','none');
- });
- },
- updateId: function(id) {
- var self = this;
- self.id = id;
- self.$el.css('display','flex');
- if (!id)
- self.$el.css('display','none');
- },
- /* Remover */
- removeModal: function() {
- $('.expired-account-modal').remove();
- $('.modal-backdrop').remove();
- },
- /* Reloada */
- reloadPage: function() {
- openerp.parentInstanceEiruAddTask.reload();
- },
- /* Metodo Inicial */
- fectchInitial: function() {
- var self = this;
- self.fetchTask().then(function(eiruTasks) {
- return eiruTasks;
- }).then(function(eiruTasks) {
- self.eiruTasks = eiruTasks;
- return self.fetchCurrencyOrder();
- }).then(function(currencyFormat) {
- self.currencyFormat = currencyFormat;
- return self.showTaskSelected()
- });
- },
- /* GET task */
- fetchTask: function() {
- var self = this;
- var task = new openerp.web.Model('construction.task')
- return task.call('get_construction_task',[self.id],{
- context: new openerp.web.CompoundContext()
- });
- },
- /* GET CURRENCY ORDER */
- fetchCurrencyOrder: function() {
- var self = this;
- var task = new openerp.web.Model('construction.order')
- return task.call('get_currency_order',[self.id],{
- context: new openerp.web.CompoundContext()
- });
- },
- /* Modal */
- showTaskSelected: function() {
- var self = this;
- var defer = $.Deferred();
- var state = true;
- var modal = Qweb.render('eiruTasks.Modal',{'tasks': self.eiruTasks});
- $('.openerp_webclient_container').after(modal);
- $('.expired-account-modal').modal();
- var tableRow = $('.expired-account-modal').find('.table-tbody').find('tr');
- var buttonAccept = $('.expired-account-modal').find('.button-accept');
- _.each(tableRow, function(tr) {
- if (($($(tr).children()[0]).find('.select-task-item'))[0].checked) {
- $(tr).addClass('selected-task');
- ($($(tr).children()[0]).find('.select-task-item'))[0].checked=true;
- $($($(tr).children()[4]).find('.task-qty')[0]).addClass('task-input-in');
- $($($(tr).children()[5]).find('.task-amount')[0]).addClass('task-input-in');
- $($($(tr).children()[6]).find('.task-amoutn-total')[0]).addClass('task-input-in');
- if (($(tr).children()[10].textContent).trim() !== 'task'){
- $($($(tr).children()[5]).find('.task-amount')[0]).removeAttr("disabled");
- $($($(tr).children()[4]).find('.task-qty')[0]).removeAttr("disabled");
- }
- /* Format */
- formatInput = {'thousandsSeparator': '.', 'decimalPlaces': 2, 'decimalSeparator':','}
- var qtyInput = ($($(tr).children()[4]).find('.task-qty'));
- var amountInput = ($($(tr).children()[5]).find('.task-amount'));
- var amountInputTotal = ($($(tr).children()[6]).find('.task-amoutn-total'));
- // var qtyInput = $($(e.target).closest('tr').children()[4]).find('.task-qty');
- var qty = instanceWeb.unFormatCurrency( qtyInput.val());
- qtyInput.val(instanceWeb.formatCurrency(qty, formatInput))
- // var amountInput = $($(e.target).closest('tr').children()[5]).find('.task-amount');
- var amount = instanceWeb.unFormatCurrency( amountInput.val());
- amountInput.val(instanceWeb.formatCurrency(amount, self.currencyFormat))
- // var amountInputTotal = $($(e.target).closest('tr').children()[6]).find('.task-amoutn-total');
- var amountTotal = instanceWeb.unFormatCurrency( amountInputTotal.val());
- amountInputTotal.val(instanceWeb.formatCurrency(amountTotal, self.currencyFormat))
- }
- if (($(tr).children()[10].textContent).trim() === 'task') {
- $(tr).addClass('task-header-line');
- }
- })
- /* CLICK */
- tableRow.click(function(e) {
- if (($(e.target).index() !== 0) ||(($(e.target).index() === 0) && ($(e.target)[0].className !== 'select-task-item')))
- return false;
- var typeTask = ($(e.target).closest('tr').children()[10].textContent).trim();
- var idTask = parseInt(($(e.target).closest('tr').children()[7].textContent).trim());
- var idTaskLine = parseInt(($(e.target).closest('tr').children()[8].textContent).trim());
- if (typeTask === 'task') {
- if (e.target.checked === true) {
- _.each(tableRow, function(tr) {
- taskID = parseInt(($(tr).children()[7].textContent).trim())
- lineID = parseInt(($(tr).children()[8].textContent).trim())
- if (taskID === idTask ) {
- /* SELECT */
- $(tr).addClass('selected-task');
- ($($(tr).children()[0]).find('.select-task-item'))[0].checked=true;
- $($($(tr).children()[4]).find('.task-qty')[0]).addClass('task-input-in');
- $($($(tr).children()[5]).find('.task-amount')[0]).addClass('task-input-in');
- $($($(tr).children()[6]).find('.task-amoutn-total')[0]).addClass('task-input-in');
- if (!!lineID) {
- $($($(tr).children()[5]).find('.task-amount')[0]).removeAttr("disabled");
- $($($(tr).children()[4]).find('.task-qty')[0]).removeAttr("disabled");
- }
- }
- })
- } else {
- _.each(tableRow, function(tr) {
- taskID = parseInt(($(tr).children()[7].textContent).trim())
- if (taskID === idTask) {
- $(tr).removeClass('selected-task');
- ($($(tr).children()[0]).find('.select-task-item'))[0].checked=false;
- /* QTY */
- $($($(tr).children()[4]).find('.task-qty')[0]).removeClass('task-input-in');
- $($($(tr).children()[4]).find('.task-qty')[0]).attr("disabled", true);
- /* AMOUNT */
- $($($(tr).children()[5]).find('.task-amount')[0]).removeClass('task-input-in');
- $($($(tr).children()[5]).find('.task-amount')[0]).attr("disabled", true);
- /* TOTAL */
- $($($(tr).children()[6]).find('.task-amoutn-total')[0]).removeClass('task-input-in');
- ($($(tr).children()[4]).find('.task-qty')).val(0);
- ($($(tr).children()[5]).find('.task-amount')).val(0);
- ($($(tr).children()[6]).find('.task-amoutn-total')).val(0);
- }
- })
- }
- } else {
- if (e.target.checked === true) {
- $(e.target).closest('tr').addClass('selected-task');
- $($($(e.target).closest('tr').children()[4]).find('.task-qty')[0]).addClass('task-input-in');
- $($($(e.target).closest('tr').children()[5]).find('.task-amount')[0]).addClass('task-input-in');
- $($($(e.target).closest('tr').children()[6]).find('.task-amoutn-total')[0]).addClass('task-input-in');
- $($($(e.target).closest('tr').children()[5]).find('.task-amount')[0]).removeAttr("disabled");
- $($($(e.target).closest('tr').children()[4]).find('.task-qty')[0]).removeAttr("disabled");
- ($($(e.target).closest('tr').children()[4]).find('.task-qty')).focus();
- _.each(tableRow,function(tr){
- taskID = parseInt(($(tr).children()[7].textContent).trim())
- lineID = parseInt(($(tr).children()[8].textContent).trim())
- if ((taskID === idTask) && (!lineID)) {
- $(tr).addClass('selected-task');
- // /* SELECTED */
- ($($(tr).children()[0]).find('.select-task-item'))[0].checked=true;
- $($($(tr).children()[4]).find('.task-qty')[0]).addClass('task-input-in');
- $($($(tr).children()[5]).find('.task-amount')[0]).addClass('task-input-in');
- $($($(tr).children()[6]).find('.task-amoutn-total')[0]).addClass('task-input-in');
- }
- });
- } else {
- $(e.target).closest('tr').removeClass('selected-task');
- $($($(e.target).closest('tr').children()[4]).find('.task-qty')[0]).removeClass('task-input-in');
- $($($(e.target).closest('tr').children()[4]).find('.task-qty')[0]).attr("disabled", true);
- $($($(e.target).closest('tr').children()[5]).find('.task-amount')[0]).removeClass('task-input-in');
- $($($(e.target).closest('tr').children()[5]).find('.task-amount')[0]).attr("disabled", true);
- $($($(e.target).closest('tr').children()[6]).find('.task-amoutn-total')[0]).removeClass('task-input-in');
- ($($(e.target).closest('tr').children()[4]).find('.task-qty')).val(0);
- ($($(e.target).closest('tr').children()[5]).find('.task-amount')).val(0);
- ($($(e.target).closest('tr').children()[6]).find('.task-amoutn-total')).val(0);
- var stateSelect = false;
- _.each(tableRow,function(tr){
- taskID = parseInt(($(tr).children()[7].textContent).trim())
- lineID = parseInt(($(tr).children()[8].textContent).trim())
- if ((taskID === idTask) && (!lineID)) {
- var totalAmount = 0
- _.each(tableRow,function(tr){
- if ((parseInt(($(tr).children()[7].textContent).trim()) === idTask) && (!! parseInt(($(tr).children()[8].textContent).trim()))) {
- if (!!(($($(tr).children()[0]).find('.select-task-item'))[0].checked)){
- stateSelect = ($($(tr).children()[0]).find('.select-task-item'))[0].checked;
- var qty = ($($(tr).children()[4]).find('.task-qty'));
- var amount = ($($(tr).children()[5]).find('.task-amount'));
- var total = ($($(tr).children()[6]).find('.task-amoutn-total'));
- total.val(instanceWeb.formatCurrency((instanceWeb.unFormatCurrency(qty.val()) * instanceWeb.unFormatCurrency(amount.val())), self.currencyFormat));
- /* Total */
- totalAmount += instanceWeb.unFormatCurrency(total.val());
- }
- }
- });
- if (!stateSelect){
- ($($(tr).children()[0]).find('.select-task-item'))[0].checked = false;
- $(tr).removeClass('selected-task');
- $($($(tr).children()[4]).find('.task-qty')[0]).removeClass('task-input-in');
- $($($(tr).children()[5]).find('.task-amount')[0]).removeClass('task-input-in');
- $($($(tr).children()[6]).find('.task-amoutn-total')[0]).removeClass('task-input-in');
- }
- ($($(tr).children()[4]).find('.task-qty')).val(0);
- ($($(tr).children()[5]).find('.task-amount')).val(0);
- ($($(tr).children()[6]).find('.task-amoutn-total')).val(instanceWeb.formatCurrency(totalAmount, self.currencyFormat));
- }
- });
- }
- }
- });
- // FOCUSIN
- tableRow.focusin(function(e){
- if (($(e.target).index() !== 0) && (($(e.target)[0].className !== 'task-qty') || ($(e.target)[0].className !== 'task-amount')))
- return false;
- var qtyInput = $($(e.target).closest('tr').children()[4]).find('.task-qty');
- var amountInput = $($(e.target).closest('tr').children()[5]).find('.task-amount');
- var nameClase = ($(e.target)[0].className).trim().split(" ");
- /* QTY */
- if (_.contains(nameClase, 'task-qty')) {
- var qty = instanceWeb.unFormatCurrency( qtyInput.val());
- if (qty === 0)
- qtyInput.val('');
- }
- /* Precio Unitario*/
- if (_.contains(nameClase, 'task-amount')) {
- var amount = instanceWeb.unFormatCurrency( amountInput.val());
- if (amount === 0)
- amountInput.val('');
- }
- });
- /* KEYUP */
- tableRow.keyup(function(e) {
- if (($(e.target).index() !== 0) && (($(e.target)[0].className !== 'task-qty') || ($(e.target)[0].className !== 'task-amount'))){
- return false;
- }
- var qtyInput = $($(e.target).closest('tr').children()[4]).find('.task-qty');
- var amountInput = $($(e.target).closest('tr').children()[5]).find('.task-amount');
- var totalInput = $($(e.target).closest('tr').children()[6]).find('.task-amoutn-total');
- var nameClase = ($(e.target)[0].className).trim().split(" ");
- /* QTY */
- if (_.contains(nameClase, 'task-qty')) {
- formatInput = {
- 'thousandsSeparator': '.',
- 'decimalPlaces': 2,
- 'decimalSeparator':','
- }
- if (e.key === formatInput.decimalSeparator && formatInput.decimalPlaces > 0)
- return
- var qty = instanceWeb.unFormatCurrency( qtyInput.val());
- qty = instanceWeb.formatCurrency(qty, formatInput)
- qtyInput.val(qty)
- }
- /* AMOUNT */
- if (_.contains(nameClase, 'task-amount')) {
- if (e.key === self.currencyFormat.decimalSeparator && self.currencyFormat.decimalPlaces > 0)
- return
- var amount = instanceWeb.unFormatCurrency( amountInput.val());
- amount = instanceWeb.formatCurrency(amount, self.currencyFormat)
- amountInput.val(amount)
- }
- });
- /* FOCUS OUT */
- tableRow.focusout(function(e) {
- if (($(e.target).index() !== 0) && (($(e.target)[0].className !== 'task-qty') || ($(e.target)[0].className !== 'task-amount'))){
- return false;
- }
- var idTask = parseInt(($(e.target).closest('tr').children()[7].textContent).trim());
- _.each(tableRow,function(tr){
- taskID = parseInt(($(tr).children()[7].textContent).trim())
- lineID = parseInt(($(tr).children()[8].textContent).trim())
- if ((taskID === idTask) && (!lineID)) {
- var totalTask = ($($(tr).children()[6]).find('.task-amoutn-total'))
- var totalAmount = 0;
- _.each(tableRow,function(tr){
- if ((parseInt(($(tr).children()[7].textContent).trim()) === idTask) && (!! parseInt(($(tr).children()[8].textContent).trim()))) {
- if (!!(($($(tr).children()[0]).find('.select-task-item'))[0].checked)){
- var qty = ($($(tr).children()[4]).find('.task-qty'));
- var amount = ($($(tr).children()[5]).find('.task-amount'));
- var total = ($($(tr).children()[6]).find('.task-amoutn-total'));
- total.val(instanceWeb.formatCurrency((instanceWeb.unFormatCurrency(qty.val()) * instanceWeb.unFormatCurrency(amount.val())), self.currencyFormat));
- /* Total */
- totalAmount += instanceWeb.unFormatCurrency(total.val());
- }
- }
- });
- totalTask.val(instanceWeb.formatCurrency(totalAmount, self.currencyFormat));
- }
- });
- });
- /* GUARDAR */
- buttonAccept.click(function(e){
- var orderTask = [];
- _.each(tableRow, function(tr) {
- if ( ($($(tr).children()[0]).find('.select-task-item'))[0].checked ) {
- var qty = ($($(tr).children()[4]).find('.task-qty'));
- var amount = ($($(tr).children()[5]).find('.task-amount'));
- var total = ($($(tr).children()[6]).find('.task-amoutn-total'));
- orderTask.push({
- 'code': ($(tr).children()[1].textContent).trim(),
- 'taskName': ($(tr).children()[2].textContent).trim(),
- 'qty': instanceWeb.unFormatCurrency(qty.val()),
- 'amount': instanceWeb.unFormatCurrency(amount.val()),
- 'amountTotal': instanceWeb.unFormatCurrency(total.val()),
- 'taskId': ($(tr).children()[7].textContent).trim(),
- 'taskLineId': ($(tr).children()[8].textContent).trim(),
- 'uomId': ($(tr).children()[9].textContent).trim(),
- 'type': ($(tr).children()[10].textContent).trim(),
- // 'orderIds' : self.id,
- })
- }
- });
- if (!orderTask.length) {
- instanceWeb.notification.do_warn("Atencion", "Debes seleccionar al menos una tarea.");
- return
- }
- self.addtask(orderTask).then(function(taskAdd) {
- return taskAdd;
- }).then(function(taskAdd) {
- state = taskAdd.state;
- // instanceWeb.notification.do_warn("Atencion", taskAdd.message);
- self.reloadPage();
- self.removeModal(e);
- });
- defer.resolve(state);
- });
- /* Click Cerrar */
- $('.expired-account-modal').on('hidden.bs.modal', function (e) {
- defer.resolve(false);
- self.removeModal(e);
- });
- return defer;
- },
- /*actualizar line order */
- addtask: function(tasks){
- var self = this;
- var order = new instance.web.Model('construction.order');
- return order.call('eiru_add_task',[self.id, tasks], {
- context: new instance.web.CompoundContext()
- });
- },
- });
- if (instance.web && instance.web.FormView) {
- instance.web.FormView.include({
- load_record: function(record) {
- this._super.apply(this, arguments);
- if (this.model !== 'construction.order')
- return;
- openerp.parentInstanceEiruAddTask = this;
- if (openerp.widgetInstanceEiruAddTask) {
- openerp.widgetInstanceEiruAddTask.updateId(record.id);
- if (this.$el.find('.button-add-task').length !== 0){
- return
- }
- }
- if (this.$el.find('.button-add-task').length !== 0 )
- return;
- openerp.widgetInstanceEiruAddTask = new openerp.EiruAddTask(this);
- var elemento = this.$el.find('.oe_form').find('.eiru-add-task');
- openerp.widgetInstanceEiruAddTask.appendTo(elemento);
- openerp.widgetInstanceEiruAddTask.updateId(record.id);
- },
-
- });
- }
- })();
|