コード例 #1
0
ファイル: cliente.php プロジェクト: ramikat/ERPSISFS
 /**
  * Devuelve la subcuenta asociada al cliente para el ejercicio $eje.
  * Si no existe intenta crearla. Si falla devuelve FALSE.
  * @param type $ejercicio
  * @return subcuenta
  */
 public function get_subcuenta($ejercicio)
 {
     $subcuenta = FALSE;
     foreach ($this->get_subcuentas() as $s) {
         if ($s->codejercicio == $ejercicio) {
             $subcuenta = $s;
             break;
         }
     }
     if (!$subcuenta) {
         /// intentamos crear la subcuenta y asociarla
         $continuar = TRUE;
         $cuenta = new cuenta();
         $ccli = $cuenta->get_cuentaesp('CLIENT', $ejercicio);
         if ($ccli) {
             $subc0 = $ccli->new_subcuenta($this->codcliente);
             $subc0->descripcion = $this->nombre;
             if (!$subc0->save()) {
                 $this->new_error_msg('Imposible crear la subcuenta para el cliente ' . $this->codcliente);
                 $continuar = FALSE;
             }
             if ($continuar) {
                 $sccli = new subcuenta_cliente();
                 $sccli->codcliente = $this->codcliente;
                 $sccli->codejercicio = $ejercicio;
                 $sccli->codsubcuenta = $subc0->codsubcuenta;
                 $sccli->idsubcuenta = $subc0->idsubcuenta;
                 if ($sccli->save()) {
                     $subcuenta = $subc0;
                 } else {
                     $this->new_error_msg('Imposible asociar la subcuenta para el cliente ' . $this->codcliente);
                 }
             }
         } else {
             $this->new_error_msg('No se encuentra ninguna cuenta especial para clientes.');
         }
     }
     return $subcuenta;
 }
コード例 #2
0
 /**
  * Devuelve la subcuenta asignada al proveedor para el ejercicio $eje,
  * si no hay una subcuenta asignada, intenta crearla.  Si falla devuelve FALSE.
  * @param type $eje
  * @return subcuenta
  */
 public function get_subcuenta($eje)
 {
     $subcuenta = FALSE;
     foreach ($this->get_subcuentas() as $s) {
         if ($s->codejercicio == $eje) {
             $subcuenta = $s;
             break;
         }
     }
     if (!$subcuenta) {
         /// intentamos crear la subcuenta y asociarla
         $continuar = TRUE;
         $cuenta = new cuenta();
         if ($this->acreedor) {
             $cpro = $cuenta->get_cuentaesp('ACREED', $eje);
             if (!$cpro) {
                 $cpro = $cuenta->get_by_codigo('410', $eje);
             }
         } else {
             $cpro = $cuenta->get_cuentaesp('PROVEE', $eje);
         }
         if ($cpro) {
             $subc0 = $cpro->new_subcuenta($this->codproveedor);
             $subc0->descripcion = $this->razonsocial;
             if (!$subc0->save()) {
                 $this->new_error_msg('Imposible crear la subcuenta para el proveedor ' . $this->codproveedor);
                 $continuar = FALSE;
             }
             if ($continuar) {
                 $scpro = new subcuenta_proveedor();
                 $scpro->codejercicio = $eje;
                 $scpro->codproveedor = $this->codproveedor;
                 $scpro->codsubcuenta = $subc0->codsubcuenta;
                 $scpro->idsubcuenta = $subc0->idsubcuenta;
                 if ($scpro->save()) {
                     $subcuenta = $subc0;
                 } else {
                     $this->new_error_msg('Imposible asociar la subcuenta para el proveedor ' . $this->codproveedor);
                 }
             }
         } else {
             $this->new_error_msg('No se encuentra ninguna cuenta especial para proveedores.');
         }
     }
     return $subcuenta;
 }
コード例 #3
0
 public function get_subcuenta($ejercicio)
 {
     $subcuenta = FALSE;
     foreach ($this->get_subcuentas() as $s) {
         if ($s->codejercicio == $ejercicio) {
             $subcuenta = $s;
             break;
         }
     }
     if (!$subcuenta) {
         /// intentamos crear la subcuenta y asociarla
         $continuar = TRUE;
         $cuentaesp = $this->codtrans == 'LOCAL' ? 'CXCPRO' : 'CXCTER';
         $cond0 = new distribucion_conductores();
         $conductor = $cond0->get($this->idempresa, $this->conductor);
         $cuenta = new cuenta();
         $ctafaltante = $cuenta->get_cuentaesp($cuentaesp, $ejercicio);
         if ($ctafaltante) {
             $subc0 = $ctafaltante->new_subcuenta($conductor[0]->id);
             $subc0->descripcion = $this->nombreconductor;
             if (!$subc0->save()) {
                 $this->new_error_msg('Imposible crear la subcuenta para el conductor ' . $this->nombreconductor);
                 $continuar = FALSE;
             }
             if ($continuar) {
                 $scconductor = new distribucion_subcuentas_faltantes();
                 $scconductor->idempresa = $this->idempresa;
                 $scconductor->conductor = $this->conductor;
                 $scconductor->codejercicio = $ejercicio;
                 $scconductor->codsubcuenta = $subc0->codsubcuenta;
                 $scconductor->idsubcuenta = $subc0->idsubcuenta;
                 if ($scconductor->save()) {
                     $subcuenta = $subc0;
                 } else {
                     $this->new_error_msg('Imposible asociar la subcuenta para el conductor ' . $this->nombreconductor);
                 }
             }
         } else {
             $this->new_error_msg('No se encuentra ninguna cuenta especial para Faltantes Propios (CXCPRO) o de Terceros (CXCTER).');
         }
     }
     return $subcuenta;
 }