public function buscar_rutas($idempresa, $fecha, $codalmacen, $rutas)
 {
     //Convertimos la lista de rutas en un array y luego en una cadena
     $char_rutas = implode("','", explode(',', $rutas));
     $sql = "SELECT " . $this->table_name . ".*,nombrecliente,direccion,ruta " . "FROM " . $this->table_name . ", distribucion_clientes " . "WHERE " . $this->table_name . ".codcliente = distribucion_clientes.codcliente" . " AND " . $this->table_name . ".codalmacen = " . $this->var2str($codalmacen) . " AND " . $this->table_name . ".codalmacen = distribucion_clientes.codalmacen" . " AND fecha = " . $this->var2str($fecha) . " AND distribucion_clientes.ruta IN ('" . $char_rutas . "')" . " AND anulada = false AND idfacturarect IS NULL" . " ORDER BY ruta, nombrecliente ";
     $data = $this->db->select($sql);
     if ($data) {
         $distrib_ordenescarga_facturas = new distribucion_ordenescarga_facturas();
         $lista = array();
         foreach ($data as $linea) {
             $value = new factura_cliente($linea);
             $value->ruta = $linea['ruta'];
             //Si la factura ya esta en una orden de carga la quitamos del listado
             if (!$distrib_ordenescarga_facturas->get($idempresa, $value->idfactura, $value->codalmacen)) {
                 $lista[] = $value;
             }
         }
         sort($lista);
         return $lista;
     } else {
         return false;
     }
 }
 public function delete()
 {
     //Liberamos las facturas asociadas a la orden de carga
     $ford0 = new distribucion_ordenescarga_facturas();
     $ford0->idempresa = $this->idempresa;
     $ford0->idordencarga = $this->idordencarga;
     $ford0->codalmacen = $this->codalmacen;
     $ford0->delete();
     //Eliminamos las lineas de la orden de carga
     $lord0 = new distribucion_lineasordenescarga();
     $lord0->idempresa = $this->idempresa;
     $lord0->idordencarga = $this->idordencarga;
     $lord0->codalmacen = $this->codalmacen;
     $lord0->delete();
     //Por ultimo borramos la Orden de Carga
     // @to-do Cascade delete
     $sql = "DELETE FROM distribucion_ordenescarga WHERE " . "idempresa = " . $this->intval($this->idempresa) . " AND " . "codalmacen = " . $this->var2str($this->codalmacen) . " AND " . "idordencarga = " . $this->intval($this->idordencarga) . ";";
     return $this->db->exec($sql);
 }
 public function guardar_facturas_ordencarga($ordencarga, $facturas)
 {
     $datos_fact = explode(",", $facturas);
     $facturasoc0 = new distribucion_ordenescarga_facturas();
     $facturasoc0->idempresa = $ordencarga->idempresa;
     $facturasoc0->codalmacen = $ordencarga->codalmacen;
     $facturasoc0->idordencarga = $ordencarga->idordencarga;
     $facturasoc0->fecha = $ordencarga->fecha;
     $facturasoc0->usuario_creacion = $ordencarga->usuario_creacion;
     $facturasoc0->fecha_creacion = $ordencarga->fecha_creacion;
     $erroresLinea = "";
     $contadorFacturas = 0;
     foreach ($datos_fact as $fact) {
         if (!empty($fact)) {
             $facturasoc0->idfactura = $fact;
             if (!$facturasoc0->save()) {
                 $coma = isset($erroresLinea) ? ", " : "";
                 $erroresLinea .= $coma . $fact;
             } else {
                 $contadorFacturas++;
             }
         }
     }
     if (empty($erroresLinea)) {
         $this->new_message($contadorFacturas . ' facturas de la Orden de carga ' . $ordencarga->idordencarga . ' guardadas correctamente');
     } else {
         $this->new_error_msg('Facturas de la Orden de carga ' . $ordencarga->idordencarga . ' con errores al guardar las siguientes facturas: ' . $erroresLinea . ' por favor revise la información enviada.');
     }
 }