/** * Método para cargar las facturas */ public function facturar($key) { if (!($id = DwSecurity::isValidKey($key, 'upd_incidencias', 'int'))) { return DwRedirect::toAction('registro'); } $incidencias = new Incidencias(); $obj = new IncidenciasPatologia(); //$factura = new Factura(); $factura_dt = new FacturaDt(); $this->sol = $obj->getInformacionIncidenciasPatologia($id); if (!$incidencias->getInformacionIncidencias($id)) { DwMessage::get('id_no_found'); return DwRedirect::toAction('registro'); } if (Input::hasPost('factura')) { ActiveRecord::beginTrans(); $factu = Factura::setFactura('create', Input::post('factura')); if ($factu) { if (FacturaDt::setFacturaDt(Input::post('descripcion'), Input::post('cantidad'), Input::post('monto'), Input::post('exento'), $factu->id)) { $solfactura = IncidenciasFactura::setIncidenciasFactura($factu->id, $id); if ($solfactura) { if (Input::post('multifactura')) { //para saber si va a cargar multiples facturas sobre esa solicitud $solser = $incidencias->getInformacionIncidencias($id); $solser->estado_solicitud = "G"; //estado G parcialmente facturada $solser->save(); ActiveRecord::commitTrans(); DwMessage::valid('Se ha cargado la factura exitosamente!'); $key_upd = DwSecurity::getKey($id, 'upd_incidencias'); return DwRedirect::toAction('facturar/' . $key_upd); //retorna a la misma visata de facturacion } else { $solser = $incidencias->getInformacionIncidencias($id); $solser->estado_solicitud = "F"; $solser->save(); ActiveRecord::commitTrans(); DwMessage::valid('Se ha cargado la factura exitosamente!'); return DwRedirect::toAction('facturacion'); } } else { ActiveRecord::rollbackTrans(); DwMessage::error('No se pudo enviar a cargar multiples facturas!'); } } else { ActiveRecord::rollbackTrans(); DwMessage::error('Los detalles de la Factura no se han cargado correctamente Intente de nuevo!'); } } else { ActiveRecord::rollbackTrans(); DwMessage::error('La Factura no se ha cargado con exito!'); } } $this->incidencias = $incidencias; $this->page_title = 'Cargar Facturas a la solicitud'; }