Ejemplo n.º 1
0
 public function agregarInventario($tipo_documento, $nroSerie, $nro_documento, $tipo, $idProducto, $cantidad, $Precio, $Total)
 {
     $resultado = array('valor' => 1, 'message' => 'Su solicitud ha sido procesada correctamente.');
     $Inventario = new Inventario();
     $Inventario->tipo_documento = $tipo_documento;
     $Inventario->serie = $nroSerie;
     $Inventario->nro_documento = $nro_documento;
     $Inventario->tipo = $tipo;
     $Inventario->idproducto = $idProducto;
     $Inventario->cantidad = $cantidad;
     $Inventario->valor_unitario = $Precio;
     $Inventario->total = $Total;
     $Inventario->save();
     return $resultado;
 }
Ejemplo n.º 2
0
 /**
  * Executes index action
  *
  * @param sfRequest $request A request object
  */
 public function executeIndex(sfWebRequest $request)
 {
     $this->form = new IngresoInventarioForm();
     if ($request->isMethod('POST')) {
         $this->form->bind($request->getParameter('ingreso_inventario'));
         if ($this->form->isValid()) {
             $valores = $this->form->getValues();
             $BitacoraCambios = new BitacoraCambios();
             $BitacoraCambios->setModelo('Inventario');
             $Producto = ProductoQuery::create()->findOneById($valores['Producto']);
             $BitacoraCambios->setDescripcion('Ingreso de Inventario de Producto: ' . $Producto->getDescripcion() . ' con cantidad ' . $valores['Cantidad']);
             $BitacoraCambios->setIp($request->getRemoteAddress());
             $Usuario = UsuarioQuery::create()->findOneById(sfContext::getInstance()->getUser()->getAttribute('usuario', null, 'seguridad'));
             if ($Usuario) {
                 $BitacoraCambios->setCreatedBy($Usuario->getUsuario());
             }
             $Movimiento = new Movimiento();
             $Movimiento->setTipoMovimiento('+');
             $Movimiento->setProveedorId($valores['Proveedor']);
             $Movimiento->setProductoId($Producto->getId());
             $Movimiento->setCantidad($valores['Cantidad']);
             $Movimiento->setPrecio($valores['Precio']);
             $Movimiento->save();
             $BitacoraCambios->save();
             $Comprobacion = InventarioQuery::create()->filterByProductoId($valores['Producto'])->filterByProveedorId($valores['Proveedor'])->findOne();
             if ($Comprobacion) {
                 $Comprobacion->setCantidad($Comprobacion->getCantidad() + $valores['Cantidad']);
                 $anterior = $Comprobacion->getCantidad() * $Comprobacion->getPrecioCompra();
                 $actual = $valores['Cantidad'] * $valores['Precio'];
                 $suma = ($anterior + $actual) / ($valores['Cantidad'] + $Comprobacion->getCantidad());
                 $Comprobacion->setPrecioCompra($suma);
                 $Comprobacion->save();
             } else {
                 $Inventario = new Inventario();
                 $Inventario->setPrecioCompra($valores['Precio']);
                 $Inventario->setProductoId($valores['Producto']);
                 $Inventario->setProveedorId($valores['Proveedor']);
                 $Inventario->setCantidad($valores['Cantidad']);
                 $Inventario->save();
             }
             $this->redirect('inventario/index');
         }
     }
     $this->cinco = InventarioQuery::create()->orderById('DESC')->limit(5)->find();
 }
Ejemplo n.º 3
0
 public function executeEntregado(sfWebRequest $request)
 {
     $id = $request->getParameter('id');
     $BitacoraCambios = new BitacoraCambios();
     $BitacoraCambios->setModelo('Pedido Proveedores');
     $Usuario = UsuarioQuery::create()->findOneById(sfContext::getInstance()->getUser()->getAttribute('usuario', null, 'seguridad'));
     $BitacoraCambios->setDescripcion('Cambio de estado de Pedido a Proveedor  a Entregado con id : ' . $id . ' el usuario ' . $Usuario->getNombre());
     $BitacoraCambios->setIp($request->getRemoteAddress());
     $pedido = PedidoProveedorQuery::create()->findOneById($id);
     $pedido->setEstado('Entregado');
     $pedido->save();
     $detalle_pedido = DetallePedidoProveedorQuery::create()->filterByPedidoProveedor($pedido)->find();
     foreach ($detalle_pedido as $det) {
         $Comprobacion = InventarioQuery::create()->filterByProductoId($det->getProductoId())->filterByProveedorId($pedido->getProveedorId())->findOne();
         if ($Comprobacion) {
             $Comprobacion->setCantidad($Comprobacion->getCantidad() + $det->getCantidad());
             $anterior = $det->getCantidad() * $Comprobacion->getPrecioCompra();
             $actual = $det->getCantidad() * $det->getPrecio();
             $suma = ($anterior + $actual) / ($det->getCantidad() + $Comprobacion->getCantidad());
             $Comprobacion->setPrecioCompra($suma);
             $Comprobacion->save();
         } else {
             $Inventario = new Inventario();
             $Inventario->setPrecioCompra($det->getPrecio());
             $Inventario->setProductoId($det->getProductoId());
             $Inventario->setProveedorId($pedido->getProveedorId());
             $Inventario->setCantidad($det->getCantidad());
             $Inventario->save();
         }
         $Movimiento = new Movimiento();
         $Movimiento->setTipoMovimiento('+');
         $Movimiento->setProveedorId($pedido->getProveedorId());
         $Movimiento->setProductoId($det->getProductoId());
         $Movimiento->setCantidad($det->getCantidad());
         $Movimiento->setPrecio($det->getPrecio());
         $Movimiento->save();
     }
     $this->redirect('pedido_proveedor/index');
 }
