new Vue({
    el: '#apptrabajos',
    data: {
        titulo: '',
        accion: '',
        categorias: [],
        dataForm: { 'id': '', 'estatus': '','com':0},
        dataF: { 'id': '', 'empleado': '','clave':''},
        dataFb: { 'id': '', 'empleado': '','clave':''},
        errorForm: [],
        cargando: false,
        lista_categoria:[],
        principal:'',
        trabajos_adicionales:[],
        total:0,
        comisiones:[],
        servicios:[],
        servicios2:[],
        trabajos_asignados:[],
        categoria:document.getElementById('id').value,
        categoria2:document.getElementById('id2').value,
        fecha_desde: '',
        fecha_hasta: '',
       sele_cate:0,
       planilla:[],
       descrip:'',
       sele:[],
	cepillar:[],
	barrenar:[]
    },
    mounted(){
  
    },
    created() {
      this.categoriasl();
      this.categoriasEmpleado(this.categoria); 
    },
    methods: {
        updateCategoria(id){
          this.categoriasl();
          this.categoriasEmpleado(id); 
        },
        categoriasl(){
          axios({
            method: "post",
            url: "trabajos/categorias",
            data: {
              id:this.categoria,
              id2:this.categoria2
            },
            transformRequest: serializar(),
          }).then((response) => {
             this.categorias=response.data.categorias;
            }).catch(e => notificacion()).finally(() => {
           });
        },
        categoriasEmpleado(id){
          $('#table_categoria'+id).DataTable().destroy();
            axios
            .get("trabajos/categoriasEmpleado/"+id)
            .then((response) => {
              if(this.categoria==id){
                this.servicios=response.data.servicios;
                this.total=Number(this.servicios.length);
              }else{
                this.servicios2=response.data.servicios;
                this.total=Number(this.servicios2.length);
              }
            // this.obtenerTrabajosAsignados(this.categorias.principal);
            }).catch(e => notificacion()).finally(() => {
              $('#table_categoria'+id).DataTable({
                retrieve: true,
                  "order": []
              });
           });
        },
	categoriasEmpleadoBarrenar(){
          $('#tabl_barrenar').DataTable().destroy();
            axios
            .get("trabajos/categoriasEmpleadoBarrenar")
            .then((response) => {
             
                this.barrenar=response.data.servicios;
                //this.total=Number(this.servicios.length);
              
            // this.obtenerTrabajosAsignados(this.categorias.principal);
            }).catch(e => notificacion()).finally(() => {
              $('#tabl_barrenar').DataTable({
                retrieve: true,
                  "order": []
              });
           });
        },
       categoriasEmpleadoCepillar(){
          $('#tabl_cepillar').DataTable().destroy();
            axios
            .get("trabajos/categoriasEmpleadoCepillar")
            .then((response) => {
             
                this.cepillar=response.data.servicios;
                //this.total=Number(this.servicios.length);
              
            // this.obtenerTrabajosAsignados(this.categorias.principal);
            }).catch(e => notificacion()).finally(() => {
              $('#tabl_cepillar').DataTable({
                retrieve: true,
                  "order": []
              });
           });
        },
        modal_user(row){
          this.dataF.id=row.preserv_id;
          this.sele_cate=row.cat_id;
          this.dataF.empleado='';
          $('#modal_user').modal('show');
        },
        modal_varios(){
          let id_comisiones = [];

          for (let row of this.planilla.servicios) {
              if (row.checked == true) {
                this.sele.push(row.preserv_id);
                  this.sele_cate=row.cat_id;
              }
          }
          
          this.dataFb.empleado='';
          $('#modal_trabajo').modal('hide');
          $('#modal_varios').modal('show');
        },

        modal_adicionales(){
          this.dataF.id='';
          this.dataF.empleado='';
          this.dataF.clave='';
          this.trabajos_asignados=[];
          this.comisiones=[];

          $('#table_trabajos').DataTable().destroy();
          $('#table_comisione').DataTable().destroy();
          $('#modal_adicionales').modal('show');
        },
        modal_detalles(id,descrip,cate){
          this.descrip=descrip;
          axios({
            method: "POST",
            url: "trabajos/obtenerPlanilla",
            data: {
              id:id,
              cate:cate
            },
            transformRequest: serializar(),
          }).then((response) => {
            this.planilla = response.data;
            $('#modal_trabajo').modal('show');
          })
          .catch((e) => notificacion());
        },
        modal_trabajo(){
          this.dataF.id='';
          this.dataF.empleado='';
          this.dataF.clave='';
          this.trabajos_asignados=[];
          this.comisiones=[];
          $('#table_trabajos').DataTable().destroy();
          $('#table_comisione').DataTable().destroy();
          $('#modal_trabajo').modal('show');
        },
        modal_comisiones(){
          this.dataF.id='';
          this.dataF.empleado='';
          this.dataF.clave='';
         
          $('#modal_comisiones').modal('show');
        },
        asignarTrabajo(){
          Swal.fire({
            title: 'Finalizar trabajo',
            text: "¿Estás seguro de haber FINALIZADO este trabajo? ",
            showCancelButton: true,
            confirmButtonColor: '#3085d6',
            cancelButtonColor: '#aaa',
            cancelButtonText: 'NO',
            confirmButtonText: 'SI'
            }).then((result) => {
                if (result.value) {
              axios({
                method: "post",
                url: "trabajos/asignarTrabajo",
                data: this.dataF,
                transformRequest: serializar(),
              }).then((response) => {
                if(response.data==true){
                  $('#modal_user').modal('hide');
                  notificacion("fa fa-check", "", "Trabajo guardado como finalizado", "success");
                }else{
                  let total_errores = response.data.errors.length;
                  for (let i = 0; i < total_errores; i++) {
                    notificacion("fa fa-ban", "Advertencia", response.data.errors[i], "warning");
                  }
              }
              }).catch(e => notificacion()).finally(() => { 
                this.categoriasEmpleado(this.sele_cate);
                this.categoriasl();
                this.dataF.id='';
                this.dataF.empleado='';
                this.dataF.clave='';
              });
            }
            });
        },
        asignarTrabajoVarios(){

          Swal.fire({
            title: 'Finalizar trabajo',
            text: "¿Estás seguro de haber FINALIZADO este trabajo? ",
            showCancelButton: true,
            confirmButtonColor: '#3085d6',
            cancelButtonColor: '#aaa',
            cancelButtonText: 'NO',
            confirmButtonText: 'SI'
            }).then((result) => {
                if (result.value) {
                  if(this.sele.length>0){
                 console.log(this.dataFb.clave)
                    for (i=0;i<this.sele.length;i++) {
                    this.dataFb.id=this.sele[i];
                    console.log(this.dataFb.id)
                    axios({
                      method: "post",
                      url: "trabajos/asignarTrabajo",
                      data: {
                        'id':this.dataFb.id,
                        'empleado':this.dataFb.empleado,
                        'clave':this.dataFb.clave
                      },
                      transformRequest: serializar(),
                    }).then((response) => {
                      if(response.data==true){
                        notificacion("fa fa-check", "", "Trabajo guardado como finalizado", "success");
                      }else{
                        let total_errores = response.data.errors.length;
                        for (let i = 0; i < total_errores; i++) {
                          notificacion("fa fa-ban", "Advertencia", response.data.errors[i], "warning");
                        }
                    }
                    }).catch(e => notificacion()).finally(() => { 
                      
                    });
                  }
                      this.categoriasEmpleado(this.sele_cate);
                      this.categoriasl();
                      this.dataFb.id='';
                      this.dataFb.empleado='';
                      this.dataFb.clave='';
                      this.sele=[];
                      $('#modal_varios').modal('hide');
                }
            }
            });
        },
        seleTrabajo(){
          $('#table_trabajos').DataTable().destroy();
            axios({
              method: "post",
              url: "trabajos/obtenerTrabajosAsignados",
              data: {
                empleado:this.dataF.empleado,
                clave:this.dataF.clave
              },
              transformRequest: serializar(),
            }).then((response) => {
              this.trabajos_asignados=response.data;
              $('#modal_trabajo').modal('hide');
            }).catch(e => notificacion()).finally(() => {
              $('#table_trabajos').DataTable({
                retrieve: true,
                  "order": []
              });
          });
        },
        comision(){
          this.trabajos_asignados=[];
          this.comisiones=[];
          $('#table_trabajos').DataTable().destroy();
          $('#table_comisione').DataTable().destroy();
        },
        obtenerComisiones(){
          $('#table_comisione').DataTable().destroy();
            axios({
              method: "post",
              url: "trabajos/obtenerComisiones",
              data: {
                empleado:this.dataF.empleado,
                clave:this.dataF.clave,
                fecha_desde: this.fecha_desde,
                fecha_hasta: this.fecha_hasta,
              },
              transformRequest: serializar(),
            }).then((response) => {

              if (response.data.errors == null) {
                this.comisiones=response.data.comisiones;
                this.comisionescantidad=response.data.cantidad;
                this.comisionestotal=response.data.total;
              }else {
                    let total_errores = response.data.errors.length;
                    for (let i = 0; i < total_errores; i++) {
                      notificacion("fa fa-ban", "Advertencia", response.data.errors[i], "warning");
                    }
              }

                this.dataF.id='';
                this.dataF.empleado='';
                this.dataF.clave='';
                $('#modal_comisiones').modal('hide');

            }).catch(e => notificacion()).finally(() => {
              $('#table_comisione').DataTable({
                retrieve: true,
                  "order": []
              });
          });
        },
        modal_estatus(row){
          this.dataForm.id=row.id;
          this.dataForm.estatus=row.estatus;
          $('#modal_estatus').modal('show');
        },
        modal_estatusad(row){
          this.dataForm.id=row.id;
          this.dataForm.estatus=row.estatus;
          $('#modal_estatusad').modal('show');
        },
        estatusServiciosAdicionales() {
          let msj='';
          if( this.dataForm.estatus==1){
            msj='FINALIZADO'
          }
          if( this.dataForm.estatus==2){
              msj='EN PROCESO'
          }
          if( this.dataForm.estatus==0){
            msj='PENDIENTE'
          }
          Swal.fire({
            title: 'Actualizar estatus',
            text: "¿Estás seguro de querer cambiar el estatus a " + msj+'? ',
            showCancelButton: true,
            confirmButtonColor: '#3085d6',
            cancelButtonColor: '#aaa',
            cancelButtonText: 'Cancelar',
            confirmButtonText: 'Guardar'
          }).then((result) => {
              if (result.value) {
              axios({
                method: "post",
                url: "trabajos/estatusServiciosEmpleadosAdicionales",
                data: this.dataForm,
                transformRequest: serializar(),
              })
                .then((response) => {
                  if (response.data.errors == null) {
                    notificacion("fa fa-check", "", "Estatus actualizado", "success");
                    this.obtenerTrabajosAsignadosadicionales();
                    $('#modal_estatusad').modal('hide');
                    this.dataForm.id='';
                    this.dataForm.estatus='';
                    this.dataForm.com=0;
                  } else {
                    let total_errores = response.data.errors.length;
                    for (let i = 0; i < total_errores; i++) {
                      notificacion("fa fa-ban", "Advertencia", response.data.errors[i], "warning");
                    }
                  }
                })
                .catch((e) => notificacion());
              }
           });
          },
        estatusServiciosEmpleados(){
              axios({
                  method: "post",
                  url: "trabajos/estatusServiciosEmpleados",
                  data: this.dataForm,
                  transformRequest: serializar(),
                })
                  .then((response) => {
                if (response.data.errors == null) {
                    notificacion("fa fa-check", "", "Estatus actualizado", "success");
                    this.seleTrabajo();
                    $("#modal_estatus").modal("hide");
                    this.dataForm.id='';
                    this.dataForm.estatus='';
                  } else {
                    let total_errores = response.data.errors.length;
                    for (let i = 0; i < total_errores; i++) {
                      notificacion("fa fa-ban", "Advertencia", response.data.errors[i], "warning");
                    }
                  }
              })
              .catch((e) => notificacion());   
        },
        obtenerTrabajosAsignadosadicionales(){
          $('#table_adicionales').DataTable().destroy();
          axios({
            method: "post",
            url: "trabajos/obtenerTrabajosAsignadosAdicionales",
            data: {
              empleado:this.dataF.empleado,
              clave:this.dataF.clave
            },
            transformRequest: serializar(),
          }).then((response) => {
           this.trabajos_adicionales=response.data;
           $('#modal_adicionales').modal('hide');
           //this.total=Number(this.servicios.length)+Number(this.trabajos_adicionales.length);
           }).catch(e => notificacion()).finally(() => {
            $('#table_adicionales').DataTable({
              retrieve: true,
                "order": []
            });
          });
      },
        /*
        obtenerTrabajosAsignados(id){
            //$('#table_categorias').DataTable().destroy();
            axios
            .get("trabajos/obtenerTrabajosAsignados/"+id)
            .then((response) => {
             this.lista_categoria=response.data;
             this.total=Number(this.lista_categoria.length)+Number(this.trabajos_adicionales.length);
             }).catch(e => notificacion()).finally(() => {
                //$('#table_categorias').DataTable({
                //    retrieve: true,
                 //   "order": []
                //});
            });
        },
        obtenerComisiones(){
          $('#table_comisiones').DataTable().destroy();
          axios
            .get("trabajos/obtenerComisiones")
            .then((response) => {
             this.comisiones=response.data;
             }).catch(e => notificacion()).finally(() => {
                $('#table_comisiones').DataTable({
                    retrieve: true,
                    "order": []
                });
            });
        },
        obtenerTrabajosAsignadosadicionales(){
            axios
            .get("trabajos/obtenerTrabajosAsignadosAdicionales")
            .then((response) => {
             this.trabajos_adicionales=response.data;
             this.total=Number(this.lista_categoria.length)+Number(this.trabajos_adicionales.length);
             }).catch(e => notificacion()).finally(() => {
                
            });
        },
        modal_estatus_adicionales(row){
            this.dataForm.id=row.id;
            this.dataForm.estatus=row.estatus;
            this.dataForm.com=row.com;
            $('#modal_estatus_adicionales').modal('show');
        },
        modal_estatus(row,cate){
          this.dataForm.id=row.id;
          this.dataForm.estatus=row.estatus;
          this.principal=cate;
          $('#modal_estatus').modal('show');
        },
        estatusServiciosEmpleados(){
          let msj='';
          if( this.dataForm.estatus==1){
              msj='FINALIZADO'
          }
          if( this.dataForm.estatus==2){
              msj='EN PROCESO'
          }
          if( this.dataForm.estatus==0){
            msj='PENDIENTE'
           }
          Swal.fire({
            title: 'Actualizar estatus',
            text: "¿Estás seguro de querer cambiar el estatus a " + msj+'? ',
            showCancelButton: true,
            confirmButtonColor: '#3085d6',
            cancelButtonColor: '#aaa',
            cancelButtonText: 'Cancelar',
            confirmButtonText: 'Guardar'
        }).then((result) => {
            if (result.value) {
              axios({
                  method: "post",
                  url: "trabajos/estatusServiciosEmpleados",
                  data: this.dataForm,
                  transformRequest: serializar(),
                })
                  .then((response) => {
                if (response.data.errors == null) {
                    notificacion("fa fa-check", "", "Estatus actualizado", "success");
                    this.obtenerTrabajosAsignados(this.principal);
                    $("#modal_estatus").modal("hide");
                    this.dataForm.id='';
                    this.dataForm.estatus='';
                    this.principal='';
                  } else {
                    let total_errores = response.data.errors.length;
                    for (let i = 0; i < total_errores; i++) {
                      notificacion("fa fa-ban", "Advertencia", response.data.errors[i], "warning");
                    }
                  }
              })
              .catch((e) => notificacion());
            }
          });
        },
        moneda(num, div_locale, div_simbolo, decimal = 2) {
          return monedaMoneda(num, div_locale, div_simbolo, decimal);
      },
        estatusServiciosAdicionales() {
          let msj='';
          if( this.dataForm.estatus==1){
            msj='FINALIZADO'
          }
          if( this.dataForm.estatus==2){
              msj='EN PROCESO'
          }
          if( this.dataForm.estatus==0){
            msj='PENDIENTE'
          }
          Swal.fire({
            title: 'Actualizar estatus',
            text: "¿Estás seguro de querer cambiar el estatus a " + msj+'? ',
            showCancelButton: true,
            confirmButtonColor: '#3085d6',
            cancelButtonColor: '#aaa',
            cancelButtonText: 'Cancelar',
            confirmButtonText: 'Guardar'
          }).then((result) => {
              if (result.value) {
              axios({
                method: "post",
                url: "trabajos/estatusServiciosEmpleadosAdicionales",
                data: this.dataForm,
                transformRequest: serializar(),
              })
                .then((response) => {
                  if (response.data.errors == null) {
                    notificacion("fa fa-check", "", "Estatus actualizado", "success");
                    this.obtenerTrabajosAsignadosadicionales();
                    $('#modal_estatus_adicionales').modal('hide');
                    this.dataForm.id='';
                    this.dataForm.estatus='';
                    this.dataForm.com=0;
                  } else {
                    let total_errores = response.data.errors.length;
                    for (let i = 0; i < total_errores; i++) {
                      notificacion("fa fa-ban", "Advertencia", response.data.errors[i], "warning");
                    }
                  }
                })
                .catch((e) => notificacion());
              }
           });
          },*/
    }
});
