예제 #1
0
 function registra()
 {
     $dataMovimiento = $_REQUEST['Movimiento'];
     $dataDetalleMovimiento = $_REQUEST['Detallemovimiento'];
     $producto = new Producto();
     $movimiento = new Movimiento();
     $detalleMovimiento = new Detallemovimiento();
     $dataMovimiento['idtipooperacion'] = $dataMovimiento['conceptomovimiento'];
     if (!empty($dataMovimiento['iddocumentotipo'])) {
         $dataMovimiento['essunat'] = 1;
     }
     $exitoMovimiento = $movimiento->grabaMovimiento($dataMovimiento);
     if ($exitoMovimiento) {
         $operacion = $dataMovimiento['tipomovimiento'];
         foreach ($dataDetalleMovimiento as $data) {
             $idProducto = $data['idproducto'];
             $dataBusqueda = $producto->buscaProducto($idProducto);
             if ($operacion == 2) {
                 $valor = $dataBusqueda[0]['stockactual'] - $data['cantidad'];
                 if ($valor <= 0) {
                     $stockNuevo['esagotado'] = 1;
                     $stockNuevo['fechaagotado'] = date('Y-m-d');
                 }
                 $stockNuevo['esagotado'] = 0;
                 $stockNuevo['fechaagotado'] = null;
                 $stockNuevo['stockactual'] = $valor;
                 $stockNuevo['stockdisponible'] = $dataBusqueda[0]['stockdisponible'] - $data['cantidad'];
             } elseif ($operacion == 1) {
                 $stockNuevo['esagotado'] = 0;
                 $stockNuevo['fechaagotado'] = null;
                 $stockNuevo['stockactual'] = $dataBusqueda[0]['stockactual'] + $data['cantidad'];
                 $stockNuevo['stockdisponible'] = $dataBusqueda[0]['stockdisponible'] + $data['cantidad'];
             }
             //$stockNuevo=($operacion=='+')?array('esagotado'=>0,'stockactual'=>($data['stockactual']+$data['cantidad']),'stockdisponible'=>($data['stockdisponibledm']+$data['cantidad'])):array('stockactual'=>($data['stockactual']-$data['cantidad']),'stockdisponible'=>($data['stockdisponibledm']-$data['cantidad']));
             $exitoProducto = $producto->actualizaProducto($stockNuevo, $data['idproducto']);
             $data2['stockactual'] = $stockNuevo['stockactual'];
             $data2['idmovimiento'] = $exitoMovimiento;
             $data2['preciovalorizado'] = $dataBusqueda[0]['preciocosto'];
             $data2['importe'] = $data['cantidad'] * $dataBusqueda[0]['preciocosto'];
             $data2['stockdisponibledm'] = $stockNuevo['stockdisponible'];
             $data2['idproducto'] = $data['idproducto'];
             $data2['cantidad'] = $data['cantidad'];
             $data2['pu'] = $dataBusqueda[0]['preciocosto'];
             $exitoDetalleMovimiento = $detalleMovimiento->grabaDetalleMovimieto($data2);
         }
     }
     if ($exitoDetalleMovimiento and $exitoProducto) {
         $ruta['ruta'] = "/almacen/movstock";
         $this->view->show("ruteador.phtml", $ruta);
     }
 }
