예제 #1
0
 public function establecePartidaCatidad(Modproducto $producto, $cantidad)
 {
     if ($this->idpedido == "" || $this->idpedido == 0) {
         return array("error" => "idpedidonull");
     }
     if ($producto->getIdproducto() == "" || $producto->getIdproducto() == 0) {
         return array("error" => "idproductonull");
     }
     $res = array("error" => false);
     $this->db->where("idpartida in (select idpartida from relpedpar where idpedido = {$this->idpedido}) and idpartida in (select idpartida from relpropar where idproducto = {$producto->getIdproducto()})");
     $regs = $this->db->get('partida');
     $partida = new Modpartida();
     if ($regs->num_rows() > 0) {
         $partida->setIdpartida($regs->row_array()["idpartida"]);
         $partida->getFromDatabase();
     } else {
         $partida->setIdpedido($this->idpedido);
         $partida->setIdproducto($producto->getIdproducto());
         $partida->setStatus($this->modflujo->getEstadoInicial($this->config->item('idflujopartida'))["idestado"]);
     }
     $partida->setFecha(Today());
     $partida->setHora(Hora());
     $partida->setCantidad($cantidad);
     $partida->setConcepto($producto->getNombre());
     $partida->setPreciounitario($producto->getPrecioTotal());
     $partida->setImporte(floatval($partida->getCantidad() * $partida->getPreciounitario()));
     $partida->setPreciobase($producto->getPrecio());
     $partida->setImpuesoporc($producto->getImpuesto());
     $partida->setImpuesto($producto->getImpuesto() / 100.0 * $producto->getPrecio() * $partida->getCantidad());
     $partida->setUsuario($this->session->userdata('idusuario'));
     if ($regs->num_rows() > 0) {
         $partida->updateToDatabase();
     } else {
         $partida->addToDatabase();
     }
     if ($cantidad == 0) {
         $partida->delete();
     }
     return $partida;
 }