<?php

class ModelosTxtBancos{
    
    public $configuracion=array(
        'max_lg_cantidad_pagos'=>0,
        'max_lg_monto_total'=>0,
        'max_lg_nombre'=>0,
        'max_lg_monto_pago'=>0,
        'max_lg_detalle'=>0,
        'max_lg_correo'=>0, 
        'max_lg_cantidad_pagos'=>0,
        );
    public $rifCaja='J123456789';
    public $nombre_archivo;
    public $codigo_operacion;
    
    
    
    public static function getConfiguracion(){
        return array(
			'Banco Exterior' => array( 'max_lg_cantidad_pagos'=>4,'max_lg_monto_total'=>13,'max_lg_nombre'=>60, 'max_lg_monto_pago'=>12,'max_lg_detalle'=>120, 'max_lg_correo'=>60),
			'Banco de Venezuela' => array( 'max_lg_cantidad_pagos'=>4,'max_lg_monto_total'=>13,'max_lg_nombre'=>60, 'max_lg_monto_pago'=>12,'max_lg_detalle'=>120, 'max_lg_correo'=>60),
		      /*'Banco Exterior' => array( 'max_lg_cantidad_pagos'=>0,'max_lg_monto_total'=>0,'max_lg_nombre'=>0, 'max_lg_monto_pago'=>0,'max_lg_detalle'=>0, 'max_lg_correo'=>0),
			'Banco Exterior' => array( 'max_lg_cantidad_pagos'=>0,'max_lg_monto_total'=>0,'max_lg_nombre'=>0, 'max_lg_monto_pago'=>0,'max_lg_detalle'=>0, 'max_lg_correo'=>0),
			'Banco Exterior' => array( 'max_lg_cantidad_pagos'=>0,'max_lg_monto_total'=>0,'max_lg_nombre'=>0, 'max_lg_monto_pago'=>0,'max_lg_detalle'=>0, 'max_lg_correo'=>0),
			'Banco Exterior' => array( 'max_lg_cantidad_pagos'=>0,'max_lg_monto_total'=>0,'max_lg_nombre'=>0, 'max_lg_monto_pago'=>0,'max_lg_detalle'=>0, 'max_lg_correo'=>0),
                        */
		);
        }
    public function setConfiguracion($banco)
                {
                    $configuracion=self::getConfiguracion();
                    $this->configuracion=$configuracion[$banco];
                    return 1;
                }