예제 #2
0
 function confirmar()
 {
     $id = $_REQUEST['idOrdenCompra'];
     $dataOrdenCompra = $_REQUEST['OrdenCompra'];
     $dataOrdenCompraDetalle = $_REQUEST['Detalleordencompra'];
     //echo '<pre>';
     //print_r($dataOrdenCompraDetalle);
     //exit;
     $dataOrdenCompra['valorizado'] = 1;
     if ($_REQUEST['conformidad'] != 'on') {
         $dataOrdenCompra['vbimportaciones'] = 0;
     }
     if ($_REQUEST['registrado'] == 1) {
         $detalleMovimiento = $this->AutoLoadModel('detallemovimiento');
         $dataproducto = $_REQUEST['Producto'];
     }
     $totalDOC = count($dataOrdenCompraDetalle);
     $ordenCompra = new Ordencompra();
     $detalleOrdenCompra = new Detalleordencompra();
     $producto = new Producto();
     $historialProducto = new Historialproducto();
     $exito1 = $ordenCompra->actualizaOrdenCompra($dataOrdenCompra, $id);
     for ($i = 1; $i <= $totalDOC; $i++) {
         //Actualizando el DetalleOrdenCompra
         $idDOC = $dataOrdenCompraDetalle[$i]['iddetalleordencompra'];
         $ddoci = $dataOrdenCompraDetalle[$i];
         $exito_doc = $detalleOrdenCompra->actualizaDetalleOrdenCompra($ddoci, $idDOC);
         $idProducto = $dataOrdenCompraDetalle[$i]['idproducto'];
         if ($_REQUEST['registrado'] == 1) {
             $tcv = $ordenCompra->TipoCambioxIdOrdenCompra($id);
             $tipocambio = $tcv[0]['tipocambiovigente'];
             $filtro = "m.idordencompra='{$id}' and dm.idproducto='{$idProducto}' ";
             $dataMovimiento = $detalleMovimiento->buscaDetalleMovimientoxFiltro($filtro);
             $iddetallemovimiento = $dataMovimiento[0]['iddetallemovimiento'];
             $precioCosto = $dataOrdenCompraDetalle[$i]['cifunitario'] * $tipocambio;
             $cantidadRecibida = $dataOrdenCompraDetalle[$i]['cantidadrecibidaoc'];
             $stockactual = $dataMovimiento[0]['stockactual'] - $dataMovimiento[0]['cantidad'];
             $precioactual = $dataproducto[$i]['preciocosto'];
             $stockproducto = $stockactual + $cantidadRecibida;
             $preciovalorizado = ($precioCosto * $cantidadRecibida + $stockactual * $precioactual) / $stockproducto;
             $preciovalorizado = round($preciovalorizado, 2);
             $ddm['preciovalorizado'] = $preciovalorizado;
             $ddm['pu'] = $precioCosto;
             $datop['preciocosto'] = $preciovalorizado;
             $exitoM = $detalleMovimiento->actualizaDetalleMovimientoxid($iddetallemovimiento, $ddm);
         }
         $datop['fob'] = $dataOrdenCompraDetalle[$i]['fobdoc'];
         $exitoP = $producto->actualizaProducto($datop, $idProducto);
         // $preciocosto=$dataOrdenCompraDetalle[$i]['totalunitario'];
         // $idproducto=$dataOrdenCompraDetalle[$i]['idproducto'];
         // $cantidad=$dataOrdenCompraDetalle[$i]['cantidadsolicitadaoc'];
         // $dp=$producto->buscaProducto($idproducto);//Data producto
         // $psv=(($dp[0]['stockactual']*$dp[0]['preciocosto'])+($cantidad*$precioCosto))/($dp[0]['stockactual']+$cantidad);//Precio de stock valorizado
         // /*Datos de la tabla producto*/
         // $dp1['preciocosto']=$precioCosto;
         // $dp1['fob']=$dataOrdenCompraDetalle[$i]['fobdoc'];
         // $dp1['cif']=$dataOrdenCompraDetalle[$i]['cifunitario'];
         // $dp1['precioreferencia01']=($psv*1.10);
         // //Datos para Historial producto
         // $dhp['idproducto']=$idproducto;
         // $dhp['preciofob']=$dataOrdenCompraDetalle[$i]['fobdoc'];
         // $dhp['hpreciocosto']=$precioCosto;
         // $dhp['preciostockvalorizado']=$psv;
         // $exito2=$producto->actualizaProducto($dp1,$idproducto);
         // $exito3=$historialProducto->grabaHistorialProducto($dhp);
     }
     if ($exito_doc and $exito1) {
         $ruta['ruta'] = "/importaciones/ordencompra";
         $this->view->show('ruteador.phtml', $ruta);
     }
 }
