/** * Devuelve un array de objetos Apunte, * con los apuntes de iva y recargo de equivalencia de COMPRAS * * @param integer $nAsiento * @param date $fecha * @param array $factura * @param Proveedores $proveedor * @return ContaPlusDiario */ private function ApunteIvaRecibidas($nAsiento, $fecha, array $factura, Proveedores $proveedor) { $apuntes = array(); $j = 0; while ($j < 3) { $j++; if ($factura['BaseImponible' . $j] != 0) { if ($factura['TotalRecargo'] != 0) { $sufijo = $this->SufijoRecargo($factura['Iva' . $j], $factura['Recargo' . $j]); } else { $sufijo = $this->SufijoIva($factura['Iva' . $j]); } $subcuenta = str_pad('472', $this->DIGCC - 4, '0') . $sufijo; $apunte = new ContaPlusDiario($nAsiento, $fecha); $apunte->setSubCta($subcuenta); $apunte->setContra($proveedor->getCContable()); $apunte->setConcepto("COMPRA DE MERCADERIAS"); $apunte->setFactura($factura['SuFactura']); $apunte->setIVA($factura['Iva' . $j]); $apunte->setDocumento($factura['SuFactura']); $apunte->setEuroDebe($factura['CuotaIva' . $j]); $apunte->setBaseEuro($factura['BaseImponible' . $j]); $apunte->setFecha_OP($fecha); $apunte->setFecha_EX($fecha); $apunte->setTerIdNif('1'); $apunte->setTerNif($proveedor->getCif()); $apunte->setTerNom($proveedor->getRazonSocial()); $apunte->setTipoFac('R'); $apunte->setTipoIVA('O'); $apuntes[] = $apunte; if ($factura['CuotaRecargo' . $j] != 0) { $sufijo = $this->SufijoRecargo($factura['Recargo' . $j], $factura['Iva' . $j]); $subcuenta = str_pad('472', $this->DIGCC - 4, '0') . $sufijo; $apunte = new ContaPlusDiario($nAsiento, $fecha); $apunte->setSubCta($subcuenta); $apunte->setContra($proveedor->getCContable()); $apunte->setConcepto("Su Factura " . $factura['SuFactura']); $apunte->setFactura($factura['SuFactura']); $apunte->setRecequiv($factura['Recargo' . $j]); $apunte->setDocumento($factura['NumeroFactura']); $apunte->setEuroDebe($factura['CuotaRecargo' . $j]); $apunte->setBaseEuro($factura['BaseImponible' . $j]); $apunte->setFecha_OP($fecha); $apunte->setFecha_EX($fecha); $apunte->setTerIdNif('1'); $apunte->setTerNif($proveedor->getCif()); $apunte->setTerNom($proveedor->getRazonSocial()); $apunte->setTipoFac('R'); $apunte->setTipoIVA('O'); $apuntes[] = $apunte; } } } return $apuntes; }