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);
             }
         }
     }
 }
 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);
         }
     }
 }
 function graba()
 {
     $ordenVenta = new OrdenVenta();
     $detalleOrdenVenta = new DetalleOrdenVenta();
     $cliente = new Actor();
     $producto = new producto();
     $cliente = $this->AutoLoadModel('cliente');
     $clienteVendedor = $this->AutoLoadModel('clientevendedor');
     $ordenVentaDuracion = $this->AutoLoadModel('ordenventaduracion');
     $dataOrdenVenta = $_REQUEST['OrdenVenta'];
     $dataOrdenVenta['tipo_letra'] = $_REQUEST['tipoLetra'];
     $dataOrdenVenta['importeaprobado'] = $dataOrdenVenta['importeov'];
     $dataOrdenVenta['codigov'] = "";
     $dataDetalleOrdenVenta = $_REQUEST['DetalleOrdenVenta'];
     $exito1 = $ordenVenta->grabar($dataOrdenVenta);
     //Actualiza saldo de linea de crédito:FERNANDO GARCIA
     /*$saldo=$dataOrdenVenta['importeov'];
     		$idcliente=$dataOrdenVenta['idclientezona'];
     		$objposicion=New ClientePosicion();
     		$exito=$objposicion->actualizasaldoPosicion($saldo,$idcliente);						
     		print_r($dataOrdenVenta);*/
     //$exito2=$cliente->ActualizaActor(array('transporte'=>$dataOrdenVenta['idtransporte']),$dataOrdenVenta['idcliente']);
     if ($exito1) {
         $codigov = strtoupper($ordenVenta->generaCodigo());
         $dataOrden['codigov'] = $codigov;
         $exitoA = $ordenVenta->actualizaOrdenVenta($dataOrden, $exito1);
         $dataCliente['idultimaorden'] = $exito1;
         $exitoc = $cliente->actualizaCliente($dataCliente, "idcliente='" . $dataOrdenVenta['idcliente'] . "'");
         $dataCV = $clienteVendedor->buscarxid($dataOrdenVenta['idcliente']);
         if (!empty($dataCV)) {
             $dataClienteVendedor['idvendedor'] = $dataOrdenVenta['idvendedor'];
             $exitocv = $clienteVendedor->actualizaClienteVendedor($dataOrdenVenta['idcliente'], $dataClienteVendedor);
         }
         foreach ($dataDetalleOrdenVenta as $data) {
             $data['idordenventa'] = $exito1;
             $exito3 = $detalleOrdenVenta->graba($data);
             //descontamos el stock disponible
             $idProducto = $data['idproducto'];
             $dataBusqueda = $producto->buscaProducto($idProducto);
             $stockdisponibleA = $dataBusqueda[0]['stockdisponible'];
             $data2['stockdisponible'] = $stockdisponibleA - $data['cantsolicitada'];
             $exitoP = $producto->actualizaProducto($data2, $idProducto);
         }
         $dataDuracion['idordenventa'] = $exito1;
         $dataDuracion['tiempo'] = strtotime(0);
         $dataDuracion['referencia'] = 'creacion';
         $exito4 = $ordenVentaDuracion->grabaOrdenVentaDuracion($dataDuracion);
         if ($exito3) {
             /**
              * Se modifica esta seccion a pedido del cliente por cuestiones de negocio.
              */
             //$ruta['ruta']="/ventas/creaguiaped";
             if ($_SESSION['idrol'] == 25) {
                 $ruta['ruta'] = "/vendedor/misordenes";
                 $this->view->show("ruteador.phtml", $ruta);
             } else {
                 $ruta['ruta'] = "/ventas/creaguiaped/" . $codigov;
                 $this->view->show("ruteador.phtml", $ruta);
             }
         }
     }
 }
 function listaProductosGuiaRemision()
 {
     $idGuia = $_REQUEST['id'];
     $detalleOrdenVenta = new DetalleOrdenVenta();
     $data = $detalleOrdenVenta->listaDetalleOrdenVenta($idGuia);
     $unidadMedida = $this->unidadMedida();
     for ($i = 0; $i < count($data); $i++) {
         echo "<tr>";
         echo '<td>' . ($i + 1) . '</td>';
         echo '<td>' . $data[$i]['codigov'] . '</td>';
         echo '<td>' . $data[$i]['nompro'] . '</td>';
         echo '<td>' . $unidadMedida[$data[$i]['unidadmedida']] . '</td>';
         echo '<td>' . $data[$i]['cantdespacho'] . '</td>';
         echo "</tr>";
     }
 }