02/05/2016, 18:15
|
| | Fecha de Ingreso: enero-2016 Ubicación: Rio Negro - Cipolletti
Mensajes: 5
Antigüedad: 8 años, 11 meses Puntos: 0 | |
Mi codigo se salta una linea! por que ? Como andan gente??
Necesito una mano con mi codigo, no se porque me saltea una linea del codigo muy importante que es la siguiente
Código:
exec("python2 /srv/http/Gcom/facturacion/pyafipws/pyfepdf.py /srv/http/Gcom/facturacion/rece.ini --cargar --json");
Aqui mi codigo completo:
Código:
<?php
function facturarGcom($id){
// Establezco los valores de la factura a autorizar:
$factura = array(
'id' => $datos[0]['id'], // identificador único (obligatorio WSFEX)
'punto_vta' => $datos[0]['punto_vta'],
'tipo_cbte' => $datos[0]['tipo_cbte'], // 1: FCA, 2: NDA, 3:NCA, 6: FCB, 11: FCC
'cbte_nro' => $datos[0]['cbte_nro'], // solicitar proximo con /ult
'tipo_doc' => $datos[0]['tipo_doc'], // 96: DNI, 80: CUIT, 99: Consumidor Final
'nro_doc' => $datos[0]['nro_doc'], // Nro. de CUIT o DNI
'fecha_cbte' => $datos[0]['fecha_cbte'], // Formato AAAAMMDD
'fecha_serv_desde' => $datos[0]['fecha_serv_desde'], // competar si concepto > 1
'fecha_serv_hasta' => $datos[0]['fecha_serv_hasta'], // competar si concepto > 1
'fecha_venc_pago' => $datos[0]['fecha_venc_pago'], // competar si concepto > 1
'concepto' => $datos[0]['concepto'], // 1: Productos, 2: Servicios, 3/4: Ambos
'nombre_cliente' => $datos[0]['nombre_cliente'],
'domicilio_cliente' => $datos[0]['domicilio_cliente'],
'pais_dst_cmp' => $datos[0]['pais_dst_cmp'], // solo exportacion
'moneda_ctz' => $datos[0]['moneda_ctz'], // 1 para pesos
'moneda_id' => $datos[0]['moneda_id'], // 'PES': pesos, 'DOL': dolares (solo exportacion)
'obs_comerciales' => $datos[0]['obs_comerciales'],
'obs_generales' => $datos[0]['obs_generales'],
'forma_pago' => $datos[0]['forma_pago'],
'incoterms' => $datos[0]['incoterms'], // solo exportacion
'id_impositivo' => $datos[0]['id_impositivo'], // solo exportacion
// importes subtotales generales:
'imp_neto' => $imp_neto, // neto gravado
'imp_op_ex' => $datos[0]['imp_op_ex'], // operacioens exentas
'imp_tot_conc' => $datos[0]['imp_tot_conc'], // no gravado
'imp_iva' => $imp_iva, // IVA liquidado
'imp_trib' => $datos[0]['imp_trib'], // otros tributos
'imp_total' => $imp_neto + $imp_iva, // total de la factura
// Datos devueltos por AFIP (completados luego al llamar al webservice):
'cae' => '', // ej. '61123022925855'
'fecha_vto' => '', // ej. '20110320'
'motivos_obs' => '', // ej. '11'
'err_code' => '', // ej. 'OK'
'descuento' => $datos[0]['descuento'],
'detalles' => $detalles,
'ivas' => array (
array(
'base_imp' => $iva[0]['base_imp'],
'importe' => $iva[0]['importe'],
'iva_id' => $iva[0]['iva_id'],
),
),
// Comprobantes asociados (solo notas de crédito y débito):
//'cbtes_asoc' => array (
// array('cbte_nro' => 1234, 'cbte_punto_vta' => 2, 'cbte_tipo' => 91, ),
// array('cbte_nro' => 1234, 'cbte_punto_vta' => 2, 'cbte_tipo' => 5, ),
// ),
'tributos' => array (
array(
'alic' => $tri[0]['alic'],
'base_imp' => $tri[0]['base_imp'],
'desc' => $tri[0]['desc'],
'importe' => $tri[0]['importe'],
'tributo_id' => $tri[0]['tributo_id'],
),
),
'permisos' => array (),
'datos' => array (),
);
// Guardar el archivo json para consultar la ultimo numero de factura:
$json = file_put_contents('/srv/http/Gcom/facturacion/factura.json', json_encode(array($factura)));
// Obtener el último número para este tipo de comprobante / punto de venta:
exec("python2 /srv/http/Gcom/facturacion/pyafipws/rece1.py /srv/http/Gcom/facturacion/rece.ini /json /ult 1 4000");
$json = file_get_contents('/srv/http/Gcom/facturacion/salida.json');
$facturas = json_decode($json, True);
// leo el ultimo numero de factura del archivo procesado (salida)
$cbte_nro = intval($facturas[0]['cbt_desde']) + 1;
echo "Proximo Numero: ", $cbte_nro, "\n\r";
// Vuelvo a guardar el archivo json para actualizar el número de factura:
$factura['cbt_desde'] = $cbte_nro; // para WSFEv1
$factura['cbt_hasta'] = $cbte_nro; // para WSFEv1
$factura['cbte_nro'] = $cbte_nro; // para PDF
$json = file_put_contents('/srv/http/Gcom/facturacion/factura.json', json_encode(array($factura)));
// Obtención de CAE: llamo a la herramienta para WSFEv1
exec("python2 /srv/http/Gcom/facturacion/pyafipws/rece1.py /srv/http/Gcom/facturacion/rece.ini /json ");
// Ejemplo para levantar el archivo json con el CAE obtenido:
$json = file_get_contents('/srv/http/Gcom/facturacion/salida.json');
$facturas = json_decode($json, True);
// leo el CAE del archivo procesado
echo "CAE OBTENIDO: ", $facturas[0]['cae'], "\n\r";
echo "Observaciones: ", $facturas[0]['motivos_obs'], "\n\r";
echo "Errores: ", $facturas[0]['err_msg'], "\n\r";
// Vuelvo a guardar el archivo json para actualizar el CAE y otros datos:
$factura['cae'] = $facturas[0]['cae'];
$factura['fecha_vto'] = $facturas[0]['fch_venc_cae'];
$factura['motivos_obs'] = $facturas[0]['motivos_obs'];
$factura['err_code'] = $facturas[0]['err_code'];
$factura['err_msg'] = $facturas[0]['err_msg'];
$json = file_put_contents('/srv/http/Gcom/facturacion/factura.json',
json_encode(array($factura)));
// Genero la factura en PDF (agregar --mostrar si se tiene visor de PDF)
exec("python2 /srv/http/Gcom/facturacion/pyafipws/pyfepdf.py /srv/http/Gcom/facturacion/rece.ini --cargar --json");
// leer factura.pdf o similar para obtener el documento generado. TIP: --mostrar
}
?>
|