Пример #1
0
 /**
  * Genera un array con la informacion necesaria para imprimir el documento
  * Recibe el id del presupuesto
  *
  * @param array $idsDocumento Array con los ids de presupuestos
  * @return array Array con dos elementos: master es un objeto presupuesto y detail es un array de objetos lineas de presupuesto
  */
 protected function getDatosDocumento(array $idsDocumento)
 {
     $master = array();
     $detail = array();
     // Recorro el array de los albaranes a imprimir
     foreach ($idsDocumento as $key => $idDocumento) {
         // Instancio la cabecera del albaran
         $master[$key] = new PstoCab($idDocumento);
         // LLeno el array con objetos de lineas de presupuesto
         $lineas = array();
         $pstoLineas = new PstoLineas();
         $rows = $pstoLineas->cargaCondicion('IDLinea', "IDPsto='{$idDocumento}'", "IDPsto ASC");
         foreach ($rows as $row) {
             $lineas[] = new PstoLineas($row['IDLinea']);
         }
         $detail[$key] = $lineas;
     }
     return array('master' => $master, 'detail' => $detail);
 }
Пример #2
0
 public function PstoLineas()
 {
     $nItems = 0;
     $nErrores = 0;
     $dbLink = mysql_connect("localhost", "root", "albatronic");
     $query = "TRUNCATE {$this->dbDestino}.ErpPstoLineas";
     mysql_query($query);
     $query = "select Codigo,IDArticulo from {$this->dbDestino}.ErpArticulos";
     $result = mysql_query($query, $dbLink);
     while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
         $correspondencia[$row['Codigo']] = $row['IDArticulo'];
     }
     $query = "select l.*, c.Estado, c.Fecha from {$this->dbOrigen}.psto_lineas as l LEFT JOIN {$this->dbOrigen}.psto_cab as c ON l.IDPsto=c.IDPsto where c.IDPsto>0";
     $result = mysql_query($query, $dbLink);
     while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
         $c = new PstoLineas();
         $c->setIDPsto($row['IDPsto']);
         $c->setIDLinea($row['IDLinea']);
         $c->setIDArticulo($correspondencia[$row['IDArticulo']]);
         $c->setDescripcion($row['Descripcion']);
         $c->setUnidades($row['Unidades']);
         $c->setPrecio($row['Precio']);
         $c->setDescuento($row['Descuento']);
         $c->setImporte($row['Importe']);
         $c->setImporteCosto($row['ImporteCosto']);
         $c->setIDAlmacen(1);
         if ($row['Fecha'] >= '2012-09-01') {
             $c->setIva($this->correspondenciaIva[$row['Iva']]);
         } else {
             $c->setIva($row['Iva']);
         }
         $c->setIDAgente(2);
         $c->setIDComercial(2);
         $c->setIDEstado($row['Estado']);
         $c->setPrimaryKeyMD5(md5($row['IDLinea']));
         if (!$c->create()) {
             $errores[] = $c->getErrores();
             $nErrores++;
         } else {
             $nItems++;
         }
     }
     //mysql_close($dbLink);
     echo "Líneas Presupuestos {$nItems}<br/>";
     if (count($errores)) {
         echo "<pre>";
         print_r($errores);
         echo "</pre>";
     }
 }
Пример #3
0
 /**
  * Calcula el beneficio del presupuesto
  *
  * Devuelve un array con el precio de venta, el costo (bases imponibles)
  * y el beneficio del presupuesto
  *
  * array (
  *  'Venta' => Importe total del presupuesto base imponible,
  *  'Costo' => Importe total del costo del presupuesto base imponible
  *  'Beneficio' => Venta - Costo
  * )
  *
  * @param integer Id del presupuesto
  * @return array
  */
 public function getBeneficio($idPsto = '')
 {
     if ($idPsto == '') {
         $idPsto = $this->getIDPsto();
     }
     $lineas = new PstoLineas();
     $rows = $lineas->cargaCondicion("sum(ImporteCosto) as Costo", "IDPsto='{$idPsto}'");
     unset($lineas);
     $beneficio = array('Venta' => $this->TotalBases, 'Costo' => $rows[0]['Costo'], 'Beneficio' => $this->TotalBases - $rows[0]['Costo']);
     return $beneficio;
 }