Ejemplo n.º 4
0
 public function save()
 {
     $post = $this->_post(NULL, TRUE);
     try {
         if (is_array($post)) {
             $producto = NomProductoTable::getInstance()->find($post['producto_id']);
             if (!$producto) {
                 //Si el producto no existe devuelvo un error
                 $msg = "Producto no encontrado.";
                 return $this->_jsonResponse(array("msg" => $msg), 404, $msg);
             }
             $entidad = NomEntidadTable::getInstance()->find($post['entidad_id']);
             if (!$entidad) {
                 //Si la entidad no existe devuelvo un error
                 $msg = "Entidad no encontrada.";
                 return $this->_jsonResponse(array("msg" => $msg), 404, $msg);
             }
             if ($post['id']) {
                 $inventario = $this->_getTable()->find($post['id']);
                 if (!$inventario) {
                     //Si el inventario no existe devuelvo un error
                     $msg = "Inventario no encontrado.";
                     return $this->_jsonResponse(array("msg" => $msg), 404, $msg);
                 }
             } else {
                 $inventario = new Inventario();
             }
             $inventario->fromArray($post, false);
             $inventario->set('Producto', $producto);
             $inventario->set('Entidad', $entidad);
             $inventario->save();
             $this->_jsonResponse($inventario->toArray());
         }
     } catch (Exception $exc) {
         log_message('error', $exc->getMessage());
         log_message('error', $exc->getTraceAsString());
         $this->_jsonResponse(array("msg" => "Ha ocurrido un error mientras se intentaba guardar un producto."), 500);
     }
 }
