예제 #1
0
 protected function process()
 {
     $this->ppage = $this->page->get('compras_proveedores');
     $this->cuenta_banco = new cuenta_banco_proveedor();
     $this->divisa = new divisa();
     $this->forma_pago = new forma_pago();
     $this->pais = new pais();
     $this->serie = new serie();
     /// ¿El usuario tiene permiso para eliminar en esta página?
     $this->allow_delete = $this->user->allow_delete_on(__CLASS__);
     /// cargamos el proveedor
     $proveedor = new proveedor();
     $this->proveedor = FALSE;
     if (isset($_POST['codproveedor'])) {
         $this->proveedor = $proveedor->get($_POST['codproveedor']);
     } else {
         if (isset($_GET['cod'])) {
             $this->proveedor = $proveedor->get($_GET['cod']);
         }
     }
     /// ¿Hay que hacer algo más?
     if (isset($_GET['delete_cuenta'])) {
         $cuenta = $this->cuenta_banco->get($_GET['delete_cuenta']);
         if ($cuenta) {
             if ($cuenta->delete()) {
                 $this->new_message('Cuenta bancaria eliminada correctamente.');
             } else {
                 $this->new_error_msg('Imposible eliminar la cuenta bancaria.');
             }
         } else {
             $this->new_error_msg('Cuenta bancaria no encontrada.');
         }
     } else {
         if (isset($_GET['delete_dir'])) {
             $dir = new direccion_proveedor();
             $dir0 = $dir->get($_GET['delete_dir']);
             if ($dir0) {
                 if ($dir0->delete()) {
                     $this->new_message('Dirección eliminada correctamente.');
                 } else {
                     $this->new_error_msg('Imposible eliminar la dirección.');
                 }
             } else {
                 $this->new_error_msg('Dirección no encontrada.');
             }
         } else {
             if (isset($_POST['coddir'])) {
                 $direccion = new direccion_proveedor();
                 if ($_POST['coddir'] != '') {
                     $direccion = $direccion->get($_POST['coddir']);
                 }
                 $direccion->apartado = $_POST['apartado'];
                 $direccion->ciudad = $_POST['ciudad'];
                 $direccion->codpais = $_POST['pais'];
                 $direccion->codpostal = $_POST['codpostal'];
                 $direccion->codproveedor = $this->proveedor->codproveedor;
                 $direccion->descripcion = $_POST['descripcion'];
                 $direccion->direccion = $_POST['direccion'];
                 $direccion->direccionppal = isset($_POST['direccionppal']);
                 $direccion->provincia = $_POST['provincia'];
                 if ($direccion->save()) {
                     $this->new_message("Dirección guardada correctamente.");
                 } else {
                     $this->new_error_msg("¡Imposible guardar la dirección!");
                 }
             } else {
                 if (isset($_POST['iban'])) {
                     if (isset($_POST['codcuenta'])) {
                         $cuentab = $this->cuenta_banco->get($_POST['codcuenta']);
                     } else {
                         $cuentab = new cuenta_banco_proveedor();
                         $cuentab->codproveedor = $this->proveedor->codproveedor;
                     }
                     $cuentab->descripcion = $_POST['descripcion'];
                     if ($_POST['ciban'] != '') {
                         $cuentab->iban = $this->calcular_iban($_POST['ciban']);
                     } else {
                         $cuentab->iban = $_POST['iban'];
                     }
                     $cuentab->swift = $_POST['swift'];
                     if ($cuentab->save()) {
                         $this->new_message('Cuenta bancaria guardada correctamente.');
                     } else {
                         $this->new_error_msg('Imposible guardar la cuenta bancaria.');
                     }
                 } else {
                     if (isset($_POST['codproveedor'])) {
                         $this->proveedor->nombre = $_POST['nombre'];
                         $this->proveedor->razonsocial = $_POST['razonsocial'];
                         $this->proveedor->cifnif = $_POST['cifnif'];
                         $this->proveedor->telefono1 = $_POST['telefono1'];
                         $this->proveedor->telefono2 = $_POST['telefono2'];
                         $this->proveedor->fax = $_POST['fax'];
                         $this->proveedor->email = $_POST['email'];
                         $this->proveedor->web = $_POST['web'];
                         $this->proveedor->observaciones = $_POST['observaciones'];
                         $this->proveedor->codserie = $_POST['codserie'];
                         $this->proveedor->codpago = $_POST['codpago'];
                         $this->proveedor->coddivisa = $_POST['coddivisa'];
                         $this->proveedor->regimeniva = $_POST['regimeniva'];
                         $this->proveedor->acreedor = isset($_POST['acreedor']);
                         if ($this->proveedor->save()) {
                             $this->new_message('Datos del proveedor modificados correctamente.');
                         } else {
                             $this->new_error_msg('¡Imposible modificar los datos del proveedor!');
                         }
                     }
                 }
             }
         }
     }
     if ($this->proveedor) {
         $this->page->title = $this->proveedor->codproveedor;
     } else {
         $this->new_error_msg("¡Proveedor no encontrado!");
     }
 }
