/** * Carga facturas recibidas desde un archivo de texto externo * Las columnas deben venir separadas por tabuladores * Las facturas se cargan en la sucursal en curso * * @param string $fileName El path completo del archivo a importar * @return array */ public function ImportarAction($fileName = '') { if ($this->values['permisos']['permisosModulo']['IN']) { if ($fileName == '') { $fileName = $this->request[2]; } if ($fileName != '') { $fileName = "docs/docs{$_SESSION['emp']}/tmp/" . $fileName; } $archivo = new Archivo($fileName); if ($archivo->open("r")) { set_time_limit(0); // Lee contador $contador = new Contadores(); $contador = $contador->dameContador($_SESSION['suc'], 4); $idContador = $contador->getIDContador(); // Buscar la cuenta contable de compras para la sucursal $sucursal = new Sucursales($_SESSION['suc']); $ctaCompras = $sucursal->getCtaContableCompras(); unset($sucursal); while (($linea = $archivo->readLine()) !== FALSE) { $fecha = explode("-", $linea[1]); $proveedor = new Proveedores(); $proveedor = $proveedor->find('CContable', $linea[2]); if ($proveedor->getIDProveedor() != '') { $b1 = $linea[5]; $i1 = $linea[6]; $ci1 = round($b1 * $i1 / 100, 2); $r1 = $linea[7]; $cr1 = round($b1 * $r1 / 100, 2); $b2 = $linea[8]; $i2 = $linea[9]; $ci2 = round($b2 * $i2 / 100, 2); $r2 = $linea[10]; $cr2 = round($b2 * $r2 / 100, 2); $factura = new FrecibidasCab(); $factura->setIDContador($idContador); $factura->setIDSucursal($_SESSION['suc']); $factura->setNumeroFactura($contador->asignaContador()); $factura->setSuFactura($linea[0]); $factura->setFecha($fecha[0] . "/" . $fecha[1] . "/20" . $fecha[2]); $factura->setIDProveedor($proveedor->getIDProveedor()); $factura->setImporte($b1 + $b2); $factura->setBaseImponible1($b1); $factura->setIva1($i1); $factura->setCuotaIva1($ci1); $factura->setRecargo1($r1); $factura->setCuotaRecargo1($cr1); $factura->setBaseImponible2($b2); $factura->setIva2($i2); $factura->setCuotaIva2($ci2); $factura->setRecargo2($r2); $factura->setCuotaRecargo2($cr2); $factura->setTotalBases($b1 + $b2); $factura->setTotalIva($ci1 + $ci2); $factura->setTotalRecargo($cr1 + $cr2); $factura->setTotal($b1 + $b2 + $ci1 + $ci2 + $cr1 + $cr2); $factura->setIDFP(1); $factura->setAsiento(9999); $factura->setCuentaCompras($ctaCompras); if ($factura->create()) { $factura->creaVctos(); } else { $this->values['errores'][] = $factura->getErrores(); } //print_r($factura->getErrores()); } else { $this->values['errores'][] = "No existe el proveedor " . $linea[2] . " " . $linea[4] . ". No se carga la factura " . $linea[0]; } } $archivo->close(); } else { $this->values['errores'][] = "El fichero de importaciĆ³n " . $fileName . " no existe"; } unset($archivo); return array('template' => $this->entity . '/edit.html.twig', 'values' => $this->values); } else { return array('template' => '_global/forbiden.html.twig'); } }
public function FrecibidasCab() { $nItems = 0; $nErrores = 0; $dbLink = mysql_connect("localhost", "root", "albatronic"); $query = "TRUNCATE {$this->dbDestino}.ErpFrecibidasCab"; mysql_query($query); $query = "select * from {$this->dbOrigen}.frecibidas_cab"; $result = mysql_query($query, $dbLink); while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { $c = new FrecibidasCab(); $c->setIDFactura($row['IDFactura']); $c->setIDContador(4); $c->setNumeroFactura($row['NumeroFactura']); $c->setIDSucursal(1); $c->setSuFactura($row['SuFactura']); $c->setFecha($row['Fecha']); $c->setIDProveedor($row['IDProveedor']); $c->setImporte($row['Importe']); $c->setDescuento($row['Descuento']); $c->setBaseImponible1($row['BaseImponible1']); $c->setIva1($row['Iva1']); $c->setCuotaIva1($row['CuotaIva1']); $c->setRecargo1($row['Recargo1']); $c->setCuotaRecargo1($row['CuotaRecargo1']); $c->setBaseImponible2($row['BaseImponible2']); $c->setIva2($row['Iva2']); $c->setCuotaIva2($row['CuotaIva2']); $c->setRecargo2($row['Recargo2']); $c->setCuotaRecargo2($row['CuotaRecargo2']); $c->setBaseImponible3($row['BaseImponible3']); $c->setIva3($row['Iva3']); $c->setCuotaIva3($row['CuotaIva3']); $c->setRecargo3($row['Recargo3']); $c->setCuotaRecargo3($row['CuotaRecargo3']); $c->setTotalBases($row['TotalBases']); $c->setTotalIva($row['TotalIva']); $c->setTotalRecargo($row['TotalRecargo']); $c->setTotal($row['Total']); $c->setCuentaCompras($row['CuentaCompras']); $c->setObservaciones($row['Observaciones']); $c->setIDFP($row['IDFP']); $c->setPrimaryKeyMD5(md5($row['IDFactura'])); if (!$c->create()) { $errores[] = $c->getErrores(); $nErrores++; } else { $nItems++; } } //mysql_close($dbLink); echo "Facturas recibidas creadas {$nItems}<br/>"; if (count($errores)) { echo "<pre>"; print_r($errores); echo "</pre>"; } }
/** * Carga facturas recibidas desde un archivo de texto externo * Las columnas deben venir separadas por tabuladores * Las facturas se cargan en la sucursal en curso * * @param string $fileName El path completo del archivo a importar */ private function importarArchivo($fileName) { $archivo = new Archivo($fileName); if ($archivo->open("r")) { set_time_limit(0); // Lee contador $contador = new Contadores(); $contador = $contador->dameContador($_SESSION['suc'], 4); $idContador = $contador->getIDContador(); // Buscar la cuenta contable de ventas para la sucursal $sucursal = new Sucursales($_SESSION['suc']); $ctaCompras = $sucursal->getCtaContableCompras(); unset($sucursal); while (($linea = $archivo->readLine()) !== FALSE) { $fecha = explode("-", $linea[1]); $proveedor = new Proveedores(); $proveedor = $proveedor->find('CContable', $linea[3]); if ($proveedor->getIDProveedor() != '') { // Pongo los valores a cero en caso de que no venga nada for ($i = 5; $i <= 10; $i++) { if ($linea[$i] == '') { $linea[$i] = 0; } } $b1 = $linea[5]; $i1 = $linea[6]; $ci1 = round($b1 * $i1 / 100, 2); $r1 = $linea[7]; $cr1 = round($b1 * $r1 / 100, 2); $b2 = $linea[8]; $i2 = $linea[9]; $ci2 = round($b2 * $i2 / 100, 2); $r2 = $linea[10]; $cr2 = round($b2 * $r2 / 100, 2); $factura = new FrecibidasCab(); $factura->setIDContador($idContador); if ($this->request['RespectarNumerosFactura'] == 'on') { $numeroFactura = $contador->getSerie() . (1200000 + $linea[0]); } else { $numeroFactura = $contador->asignaContador(); } $factura->setNumeroFactura($numeroFactura); $factura->setIDSucursal($_SESSION['suc']); $factura->setFecha($fecha[0] . "/" . $fecha[1] . "/20" . $fecha[2]); $factura->setIDProveedor($proveedor->getIDProveedor()); $factura->setSuFactura($linea[0]); $factura->setReferencia("Import " . date('d/m/y')); $factura->setImporte($b1 + $b2); $factura->setBaseImponible1($b1); $factura->setIva1($i1); $factura->setCuotaIva1($ci1); $factura->setRecargo1($r1); $factura->setCuotaRecargo1($cr1); $factura->setBaseImponible2($b2); $factura->setIva2($i2); $factura->setCuotaIva2($ci2); $factura->setRecargo2($r2); $factura->setCuotaRecargo2($cr2); $factura->setTotalBases($b1 + $b2); $factura->setTotalIva($ci1 + $ci2); $factura->setTotalRecargo($cr1 + $cr2); $factura->setTotal($b1 + $b2 + $ci1 + $ci2 + $cr1 + $cr2); $factura->setIDFP($this->request['IDFP']); $factura->setAsiento(9999); $factura->setCuentaCompras($ctaCompras); if ($factura->create()) { $factura->creaVctos(); } else { $this->values['errores'] = $factura->getErrores(); } } else { $this->values['errores'][] = "No existe el proveedor " . $linea[2] . " " . $linea[4] . ". No se carga la factura " . $linea[1]; } } $archivo->close(); } else { $this->values['errores'][] = "El fichero de importaciĆ³n " . $fileName . " no existe"; } unset($archivo); }