예제 #3
0
 function confirmaOrden()
 {
     if (!$_REQUEST['idOrdenVenta']) {
         $ordenVenta = new OrdenVenta();
         $opciones = new general();
         $url = "/" . $_REQUEST['url'];
         $data['Opcion'] = $opciones->buscaOpcionexurl($url);
         $data['Modulo'] = $opciones->buscaModulosxurl($url);
         $data['ordenVenta'] = $ordenVenta->pedidoxaprobar(4);
         $data['FormaPago'] = $this->formaPago();
         $this->view->show("/almacen/confirmaorden.phtml", $data);
     } else {
         $id = $_REQUEST['idOrdenVenta'];
         $estadoOrden = $_REQUEST['estadoOrden'];
         $dataOrdenVenta = $_REQUEST['Orden'];
         $dataDetalleOrdenVenta = $_REQUEST['DetalleOrdenVenta'];
         $productos = $_REQUEST['Producto'];
         $ordenVenta = new OrdenVenta();
         $detalleOrdenVenta = new DetalleOrdenVenta();
         $producto = new Producto();
         $dataOrdenVenta['vbalmacen'] = $estadoOrden == 1 ? 1 : 2;
         if ($dataOrdenVenta['vbalmacen'] == 2) {
             $dataOrdenVenta['desaprobado'] = 1;
         }
         $exito1 = $ordenVenta->actualizaOrdenVenta($dataOrdenVenta, $id);
         $cont = 0;
         if ($exito1) {
             foreach ($dataDetalleOrdenVenta as $data) {
                 if ($dataOrdenVenta['vbalmacen'] == 2 || $data['estado'] == 0) {
                     //buscamos producto
                     $idproducto = $productos[$cont]['idproducto'];
                     $dataProducto = $producto->buscaProductoxId($idproducto);
                     $stockdisponibleA = $dataProducto[0]['stockdisponible'];
                     $stockdisponibleN = $stockdisponibleA + $productos[$cont]['cantaprobada'];
                     $dataNuevo['stockdisponible'] = $stockdisponibleN;
                     //actualizamos es stockdisponible
                     $exitoP = $producto->actualizaProducto($dataNuevo, $idproducto);
                 } elseif ($data['estado'] == 1) {
                     //buscamos producto
                     $idproducto = $productos[$cont]['idproducto'];
                     $dataProducto = $producto->buscaProductoxId($idproducto);
                     $stockdisponibleA = $dataProducto[0]['stockdisponible'];
                     $stockdisponibleN = $stockdisponibleA + $productos[$cont]['cantaprobada'] - $data['cantdespacho'];
                     $dataNuevo['stockdisponible'] = $stockdisponibleN;
                     //actualizamos es stockdisponible
                     $exitoP = $producto->actualizaProducto($dataNuevo, $idproducto);
                 }
                 $exito2 = $detalleOrdenVenta->actualizar($data['iddetalleordenventa'], $data);
                 $cont++;
             }
             if ($exito2) {
                 //graba el tiempo que demoro ser confirmado
                 $ordenVentaDuracion = new ordenventaduracion();
                 $DDA = $ordenVentaDuracion->listaOrdenVentaDuracion($id, "cobranza");
                 $dataDuracion['idordenventa'] = $id;
                 $intervalo = $this->date_diff(date('Y-m-d H:i:s', strtotime($DDA[0]['fechacreacion'])), date('Y-m-d H:i:s'));
                 $dataDuracion['tiempo'] = $intervalo;
                 if (empty($DDA[0]['fechacreacion'])) {
                     $dataDuracion['tiempo'] = 'indifinido';
                 }
                 $dataDuracion['referencia'] = 'almacen';
                 $exitoN = $ordenVentaDuracion->grabaOrdenVentaDuracion($dataDuracion);
                 //actualiza ordenventa su duracion total
                 $DDAT = $ordenVentaDuracion->listaOrdenVentaDuracion($id, "creacion");
                 $fechaInicio = $DDAT[0]['fechacreacion'];
                 if (empty($fechaInicio)) {
                     $dt = $ordenVenta->buscaOrdenVenta($id);
                     $fechaInicio = $dt[0]['fechacreacion'];
                 }
                 $intervalo2 = $this->date_diff(date('Y-m-d H:i:s', strtotime($fechaInicio)), date('Y-m-d H:i:s'));
                 $DOV['tiempoduracion'] = $intervalo2;
                 $exitoN2 = $ordenVenta->actualizaOrdenVenta($DOV, $id);
                 $ruta['ruta'] = "/almacen/confirmaorden";
                 $this->view->show("ruteador.phtml", $ruta);
             }
         }
     }
 }