Ejemplo n.º 5
0
     $inv->Codigo = $i->Codigo;
     $inv->CodigoBarra = $i->CodigoBarra;
     $inv->Precio = $i->Precio;
     $inv->Descuento = $i->Descuento;
     $inv->Entrada = $i->Existencia;
     $inv->Existencia = $i->Existencia;
     $inv->DescuentoUfi = $i->DescuentoUfi;
     $inv->DescuentoEmpaque = $i->DescuentoEmpaque;
     $inv->UnidadEmpaque = $i->UnidadEmpaque;
     $inv->DescuentoComercial = $i->DescuentoComercial;
     $inv->DescuentoProntoPago = $i->DescuentoProntoPago;
     $inv->Lote = $i->Lote;
     $inv->Vencimiento = $i->Vencimiento;
     $inv->UnidadManejo = $i->UnidadManejo;
     $inv->FechaVenta = Fecha::arreglarFecha2(Fecha::fechaActual());
     $inv->save();
     $inv->productos()->attach($produ->id);
     echo "Guardado inventario con codigo: " . $i->Codigo . "<br>";
 } else {
     $inv = Inventario::find($inve->id);
     $inv->user_id = 1;
     $inv->Codigo = $i->Codigo;
     $inv->CodigoBarra = $i->CodigoBarra;
     $inv->Precio = $i->Precio;
     $inv->Descuento = $i->Descuento;
     $inv->Entrada = $i->Existencia;
     $inv->Existencia = $i->Existencia;
     $inv->DescuentoUfi = $i->DescuentoUfi;
     $inv->DescuentoEmpaque = $i->DescuentoEmpaque;
     $inv->UnidadEmpaque = $i->UnidadEmpaque;
     $inv->DescuentoComercial = $i->DescuentoComercial;
Ejemplo n.º 6
0
 /**
  * Creates a new model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  */
 public function actionCreate()
 {
     $model = new Inventario();
     // Uncomment the following line if AJAX validation is needed
     // $this->performAjaxValidation($model);
     if (isset($_POST['Inventario'])) {
         $model->attributes = $_POST['Inventario'];
         if ($model->save()) {
             Yii::app()->user->setFlash('success', ' Se ha creado el activo Fijo ');
             $this->render('update', array('model' => $model));
             Yii::app()->end();
         }
     }
     $this->render('create', array('model' => $model));
 }
Ejemplo n.º 7
0
 /**
  * @name            obtenerInventario
  * 
  * @description     Retorna un listado con las existencias del producto, 
  *                  precio, ofertas, lote, vencimiento y unidad de manejo 
  *                  del producto. Se recomienda que este servicio se invoque 
  *                  una vez al día de manera de obtener información de las 
  *                  ofertas para los siguientes llamados para actualizar el 
  *                  inventario debe invocarse el método “ObtenerExistencias”
  */
 public function obtenerInventario()
 {
     $chequeado = DB::table('chequeo_inventarios')->where('user_id', '=', Auth::user()->id)->where('fecha', '=', Fecha::arreglarFecha2(Fecha::fechaActual()))->first();
     if (!$chequeado) {
         DB::insert("INSERT INTO ldcsyste_dbskutools.`chequeo_inventarios` (user_id, fecha, hora) VALUES(?, CURRENT_DATE(),CURRENT_TIME())", array(Auth::user()->id));
         $sede = DB::table('sedes')->where('id', '=', Auth::user()->sede_id)->first();
         set_time_limit(10000);
         $autorizacion = json_decode($this->obtenerTokenUsuario());
         $option = ['http' => ['method' => 'GET', 'header' => ['Authorization: GUID ' . $autorizacion->Guid, 'Content-Type: application/json']]];
         $context = stream_context_create($option);
         $inventarios = json_decode(file_get_contents("http://test.dronena.com:8083/REST/Cloud/Producto/Inventario/" . $sede->Codigo . "/Cliente/" . Auth::user()->Codigo_Cliente, false, $context));
         foreach ($inventarios->Inventario->Producto as $i) {
             $inve = DB::table('inventarios')->where('user_id', '=', Auth::user()->id)->where('Codigo', '=', $i->Codigo)->where('CodigoBarra', '=', $i->CodigoBarra)->first();
             if (!$inve) {
                 $produ = DB::table('productos')->where('Codigo', '=', $i->Codigo)->where('CodigoBarra', '=', $i->CodigoBarra)->first();
                 $inv = new Inventario();
                 $inv->user_id = Auth::user()->id;
                 $inv->Codigo = $i->Codigo;
                 $inv->CodigoBarra = $i->CodigoBarra;
                 $inv->Precio = $i->Precio;
                 $inv->Descuento = $i->Descuento;
                 $inv->Entrada = $i->Existencia;
                 $inv->Existencia = $i->Existencia;
                 $inv->DescuentoUfi = $i->DescuentoUfi;
                 $inv->DescuentoEmpaque = $i->DescuentoEmpaque;
                 $inv->UnidadEmpaque = $i->UnidadEmpaque;
                 $inv->DescuentoComercial = $i->DescuentoComercial;
                 $inv->DescuentoProntoPago = $i->DescuentoProntoPago;
                 $inv->Lote = $i->Lote;
                 $inv->Vencimiento = $i->Vencimiento;
                 $inv->UnidadManejo = $i->UnidadManejo;
                 $inv->FechaVenta = Fecha::arreglarFecha2(Fecha::fechaActual());
                 $inv->save();
                 $inv->productos()->attach($produ->id);
             } else {
                 $inv = Inventario::find($inve->id);
                 $inv->user_id = Auth::user()->id;
                 $inv->Codigo = $i->Codigo;
                 $inv->CodigoBarra = $i->CodigoBarra;
                 $inv->Precio = $i->Precio;
                 $inv->Descuento = $i->Descuento;
                 $inv->Entrada = $i->Existencia;
                 $inv->Existencia = $i->Existencia;
                 $inv->DescuentoUfi = $i->DescuentoUfi;
                 $inv->DescuentoEmpaque = $i->DescuentoEmpaque;
                 $inv->UnidadEmpaque = $i->UnidadEmpaque;
                 $inv->DescuentoComercial = $i->DescuentoComercial;
                 $inv->DescuentoProntoPago = $i->DescuentoProntoPago;
                 $inv->Lote = $i->Lote;
                 $inv->Vencimiento = $i->Vencimiento;
                 $inv->UnidadManejo = $i->UnidadManejo;
                 $inv->FechaVenta = Fecha::arreglarFecha2(Fecha::fechaActual());
                 $inv->save();
             }
         }
     }
 }