    public function generarTxt($id)
    { 
        $model= PagosMasivos::model()->findByPk($id);
        $this->setConfiguracion($model->idBanco->banco);
        if(trim(strtolower($model->idBanco->banco))==strtolower('Banco Exterior'))return $this->txtBancoExterior($model); 
        if(trim(strtolower($model->idBanco->banco))==strtolower('Banco de Venezuela'))return $this->txtBancoDeVenezuela($model); 
   }

    
        public function txtBancoExterior($model){
            $this->codigo_operacion='01';
            #-------------------------
            $pagos= DetallePagos::model()->model()->findAll('id_pagos=:idp',array(':idp'=>$model->id));
            #Encabezado
            $txt=$this->rifCaja;//Rif de la caja
            $txt.=$model->idBanco->num_cuenta;//Numero de cuenta de la caja
            #Numero de Pagos
            $largo=strlen($model->total_pagos);
            $relleno='';
            for ($k=0;$k<$this->configuracion['max_lg_cantidad_pagos']-$largo;$k++)$relleno.='0';
            $txt.=$relleno.$model->total_pagos;
            #Monto
            $monto= str_replace(array(',','.'),'',$model->monto_total);
            $largo=strlen($monto);
            $relleno='';
            for ($k=0;$k<$this->configuracion['max_lg_monto_total']-$largo;$k++)$relleno.='0';
            $txt.=$relleno.$monto;
            #Fecha
            $model->fecha_pago=date("d-m-Y",strtotime($model->fecha_pago));
            $fecha= str_replace(array('/','-'),'',$model->fecha_pago);
            $txt.=$relleno.$fecha;
            #Codigo de Operacion
            $txt.=$this->codigo_operacion;
            $txt.="\n";
            #Detalle de pagos------------------------------------------------------------------------
            foreach ($pagos as $key=>$pago)
            {
              #Nombre  
              $nombre='';
              $relleno='';
              if(isset($pago->idLiquidacion->idAsociado->nombre) && isset($pago->idLiquidacion->idAsociado->apellidos)) $nombre=$pago->idLiquidacion->idAsociado->nombre.' '.$pago->idLiquidacion->idAsociado->apellidos;  
              else if(isset($pago->idRetiro->idAsociado->nombre) && isset($pago->idRetiro->idAsociado->apellidos)) $nombre=$pago->idRetiro->idAsociado->nombre.' '.$pago->idRetiro->idAsociado->apellidos;  
              else if(isset($pago->idCredito->idAsociado->nombre) && isset($pago->idCredito->idAsociado->apellidos)) $nombre=$pago->idCredito->idAsociado->nombre.' '.$pago->idCredito->idAsociado->apellidos;  
              $largo=strlen($nombre);
              $relleno='';
              
              for ($k=0;$k<$this->configuracion['max_lg_nombre']-$largo;$k++)$relleno.='';
              $txt.=$nombre.$relleno;
//              $txt.='|';
              #Monto del pago
              if(isset($pago->idLiquidacion->monto_pagar)) $monto=$pago->idLiquidacion->monto_pagar;  
              else if(isset($pago->idRetiro->monto_pagar)) $monto=$pago->idRetiro->monto_pagar;  
              else if(isset($pago->idCredito->monto_credito)) $monto=$pago->idCredito->monto_credito;
               $monto= str_replace(array(',','.'),'',$monto);
               $largo=strlen($monto);
                $relleno='';
                for ($k=0;$k<$this->configuracion['max_lg_monto_pago']-$largo;$k++)$relleno.='0';
                $txt.=$relleno.$monto;
//                $txt.='|';
              #Detalle del Pago
                $detalle='Pago'.$key+1;
                $largo=strlen($detalle);
                $relleno='';
                for ($k=0;$k<$this->configuracion['max_lg_detalle']-$largo;$k++)$relleno.=' ';
                $txt.=$detalle.$relleno;
//                $txt.='|';
              #Numero de Cuenta  
               if(isset($pago->idLiquidacion->idAsociado->cuenta_bancaria)) $cuenta=$pago->idLiquidacion->idAsociado->cuenta_bancaria;  
                else if(isset($pago->idRetiro->idAsociado->cuenta_bancaria)) $cuenta=$pago->idRetiro->idAsociado->cuenta_bancaria;  
                else if(isset($pago->idCredito->idAsociado->cuenta_bancaria)) $cuenta=$pago->idCredito->idAsociado->cuenta_bancaria;
              $txt.=$cuenta;
              
              #Correo Electronico
              if(isset($pago->idLiquidacion->idAsociado->correoelectronico)) $correo=$pago->idLiquidacion->idAsociado->correoelectronico;  
                else if(isset($pago->idRetiro->idAsociado->correoelectronico)) $correo=$pago->idRetiro->idAsociado->correoelectronico;  
                else if(isset($pago->idCredito->idAsociado->correoelectronico)) $correo=$pago->idCredito->idAsociado->correoelectronico;
              $largo=  strlen($correo);  
               $relleno='';
              for ($k=0;$k<$this->configuracion['max_lg_correo']-$largo;$k++)$relleno.=' '; 
              $txt.=$correo.$relleno;
            $txt.="\n";
            }
              
        $nombre_archivo='Pagos_'.$model->id_tipo_pago.'_'.$model->id.'.txt';
        $archivo = fopen(Yii::app()->params['rutaTxtPagos'].$nombre_archivo, "w") or die("No se pudo abrir el archivo");
        fwrite($archivo, $txt);
        fclose($archivo); 
        $this->nombre_archivo=$nombre_archivo;
        return Yii::app()->params['rutaTxtPagos'].$nombre_archivo;
        
     } 
     