예제 #4
0
 function actualiza()
 {
     $id = $_REQUEST['idProducto'];
     $data = $_REQUEST['Producto'];
     if (count($_FILES)) {
         $data['imagen'] = $_FILES['foto']['name'];
     }
     $producto = new Producto();
     $this->guardaImagenesFormulario($data['codigopa']);
     $exito = $producto->actualizaProducto($data, $id);
     /*print_r($_FILES);
     		echo '<pre>';
     		print_r($data);
     		echo 'exito= '.$exito .'</br>';
     		echo $id;
     		echo exit; */
     if ($exito) {
         $ruta['ruta'] = "/producto/lista/";
         $this->view->show("ruteador.phtml", $ruta);
     }
 }
예제 #5
0
 function autorizarventa()
 {
     if (!$_REQUEST['idOrdenVenta']) {
         $ordenVenta = new OrdenVenta();
         $opciones = new general();
         $url = "/" . $_REQUEST['url'];
         $data['Opcion'] = $opciones->buscaOpcionexurl($url);
         $data['Modulo'] = $opciones->buscaModulosxurl($url);
         $data['ordenVenta'] = $ordenVenta->pedidoxaprobar();
         $data['FormaPago'] = $this->formaPago();
         $this->view->show("ventas/aprobarpedido.phtml", $data);
     } else {
         $id = $_REQUEST['idOrdenVenta'];
         $ordenVenta = new OrdenVenta();
         if ($id != '' && $id != 0) {
             $dataBusqueda = $ordenVenta->buscarOrdenVentaxId($id);
         }
         if ($dataBusqueda[0]['vbventas'] != 1) {
             $estadoOrden = $_REQUEST['estadoOrden'];
             $dataOrdenVenta = $_REQUEST['Orden'];
             $dataDetalleOrdenVenta = $_REQUEST['DetalleOrdenVenta'];
             $detalleOrdenVenta = new DetalleOrdenVenta();
             $producto = new Producto();
             $dataOrdenVenta['vbventas'] = $estadoOrden == 1 ? 1 : 2;
             if ($dataOrdenVenta['vbventas'] == 2) {
                 $dataOrdenVenta['desaprobado'] = 1;
             }
             $productos = $_REQUEST['Producto'];
             $exito1 = $ordenVenta->actualizaOrdenVenta($dataOrdenVenta, $id);
             $cont = 0;
             if ($exito1) {
                 foreach ($dataDetalleOrdenVenta as $data) {
                     if ($dataOrdenVenta['vbventas'] == 2 || $data['estado'] == 0) {
                         //buscamos producto
                         $idproducto = $productos[$cont]['idproducto'];
                         $dataProducto = $producto->buscaProductoxId($idproducto);
                         $stockdisponibleA = $dataProducto[0]['stockdisponible'];
                         $stockdisponibleN = $stockdisponibleA + $productos[$cont]['cantsolicitada'];
                         $dataNuevo['stockdisponible'] = $stockdisponibleN;
                         //actualizamos es stockdisponible
                         $exitoP = $producto->actualizaProducto($dataNuevo, $idproducto);
                     } elseif ($data['estado'] == 1 && $dataOrdenVenta['vbventas'] == 1) {
                         //buscamos producto
                         $idproducto = $productos[$cont]['idproducto'];
                         $dataProducto = $producto->buscaProductoxId($idproducto);
                         $stockdisponibleA = $dataProducto[0]['stockdisponible'];
                         $stockdisponibleN = $stockdisponibleA + $productos[$cont]['cantsolicitada'] - $data['cantaprobada'];
                         $dataNuevo['stockdisponible'] = $stockdisponibleN;
                         //actualizamos es stockdisponible
                         $exitoP = $producto->actualizaProducto($dataNuevo, $idproducto);
                     }
                     $exito2 = $detalleOrdenVenta->actualizar($data['iddetalleordenventa'], $data);
                     $cont++;
                 }
                 if ($exito2) {
                     $ordenVentaDuracion = new ordenventaduracion();
                     $DDA = $ordenVentaDuracion->listaOrdenVentaDuracion($id, "creacion");
                     $dataDuracion['idordenventa'] = $id;
                     $intervalo = $this->date_diff(date('Y-m-d H:i:s', strtotime($DDA[0]['fechacreacion'])), date('Y-m-d H:i:s'));
                     $dataDuracion['tiempo'] = $intervalo;
                     $dataDuracion['referencia'] = 'ventas';
                     if (empty($DDA[0]['fechacreacion'])) {
                         $dataDuracion['tiempo'] = 'indefinido';
                     }
                     $exito3 = $ordenVentaDuracion->grabaOrdenVentaDuracion($dataDuracion);
                     $ruta['ruta'] = "/ventas/autorizarventa";
                     $this->view->show("ruteador.phtml", $ruta);
                     //$date3=date('Y-m-d H:i:s');
                     //$intervalo=$this->date_diff($date3,'2013-01-23 15:30:00');
                 }
             }
         } else {
             $ruta['ruta'] = "/ventas/autorizarventa";
             $this->view->show("ruteador.phtml", $ruta);
         }
     }
 }
