function datosFactura($IdFactura) { require_once '../general/' . $_SESSION['mapeoC']; $dbC = new DbCont(); require_once '../general/conexionCont.php'; $dbG = new DbCG(); //extraigo primero los datos de la tabla 'tbmisfacturas' $strSQL = "SELECT NumFactura,IdPresupuesto,IdPedido,Cliente,DATE_FORMAT(FechaFactura,'%Y/%m/%d') AS FechaFactura" . ",DATE_FORMAT(FechaVtoFactura,'%Y/%m/%d') AS FechaVtoFactura,FormaPago,Estado,Retencion,Situacion,lngIdUsuario,Borrado FROM tbmisfacturas WHERE IdFactura=" . $IdFactura; logger('traza', 'clsCADContabilidad.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADContabilidad->datosFactura()|| SQL : " . $strSQL); $dbC->conectar($this->getStrBDCliente()); $stmt = $dbC->ejecutar($strSQL); $dbC->desconectar(); if (!$stmt) { //devolvemos false logger('traza', 'clsCADContabilidad.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADContabilidad->datosFactura()<FALSE"); return false; } $row = mysql_fetch_array($stmt); foreach ($row as $propiedad => $valor) { if (!is_numeric($propiedad)) { $reg[$propiedad] = $valor; } } //guardo los datos en el array final //primero formateo el numero de factura que se presenta en pantalla del formulario //el numero esta guardado en la BBDD como '20140005' donde las 4 primeras cifras son el año //y las 4 últimas son el número en si //primero busco la variable de 'Tipo de Contador' de la tabla 'tbparametros_generales' $tipoContador = $this->Parametro_general('Tipo Contador', date('Y-m-d H:i:s'), date('Y-m-d H:i:s')); $txtPie = $this->Parametro_general('Texto Pie', date('Y-m-d H:i:s'), date('Y-m-d H:i:s')); //ahora segun el tipo de contador calculo en nuevo numero $numFactura = numeroDesformateado($reg['NumFactura'], $tipoContador); $datosFinales = array("NumFactura" => $numFactura, "NumFacturaBBDD" => $reg['NumFactura'], "IdPresupuesto" => $reg['IdPresupuesto'], "IdPedido" => $reg['IdPedido'], "Cliente" => $reg['Cliente'], "NombreEmpresa" => '', "Retencion" => $reg['Retencion'], "FormaPago" => $reg['FormaPago'], "DetalleFactura" => '', "Validez" => 0, "FechaFactura" => $reg['FechaFactura'], "Borrado" => $reg['Borrado'], "Estado" => $reg['Estado'], "Situacion" => $reg['Situacion'], "TxtPie" => $txtPie); //ahora calculo la validez de la factura (diferencia en dias entre FechaVtoFactura y FechaFactura //la funcion strtotime extrae un numero en segundos //$uno=strtotime($reg['FechaVtoFactura']); //$dos=strtotime($reg['FechaFactura']); $validez = strtotime($reg['FechaVtoFactura']) - strtotime($reg['FechaFactura']); $validez = round($validez / 86400); //24 horas x 60 minutos x 60 segundos = 86400 segundo/dia $datosFinales['Validez'] = $validez; //ahora extraigo los datos de las lineas de la factura (tbmisfacturaslineas) $strSQL = "\r\n SELECT L.IdFacturaLineas,L.NumLineaFactura,L.NumLineaPresup,L.IdPresupLineas,L.NumLineaPedido,L.IdPedidoLineas,L.IdArticulo,L.cuentaArticulo,L.CantidadPED AS cantidad,L.DescripcionProducto AS concepto,\r\n L.ImporteUnidad AS precio,L.ImportePED AS importe,L.TipoIVA as iva,L.CuotaIvaPED AS cuota\r\n FROM tbmisfacturas F,tbmisfacturaslineas L\r\n WHERE F.IdFactura=L.IdFactura\r\n AND F.IdFactura={$IdFactura}\r\n "; logger('traza', 'clsCADContabilidad.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADContabilidad->datosFactura()|| SQL : " . $strSQL); $dbC->conectar($this->getStrBDCliente()); $stmt = $dbC->ejecutar($strSQL); $dbC->desconectar(); if (!$stmt) { //devolvemos false logger('traza', 'clsCADContabilidad.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADContabilidad->datosFactura()<FALSE"); return false; } logger('traza', 'clsCADContabilidad.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADContabilidad->datosFactura()|| Consulta OK. Llego a datosLineas"); $datosLineas = ''; while ($row = mysql_fetch_array($stmt)) { $reg = ''; foreach ($row as $propiedad => $valor) { if (!is_numeric($propiedad)) { $reg[$propiedad] = $valor; } } //ahora añado los totales (cuota + importe) $reg['total'] = $reg['cuota'] + $reg['importe']; $datosLineas[] = $reg; } $datosFinales['DetalleFactura'] = $datosLineas; logger('traza', 'clsCADContabilidad.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADContabilidad->datosFactura()|| Meto en datosFinales el datosLineas"); //ahora averiguo el nombre de la empresa //la informacion que extraemos esta en dos tablas, dbContabilidad.tbcliprov y dbCliente.tbmiscontactos //y se busca de esta forma //1-Cliente: tbmiscontactos.NombreContacto + tbmiscontactos.ApellidosContacto //2-NombreEmpresa: tbcliprov.nombre //3-CIF: tbcliprov.CIF //4-direccion: tbcliprov.direccion //5-poblacion: tbcliprov.municipio //6-FormaPagoHabitual: tbmiscontactos.FormaPagoHabitual //7-Correo: tbmiscontactos.Correo //array donde guardo los datos $datos = array("Cliente" => '', "NombreEmpresa" => '', "CIF" => '', "direccion" => '', "FormaPagoHabitual" => '', "Correo" => ''); //primero hago la consulta en dbContabilidad.tbcliprov y estraigo los campos 2, 3 y 4 //el numero de la cuenta en la tabla tbrelacioncliprov esta dividido en dos partes //4300=0 se guarda en CliProv y el resto '00005' se guarda en 'codigo' // $codigo=substr($datosFinales['Cliente'],-5); $codigo = $datosFinales['Cliente']; $query = "\r\n SELECT C.nombre AS NombreEmpresa,C.CIF,\r\n C.direccion,CONCAT(C.CP,' - ',C.municipio) AS poblacion,C.provincia,C.Correo,C.IdCliProv\r\n FROM tbrelacioncliprov R, tbcliprov C\r\n WHERE C.IdCliProv=R.IdCliProv\r\n AND R.Borrado=0\r\n AND R.IdEmpresa=" . $_SESSION['idEmp'] . "\r\n AND R.codigo='{$codigo}'\r\n "; logger('traza', 'clsCADContabilidad.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADContabilidad->datosFactura()|| SQL : " . $query); $dbG->conectar($this->getStrBD()); $result = $dbG->ejecutar($query); $dbG->desconectar(); if (!$result) { //devolvemos false logger('traza', 'clsCADContabilidad.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADContabilidad->datosFactura()<FALSE"); return false; } if ($result) { $count = mysql_num_rows($result); if ($count > 0) { $row = mysql_fetch_array($result); $datos['NombreEmpresa'] = $row['NombreEmpresa']; //2 $datos['CIF'] = $row['CIF']; //3 $datos['direccion'] = $row['direccion']; //4 $datos['poblacion'] = $row['poblacion']; //5 $datos['provincia'] = $row['provincia']; //6 $datos['Correo'] = $row['Correo']; //7 ?? $IdCliProv = $row['IdCliProv']; //ahora hago la consulta contra la tabla dbCliente.tbmiscontactos //y extraigo si encuentro los campos 1 y 5 $query = "\r\n SELECT CONCAT(C.NombreContacto,' ',C.ApellidosContacto) AS Cliente,C.FormaPagoHabitual,C.Correo\r\n FROM tbmiscontactos C\r\n WHERE C.IdCliProv ={$IdCliProv}\r\n AND Borrado=1\r\n "; $dbC->conectar($this->getStrBDCliente()); $result2 = $dbC->ejecutar($query); $dbC->desconectar(); if ($result2) { $count = mysql_num_rows($result2); if ($count > 0) { $row = mysql_fetch_array($result2); $datos['Cliente'] = $row['Cliente']; $datos['FormaPagoHabitual'] = $row['FormaPagoHabitual']; //si existe este dato (que viene de dbContabilidad.tbcliprov,no lo grabo //sino existe pues si lo grabo if ($datos['Correo'] === '') { $datos['Correo'] = $row['Correo']; } } } else { //devolvemos false logger('traza', 'clsCADContabilidad.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCADContabilidad->datosFactura()<FALSE"); return false; } } } $datosFinales['NombreEmpresa'] = $datos['NombreEmpresa']; $datosFinales['CIFEmpresa'] = $datos['CIF']; $datosFinales['ContactoEmpresa'] = $datos['Cliente']; $datosFinales['DireccionEmpresa'] = $datos['direccion']; $datosFinales['PoblacionEmpresa'] = $datos['poblacion']; $datosFinales['ProvinciaEmpresa'] = $datos['provincia']; $datosFinales['Correo'] = $datos['Correo']; return $datosFinales; }
$tipoContador = $clsCNContabilidad->Parametro_general('Tipo Contador', date('Y-m-d H:i:s'), date('Y-m-d H:i:s')); if (is_array($arResult)) { for ($i = 0; $i < count($arResult); $i++) { $numeroFactura = numeroDesformateado($arResult[$i]['NumFactura'], $tipoContador); //preparo el importe en texto y sin decimales, y una cifra de 20 digitos, asi puedo ordenarlo bien por importe $importeTxt = $arResult[$i]['totalImporte'] * 100; while (strlen($importeTxt) < 20) { $importeTxt = '0' . $importeTxt; } if ($arResult[$i]['NumPresupuesto'] != '0') { $numeroPresupuesto = numeroDesformateado($arResult[$i]['NumPresupuesto'], $tipoContador); } else { $numeroPresupuesto = ''; } if ($arResult[$i]['NumPedido'] != '0') { $numeroPedido = numeroDesformateado($arResult[$i]['NumPedido'], $tipoContador); } else { $numeroPedido = ''; } //preparo el array de $arResult[$i] para enviar por url $link = "javascript:document.location.href='../vista/altafactura.php?IdFactura=" . $arResult[$i]['IdFactura'] . "';"; if ($arResult[$i]['existePDF'] != 'NO') { //$linkPDF="javascript:window.open('../facturasEnviadas/Factura_".$_SESSION['idEmp'].'-'.$ejercicio.'-'.$numero4cifras.".pdf')"; $linkPDF = "javascript:window.open('../../contabilidad/facturasEnviadas/Factura_" . $_SESSION['idEmp'] . '-' . $arResult[$i]['NumFactura'] . ".pdf')"; $imagenPDF = '<img src="../../contabilidad/images/pdf.png" width="10" height="10" border="0"/>'; $fechaPDF = $arResult[$i]['existePDF']; } else { $linkPDF = ''; $imagenPDF = ''; $fechaPDF = ''; }