        public function txtBancoDeVenezuela($model){
            $this->codigo_operacion='01';
            #-------------------------
            $pagos= DetallePagos::model()->model()->findAll('id_pagos=:idp',array(':idp'=>$model->id));
            #Encabezado
            $txt=$this->rifCaja;//Rif de la caja
            $txt.=$model->idBanco->num_cuenta;//Numero de cuenta de la caja
            #Numero de Pagos
            $largo=strlen($model->total_pagos);
            $relleno='';
            for ($k=0;$k<$this->configuracion['max_lg_cantidad_pagos']-$largo;$k++)$relleno.='0';
            $txt.=$relleno.$model->total_pagos;
            #Monto
            $monto= str_replace(array(',','.'),'',$model->monto_total);
            $largo=strlen($monto);
            $relleno='';
            for ($k=0;$k<$this->configuracion['max_lg_monto_total']-$largo;$k++)$relleno.='0';
            $txt.=$relleno.$monto;
            #Fecha
            $model->fecha_pago=date("d-m-Y",strtotime($model->fecha_pago));
            $fecha= str_replace(array('/','-'),'',$model->fecha_pago);
            $txt.=$relleno.$fecha;
            #Codigo de Operacion
            $txt.=$this->codigo_operacion;
            $txt.="\n";
            #Detalle de pagos------------------------------------------------------------------------
            foreach ($pagos as $key=>$pago)
            {
              #Nombre  
              $nombre='';
              $relleno='';
              if(isset($pago->idLiquidacion->idAsociado->nombre) && isset($pago->idLiquidacion->idAsociado->apellidos)) $nombre=$pago->idLiquidacion->idAsociado->nombre.' '.$pago->idLiquidacion->idAsociado->apellidos;  
              else if(isset($pago->idRetiro->idAsociado->nombre) && isset($pago->idRetiro->idAsociado->apellidos)) $nombre=$pago->idRetiro->idAsociado->nombre.' '.$pago->idRetiro->idAsociado->apellidos;  
              else if(isset($pago->idCredito->idAsociado->nombre) && isset($pago->idCredito->idAsociado->apellidos)) $nombre=$pago->idCredito->idAsociado->nombre.' '.$pago->idCredito->idAsociado->apellidos;   
              $largo=strlen($nombre);
              $relleno='';
              
              for ($k=0;$k<$this->configuracion['max_lg_nombre']-$largo;$k++)$relleno.=' ';
              $txt.=$nombre.$relleno;
//              $txt.='|';
              #Monto del pago
              if(isset($pago->idLiquidacion->monto_pagar)) $monto=$pago->idLiquidacion->monto_pagar;  
              else if(isset($pago->idRetiro->monto_pagar)) $monto=$pago->idRetiro->monto_pagar;  
              else if(isset($pago->idCredito->monto_credito)) $monto=$pago->idCredito->monto_credito;
               $monto= str_replace(array(',','.'),'',$monto);
               $largo=strlen($monto);
                $relleno='';
                for ($k=0;$k<$this->configuracion['max_lg_monto_pago']-$largo;$k++)$relleno.='0';
                $txt.=$relleno.$monto;
//                $txt.='|';
              #Detalle del Pago
                $detalle='Pago'.$key+1;
                $largo=strlen($detalle);
                $relleno='';
                for ($k=0;$k<$this->configuracion['max_lg_detalle']-$largo;$k++)$relleno.=' ';
                $txt.=$detalle.$relleno;
//                $txt.='|';
              #Numero de Cuenta  
               if(isset($pago->idLiquidacion->idAsociado->cuenta_bancaria)) $cuenta=$pago->idLiquidacion->idAsociado->cuenta_bancaria;  
                else if(isset($pago->idRetiro->idAsociado->cuenta_bancaria)) $cuenta=$pago->idRetiro->idAsociado->cuenta_bancaria;  
                else if(isset($pago->idCredito->idAsociado->cuenta_bancaria)) $cuenta=$pago->idCredito->idAsociado->cuenta_bancaria;
              $txt.=$cuenta;
              
              #Correo Electronico
              if(isset($pago->idLiquidacion->idAsociado->correoelectronico)) $correo=$pago->idLiquidacion->idAsociado->correoelectronico;  
                else if(isset($pago->idRetiro->idAsociado->correoelectronico)) $correo=$pago->idRetiro->idAsociado->correoelectronico;  
                else if(isset($pago->idCredito->idAsociado->correoelectronico)) $correo=$pago->idCredito->idAsociado->correoelectronico;
              $largo=  strlen($correo);  
               $relleno='';
              for ($k=0;$k<$this->configuracion['max_lg_correo']-$largo;$k++)$relleno.=' '; 
              $txt.=$correo.$relleno;
            $txt.="\n";
            }
             
        $nombre_archivo='Pagos_'.$model->id_tipo_pago.'_'.$model->id.'.txt';
        $archivo = fopen(Yii::app()->params['rutaTxtPagos'].$nombre_archivo, "w") or die("No se pudo abrir el archivo");
        fwrite($archivo, $txt);
        fclose($archivo); 
        $this->nombre_archivo=$nombre_archivo;
        return Yii::app()->params['rutaTxtPagos'].$nombre_archivo;
        
     }    
     
    }
    
    
    
    
    
    
    
    
    