예제 #6
0
 function aprobarPedido()
 {
     if (!isset($_REQUEST['idOrden'])) {
         $orden = new OrdenVenta();
         $data['ordenVenta'] = $orden->pedidoxaprobar(2);
         $data['FormaPago'] = $this->formaPago();
         $this->view->show("cobranza/aprobarpedido.phtml", $data);
     } else {
         $id = $_REQUEST['idOrden'];
         $estadoOrden = $_REQUEST['estadoOrden'];
         $dataOrdenVenta = $_REQUEST['Orden'];
         $ordenVenta = new OrdenVenta();
         $producto = new Producto();
         $dataOrdenVenta['vbcobranzas'] = $estadoOrden;
         if ($estadoOrden == 2) {
             $dataOrdenVenta['desaprobado'] = 1;
         }
         $productos = $_REQUEST['Producto'];
         $cantidadProducto = count($productos);
         $exito1 = $ordenVenta->actualizaOrdenVenta($dataOrdenVenta, $id);
         if ($exito1) {
             if ($estadoOrden == 2) {
                 for ($i = 0; $i < $cantidadProducto; $i++) {
                     //buscamos producto
                     $idproducto = $productos[$i]['idproducto'];
                     $dataProducto = $producto->buscaProductoxId($idproducto);
                     $stockdisponibleA = $dataProducto[0]['stockdisponible'];
                     $stockdisponibleN = $stockdisponibleA + $productos[$i]['cantaprobada'];
                     $dataNuevo['stockdisponible'] = $stockdisponibleN;
                     //actualizamos es stockdisponible
                     $exitoP = $producto->actualizaProducto($dataNuevo, $idproducto);
                 }
             }
             $ordenVentaDuracion = new ordenventaduracion();
             $DDA = $ordenVentaDuracion->listaOrdenVentaDuracion($id, "ventas");
             $dataDuracion['idordenventa'] = $id;
             $intervalo = $this->date_diff(date('Y-m-d H:i:s', strtotime($DDA[0]['fechacreacion'])), date('Y-m-d H:i:s'));
             $dataDuracion['tiempo'] = $intervalo;
             $dataDuracion['referencia'] = 'cobranza';
             if (empty($DDA[0]['fechacreacion'])) {
                 $dataDuracion['tiempo'] = 'indefinido';
             }
             $exito3 = $ordenVentaDuracion->grabaOrdenVentaDuracion($dataDuracion);
             $ruta['ruta'] = "/cobranza/aprobarpedido";
             $this->view->show("ruteador.phtml", $ruta);
         }
     }
 }