function genguiaremi()
 {
     if (count($_REQUEST) == 6) {
         $this->view->show('/facturacion/generacionguiaremision.phtml');
     } else {
         $documento = new Documento();
         $ordenVenta = new OrdenVenta();
         $dataGuiaRemision = $_REQUEST['GuiaRemision'];
         $dataGuiaRemision['nombredoc'] = 4;
         $modelpdf = $this->AutoLoadModel('pdf');
         $exitofactura = $modelpdf->listaGuiasEmitidasNoAnuladas($dataGuiaRemision['idordenventa']);
         if (count($exitofactura) == 0) {
             //si usamos esto debemos grabar en la orden de venta
             //$dataOrdenVenta['guiaremision']=1;
             $idordenventa = $dataGuiaRemision['idordenventa'];
             $dataOrdenVenta = $_REQUEST['ordenVenta'];
             $dataOrdenVenta['guiaremision'] = 1;
             $exito = $ordenVenta->actualizaOrdenVenta($dataOrdenVenta, $idordenventa);
             if ($exito) {
                 $id = $documento->grabaDocumento($dataGuiaRemision);
                 $movimiento = new Movimiento();
                 $filtro = " idtipooperacion='1' and idordenventa='" . $idordenventa . "'";
                 $dataMovimiento = $movimiento->buscaMovimientoxfiltro($filtro);
                 if (!empty($dataMovimiento) and $dataMovimiento[0]['iddocumentotipo'] != 1 and $dataMovimiento[0]['iddocumentotipo'] != 2) {
                     $dataM['iddocumentotipo'] = 4;
                     $dataM['serie'] = $dataGuiaRemision['serie'];
                     $dataM['ndocumento'] = $dataGuiaRemision['numdoc'];
                     $dataM['essunat'] = 1;
                     $exito = $movimiento->actualizaMovimiento($dataM, $filtro);
                 }
                 $this->view->show('/facturacion/generacionguiaremision.phtml');
             }
         } else {
             $this->view->show('/facturacion/generacionguiaremision.phtml');
         }
     }
 }
 function regOrdenSalida()
 {
     if (!$_REQUEST['idOrdenVenta']) {
         $ordenVenta = new OrdenVenta();
         $opciones = new general();
         $actorrol = new actorrol();
         $url = "/" . $_REQUEST['url'];
         $data['Despachador'] = $actorrol->actoresxRol(30);
         $data['Verificador'] = $actorrol->actoresxRol(31);
         $data['Opcion'] = $opciones->buscaOpcionexurl($url);
         $data['Modulo'] = $opciones->buscaModulosxurl($url);
         $data['ordenVenta'] = $ordenVenta->pedidoxaprobar(5);
         $data['FormaPago'] = $this->formaPago();
         $this->view->show("/almacen/regordenpedido.phtml", $data);
     } else {
         $id = $_REQUEST['idOrdenVenta'];
         $dataOrdenVenta = $_REQUEST['Orden'];
         $ordenVenta = new OrdenVenta();
         $exito1 = $ordenVenta->actualizaOrdenVenta($dataOrdenVenta, $id);
         if ($exito1) {
             //grabamos las series
             $detOrden = $this->AutoLoadModel('detalleordenventa');
             $detalleOrdenVenta = $_REQUEST['DetalleOrdenVenta'];
             $cantidad = count($detalleOrdenVenta);
             for ($i = 0; $i < $cantidad; $i++) {
                 $data['serie'] = $detalleOrdenVenta[$i]['serie'];
                 $exito2 = $detOrden->actualizar($detalleOrdenVenta[$i]['iddetalleordenventa'], $data);
             }
             //graba el tiempo que demoro ser confirmado
             $ordenVentaDuracion = new ordenventaduracion();
             $DDA = $ordenVentaDuracion->listaOrdenVentaDuracion($id, "credito");
             $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'] = 'indefinido';
             }
             $dataDuracion['referencia'] = 'despacho';
             $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/regOrdenSalida";
             $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 verificarCobro()
 {
     $idOrdenVenta = $_REQUEST['idOrdenVenta'];
     //$idOrdenVenta=$_REQUEST['id'];
     $ordencobro = new OrdenCobro();
     $ordenventa = new OrdenVenta();
     $dataOrdenCobro = $ordencobro->buscaxFiltro("idordenventa='{$idOrdenVenta}' and situacion='Pendiente'");
     if (empty($dataOrdenCobro)) {
         $data['situacion'] = "cancelado";
         $data['fechaCancelado'] = date('Y-m-d');
         $exito = $ordenventa->actualizaOrdenVenta($data, $idOrdenVenta);
         echo $exito;
     } else {
         $data['situacion'] = "Pendiente";
         $data['fechaCancelado'] = null;
         $exito = $ordenventa->actualizaOrdenVenta($data, $idOrdenVenta);
         echo $exito;
         echo $cantidadOrdenCobro;
     }
 }
 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 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);
         }
     }
 }