예제 #2
0
 private function nuevo_recibo()
 {
     $factura = new factura_proveedor();
     $this->factura = $factura->get($_POST['idfactura']);
     if ($this->factura) {
         $recibo = new recibo_proveedor();
         $recibo->cifnif = $this->factura->cifnif;
         $recibo->coddivisa = $this->factura->coddivisa;
         $recibo->tasaconv = $this->factura->tasaconv;
         $recibo->codpago = $this->factura->codpago;
         $recibo->codproveedor = $this->factura->codproveedor;
         $recibo->codserie = $this->factura->codserie;
         $recibo->estado = 'Emitido';
         $recibo->fecha = $_POST['fecha'];
         $recibo->fechav = $_POST['fechav'];
         $recibo->idfactura = $this->factura->idfactura;
         $recibo->importe = floatval($_POST['importe']);
         $recibo->nombreproveedor = $this->factura->nombre;
         $recibo->numero = $recibo->new_numero($recibo->idfactura);
         $recibo->codigo = $this->factura->codigo . '-' . sprintf('%02s', $recibo->numero);
         $cbp = new cuenta_banco_proveedor();
         foreach ($cbp->all_from_proveedor($recibo->codproveedor) as $cuenta) {
             if (is_null($recibo->codcuenta) or $cuenta->principal) {
                 $recibo->codcuenta = $cuenta->codcuenta;
                 $recibo->iban = $cuenta->iban;
                 $recibo->swift = $cuenta->swift;
             }
         }
         if ($recibo->save()) {
             $this->new_message('Recibo creado correctamente.');
             header('Location: ' . $recibo->url());
         } else {
             $this->new_error_msg('Error al guardar el recibo.');
         }
     } else {
         $this->new_error_msg('Factura no encontrada.');
     }
 }
예제 #3
0
 public function get_cuentas_bancarias()
 {
     $cuentas = array();
     $cbp0 = new cuenta_banco_proveedor();
     foreach ($cbp0->all_from_proveedor($this->factura->codproveedor) as $cuenta) {
         $cuentas[] = $cuenta;
     }
     return $cuentas;
 }
예제 #4
0
 private function check_recibo()
 {
     if ($this->factura) {
         $this->recibo->nombreproveedor = $this->factura->nombre;
         $this->recibo->cifnif = $this->factura->cifnif;
         if ($this->recibo->estado != 'Pagado') {
             $this->recibo->coddivisa = $this->factura->coddivisa;
             $this->recibo->tasaconv = $this->factura->tasaconv;
             $this->recibo->codpago = $this->factura->codpago;
             $this->recibo->codserie = $this->factura->codserie;
             $cbc = new cuenta_banco_proveedor();
             foreach ($cbc->all_from_proveedor($this->recibo->codproveedor) as $cuenta) {
                 if (is_null($this->recibo->codcuenta)) {
                     $this->recibo->codcuenta = $cuenta->codcuenta;
                     $this->recibo->iban = $cuenta->iban;
                     $this->recibo->swift = $cuenta->swift;
                 }
             }
         }
         $this->recibo->save();
     }
 }