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; }