Info(); $smarty->assign('Usr', $Usr); if(isset($_POST['action'])) $_POST['type'] = $_POST['action']; switch($_POST["type"]){ case 'addVenta': $smarty->assign('DOC_ROOT', DOC_ROOT); $smarty->display(DOC_ROOT.'/templates/boxes/agregar-venta-popup.tpl'); break; case 'cancelVenta': $ventaId = $_POST['ventaId']; $venta->setVentaId($ventaId); $venta->setUsuarioId($_SESSION['loginKey']); if(!$venta->CancelVenta()){ echo 'fail[#]'; exit; } //Devolvemos los productos a inventario $venta->DevolverProductos(); $venta->setSucursalId($sucursalId); $ventas = $venta->Enumerate(); $items = array(); foreach($ventas['items'] as $res){ $fecha = date('d-m-Y',strtotime($res['fecha'])); $hora = date('H:i:s',strtotime($res['fecha'])); $fecha = $util->FormatDateDMMMY($fecha); $res['fecha'] = $fecha.' '.$hora; $usuario->setUsuarioId($res['usuarioId']); $res['usuario'] = utf8_encode($usuario->GetNameById()); $sucursal->setSucursalId($res['sucursalId']); $res['sucursal'] = urldecode($sucursal->GetNameById()); $items[] = $res; } $ventas['items'] = $items; echo 'ok[#]'; $smarty->display(DOC_ROOT.'/templates/boxes/status.tpl'); echo '[#]'; $smarty->assign('ventas', $ventas); $smarty->assign('DOC_ROOT', DOC_ROOT); $smarty->display(DOC_ROOT.'/templates/lists/ventas.tpl'); break; case 'cancelVentaCentral': $ventaId = $_POST['ventaId']; $venta->setVentaId($ventaId); $infV = $venta->Info(); $venta->setUsuarioId($_SESSION['loginKey']); if(!$venta->CancelVenta()){ echo 'fail[#]'; exit; } //Devolvemos los productos a inventario $venta->DevolverProductos(); $venta->setSucursalId($infV['sucursalId']); $ventas = $venta->Enumerate(); $items = array(); foreach($ventas['items'] as $res){ $fecha = date('d-m-Y',strtotime($res['fecha'])); $hora = date('H:i:s',strtotime($res['fecha'])); $fecha = $util->FormatDateDMMMY($fecha); $res['fecha'] = $fecha.' '.$hora; $usuario->setUsuarioId($res['usuarioId']); $res['usuario'] = utf8_encode($usuario->GetNameById()); $sucursal->setSucursalId($res['sucursalId']); $res['sucursal'] = urldecode($sucursal->GetNameById()); $items[] = $res; } $ventas['items'] = $items; echo 'ok[#]'; $smarty->display(DOC_ROOT.'/templates/boxes/status.tpl'); echo '[#]'; $smarty->assign('ventas', $ventas); $smarty->assign('DOC_ROOT', DOC_ROOT); $smarty->display(DOC_ROOT.'/templates/lists/ventas.tpl'); break; case 'deleteVenta2': $ventaId = $_POST['ventaId']; $venta->setVentaId($ventaId); if(!$venta->DeleteVenta2()){ echo 'fail[#]'; exit; } //Devolvemos los productos a inventario $venta->DevolverProductos2(); $venta->setSucursalId($sucursalId); $ventas = $venta->Enumerate2(); $items = array(); foreach($ventas['items'] as $res){ $fecha = date('d-m-Y',strtotime($res['fecha'])); $hora = date('H:i:s',strtotime($res['fecha'])); $fecha = $util->FormatDateDMMMY($fecha); $res['fecha'] = $fecha.' '.$hora; $usuario->setUsuarioId($res['usuarioId']); $res['usuario'] = utf8_encode($usuario->GetNameById()); $sucursal->setSucursalId($res['sucursalId']); $res['sucursal'] = urldecode($sucursal->GetNameById()); $items[] = $res; } $ventas['items'] = $items; echo 'ok[#]'; $smarty->display(DOC_ROOT.'/templates/boxes/status.tpl'); echo '[#]'; $smarty->assign('ventas', $ventas); $smarty->assign('DOC_ROOT', DOC_ROOT); $smarty->display(DOC_ROOT.'/templates/lists/ventas.tpl'); break; case 'cobrarVta': $vendedorId = $_POST['vendedorId']; $_SESSION['pagosVta'] = array(); $conceptos = $_SESSION['conceptos']; if(count($conceptos) == 0){ echo 'fail[#]'; echo 'Debe agregar al menos un producto.'; exit; } if($vendedorId == ''){ echo 'fail[#]'; echo 'Por favor, seleccione al vendedor.'; exit; } $abonoMon = 0; $saldoAbonar = 0; $subtotal = 0; foreach($conceptos as $res){ if($res['descuento'] == '100%') $res['total'] = 0; if($res['promocionId']){ $promocion->setPromocionId($res['promocionId']); $infPR = $promocion->Info(); if($infPR['aplica'] == 'CompraXabonoM'){ $abonoMon = 1; $saldoAbonar += ($infPR['valorDesc'] / 100) * $res['total']; } } $subtotal += $res['total']; } $saldoAbonar = number_format($saldoAbonar,2,'.',''); $total = $subtotal; //Obtenemos el total si es Venta por Devolucion $infDev = $_SESSION['infDev']; if($infDev){ $card['metodoPagoId'] = 6; $card['cantidad'] = $infDev['total']; $totalPagado = $infDev['total']; if($totalPagado < $total) $porPagar = $total - $totalPagado; else $cambio = $totalPagado - $total; }else{ $card['metodoPagoId'] = 1; $card['cantidad'] = ''; $totalPagado = 0; $porPagar = 0; $cambio = 0; } //$card['saldoMon'] = '0.00'; $pagos[] = $card; $_SESSION['pagosVta'] = $pagos; $metodosPago = $metodoPago->EnumerateAll(); $metodosPago = $util->EncodeResult($metodosPago); echo 'ok[#]'; $smarty->assign('abonoMon', $abonoMon); $smarty->assign('saldoAbonar', $saldoAbonar); $smarty->assign('pagos', $pagos); $smarty->assign('total', $total); $smarty->assign('totalPagado', $totalPagado); $smarty->assign('porPagar', $porPagar); $smarty->assign('cambio', $cambio); $smarty->assign('metodosPago', $metodosPago); $smarty->assign('DOC_ROOT', DOC_ROOT); $smarty->display(DOC_ROOT.'/templates/boxes/cobrar-venta-popup.tpl'); break; case 'cobrarVtaDesc': $ventaId = $_POST['ventaId']; $_SESSION['pagosVta'] = array(); $venta->setVentaId($ventaId); $info = $venta->Info(); $total = number_format($info['totalDesc'],2,'.',''); //Agregamos el Pago en Efectivo por default $card['metodoPagoId'] = 1; $card['cantidad'] = ''; $card['saldoFav'] = '0.00'; //$card['saldoMon'] = '0.00'; $pagos[] = $card; $_SESSION['pagosVta'] = $pagos; $metodosPago = $metodoPago->EnumerateAll(); $metodosPago = $util->EncodeResult($metodosPago); echo 'ok[#]'; $smarty->assign('pagos', $pagos); $smarty->assign('ventaId', $ventaId); $smarty->assign('total', $total); $smarty->assign('metodosPago', $metodosPago); $smarty->assign('DOC_ROOT', DOC_ROOT); $smarty->display(DOC_ROOT.'/templates/boxes/cobrar-venta-popup.tpl'); break; case 'buscarProducto': $proveedores = $proveedor->EnumerateAll(); $proveedores = $util->EncodeResult($proveedores); $categorias = $prodCat->EnumerateAll(); $categorias = $util->EncodeResult($categorias); $categorias = $prodCat->EnumerateAll(); $categorias = $util->EncodeResult($categorias); $atribVal->setAtributoId(1); $tallas = $atribVal->EnumerateAll(); $tallas = $util->EncodeResult($tallas); $atribVal->setAtributoId(2); $colores = $atribVal->EnumerateAll(); $colores = $util->EncodeResult($colores); echo 'ok[#]'; $smarty->assign('tallas', $tallas); $smarty->assign('colores', $colores); $smarty->assign('categorias', $categorias); $smarty->assign('proveedores', $proveedores); $smarty->assign('DOC_ROOT', DOC_ROOT); $smarty->display(DOC_ROOT.'/templates/boxes/buscar-producto-venta-popup.tpl'); break; case 'saveVenta': $tipo = $_POST['tipo']; $codigoAbonar = trim($_POST['codigoAbonar']); $idVendedor = $_POST['idVendedor']; if($idVendedor == ''){ echo 'fail[#]'; echo 'Por favor, seleccione al vendedor.'; exit; } //Guardamos los Pagos $resPagos = $_POST['metodoPago']; $resPagos = $util->CheckArray($resPagos); $pagoTotal = 0; $pagosVta = array(); foreach($resPagos as $k => $val){ $card['metodoPagoId'] = $val; $card['cantidad'] = trim($_POST['cantidad_'.$k]); $idVta = trim($_POST['idVta_'.$k]); $card['idVta'] = $idVta; $card['devolucionId'] = $devolucionId; $pagoTotal += $card['cantidad']; $pagosVta[] = $card; } if(count($pagosVta) == 0 && $tipo != 'descuento'){ echo 'fail[#]'; echo 'Debe agregar al menos un pago.'; exit; } foreach($pagosVta as $res){ if($res['metodoPagoId'] == ''){ echo 'fail[#]'; echo utf8_encode('Debe elegir la Forma de Pago.'); exit; } if($res['cantidad'] == ''){ echo 'fail[#]'; echo 'Debe ingresar la cantidad.'; exit; } }//foreach $conceptos = $_SESSION['conceptos']; if(count($conceptos) == 0){ echo 'fail[#]'; echo 'Debe agregar al menos un producto.'; exit; } //Obtenemos los Totales $abonoMon = 0; $saldoAbonar = 0; $total = 0; $promocionId = 0; foreach($conceptos as $res){ if($res['descuento'] == '100%') $res['total'] = 0; $total += $res['total']; if($res['promocionId']){ $promocionId = $res['promocionId']; $promocion->setPromocionId($res['promocionId']); $infPR = $promocion->Info(); if($infPR['aplica'] == 'CompraXabonoM'){ $abonoMon = 1; $saldoAbonar += ($infPR['valorDesc'] / 100) * $res['total']; } }//if }//foreach if($abonoMon){ if($codigoAbonar != ''){ $saldoAbonar = number_format($saldoAbonar,2,'.',''); $monedero->setCodigo($codigoAbonar); $monederoId = $monedero->GetIdByCodigo(); if(!$monederoId){ echo 'fail[#]'; echo 'El Codigo del Monedero o Tarjeta No existe. Por favor, verifique.'; exit; } } }//if //Obtenemos los Totales $total = 0; foreach($conceptos as $res){ if($res['descuento'] == '100%') $res['total'] = 0; $total += $res['total']; } //Checamos si es Venta de Mayoreo, ya que no aplica en el Buen Fin. if($tipo == 'descuento'){ $idPromo = $promocion->GetBuenFinIdActivo(); if($idPromo){ if($total >= 2000){ $promocion->setPromocionId($idPromo); $promo = $promocion->Info(); $fechaHoy = date('Y-m-d'); if($fechaHoy >= $promo['fechaIni'] && $fechaHoy <= $promo['fechaFin']){ echo 'fail[#]'; echo 'El descuento No Aplica para compras de mayoreo durante el Buen Fin.'; exit; } } } } if($pagoTotal < $total && $tipo != 'descuento'){ echo 'addPago[#]'; exit; } $sucursal->setSucursalId($sucursalId); $porcIva = $sucursal->GetIva(); $porcIva = $porcIva / 100; $subtotal = $total / (1 + $porcIva); $subtotal = number_format($subtotal,2,'.',''); $iva = $subtotal * $porcIva; $iva = number_format($iva,2,'.',''); $fecha = date('Y-m-d H:i:s'); $venta->setSucursalId($sucursalId); $folio = $venta->GetNextFolio(); $venta->setSucursalId($sucursalId); $venta->setUsuarioId($_SESSION['loginKey']); $venta->setVendedorId($idVendedor); $venta->setFolio($folio); $venta->setFecha($fecha); $venta->setPromocionId($promocionId); $venta->setSubtotal($subtotal); $venta->setIva($iva); $venta->setTotal($total); $venta->setPago($pagoTotal); if($tipo == 'descuento') $venta->setStatus('Descuento'); else $venta->setStatus('Activo'); $ventaId = $venta->Save(); $ventaIdActual = $ventaId; //Guardamos los Productos foreach($conceptos as $res){ $prodItemId = $res['prodItemId']; $producto->setProdItemId($prodItemId); $info = $producto->GetInfoItemById(); $venta->setVentaId($ventaId); $venta->setPromocionId($res['promocionId']); $venta->setCantidad($res['cantidad']); $venta->setPrecioUnitario($res['precio']); $venta->setTotal($res['total']); if($res['tipoProd'] == 'producto'){ $venta->setProdItemId($prodItemId); $venta->setProductoId($info['productoId']); $venta->setMonederoId(0); }else{ $venta->setMonederoId($prodItemId); $venta->setProdItemId(0); $venta->setProductoId(0); $monedero->setMonederoId($prodItemId); $monedero->setStatus('Vendido'); $monedero->UpdateStatus(); } if($res['descuento'] > 0){ $venta->setTipoDesc('Porcentaje'); $venta->setValDesc(100); }else{ $venta->setTipoDesc(''); $venta->setValDesc(0); } $venta->SaveProducto(); //Actualizamos el Status de los Productos a Vendido $venta->setUsuarioId($_SESSION['loginKey']); if($res['tipoProd'] == 'producto'){ $venta->setProdItemId($info['productoId']); $venta->VenderProductos(); } }//foreach //Guardamos la Devolucion if(count($_SESSION['infDev'])){ $ventaId = $_SESSION['infDev']['ventaId']; //Obtenemos la informacion de la Venta $devolucion->setVentaId($ventaId); $infV = $devolucion->InfoVenta(); $totalP = $devolucion->GetCantAllProds(); $fecha = date('Y-m-d H:i:s'); $conceptosD = $_SESSION['conceptosD']; $totalD = 0; foreach($conceptosD as $res) $totalD += $res['total']; $devolucion->setVentaId($ventaId); $devolucion->setSucursalId($sucursalId); $devolucion->setUsuarioId($_SESSION['loginKey']); $devolucion->setFecha($fecha); $devolucion->setTotal($totalD); $devolucionId = $devolucion->Save(); //Guardamos los Productos foreach($conceptosD as $res){ $prodItemId = $res['prodItemId']; $producto->setProdItemId($prodItemId); $info = $producto->GetInfoItemById(); $devolucion->setDevolucionId($devolucionId); $devolucion->setProdItemId($prodItemId); $devolucion->setProductoId($info['productoId']); $devolucion->setCantidad($res['cantidad']); $devolucion->setPrecioUnitario($res['precio']); $devolucion->setTotal($res['total']); $devolucion->SaveProducto(); //Marcamos como devueltos los productos $venta->setVentaId($_SESSION['infDev']['ventaId']); $venta->setProductoId($info['productoId']); $venta->setCantidad($res['cantidad']); $venta->MarcarProdDevueltos(); //Devolvemos los productos $venta->DevolverProdsByCant2(); }//foreach //Cancelamos el ticket y creamos el nuevo $devolucion->setSucursalId($sucursalId); $devolucion->setDevolucionId($devolucionId); $devolucion->CancelarTicket(); }//if //Fin de la Devolucion //Guardamos los Pagos foreach($pagosVta as $res){ $venta->setVentaId($ventaIdActual); $venta->setMetodoPagoId($res['metodoPagoId']); $venta->setMonederoId($res['monederoId']); $venta->setCantidad($res['cantidad']); if($res['metodoPagoId'] == 6) $venta->setDevolucionId($devolucionId); else $venta->setDevolucionId(0); $venta->SavePago(); }//foreach $_SESSION['pagosVta'] = array(); $conceptos = array(); $_SESSION['conceptos'] = array(); //Generamos Registro en la Tabla ControlVenta $venta->setUsuarioId($_SESSION['loginKey']); $venta->setSucursalId($sucursalId); $venta->ControlVenta(); //Checamos nuevamente si se descontaron los productos de inventario. $venta->setVentaId($ventaIdActual); $venta->CheckProdInv(); $_SESSION['conceptosD'] = array(); $_SESSION['infDev'] = array(); echo 'ok[#]'; echo $ventaIdActual; echo '[#]'; $smarty->assign('conceptos', $conceptos); $smarty->assign('DOC_ROOT', DOC_ROOT); $smarty->display(DOC_ROOT.'/templates/lists/conceptos.tpl'); echo '[#]'; echo '0.00'; echo '[#]'; echo '0.00'; echo '[#]'; echo '0.00'; break; case 'saveVentaDesc': $ventaId = $_POST['idVta']; $resPagos = $_POST['metodoPago']; $resPagos = $util->CheckArray($resPagos); $pagoTotal = 0; $pagosVta = array(); foreach($resPagos as $k => $val){ $card['metodoPagoId'] = $val; $card['cantidad'] = trim($_POST['cantidad_'.$k]); $idVta = trim($_POST['idVta_'.$k]); $card['idVta'] = $idVta; $card['devolucionId'] = $devolucionId; $pagoTotal += $card['cantidad']; $pagosVta[] = $card; } if(count($pagosVta) == 0){ echo 'fail[#]'; echo 'Debe agregar al menos un pago.'; exit; } foreach($pagosVta as $res){ if($res['metodoPagoId'] == ''){ echo 'fail[#]'; echo utf8_encode('Debe elegir la Forma de Pago.'); exit; } if($res['cantidad'] == ''){ echo 'fail[#]'; echo 'Debe ingresar la cantidad.'; exit; } }//foreach $venta->setVentaId($ventaId); $info = $venta->Info(); $total = number_format($info['totalDesc'],2,'.',''); if($pagoTotal < $total){ //echo 'fail[#]'; //echo 'El Total Pagado es menor que el Total de la Venta. Por favor, verifique.'; echo 'addPago[#]'; exit; } $venta->setVentaId($ventaId); $venta->setStatus('Activo'); $venta->UpdateStatus(); $fecha = date('Y-m-d H:i:s'); //Guardamos los Pagos $pagoTotal = 0; foreach($pagosVta as $res){ $venta->setVentaId($ventaId); $venta->setMetodoPagoId($res['metodoPagoId']); $venta->setMonederoId($res['monederoId']); $venta->setCantidad($res['cantidad']); $venta->setDevolucionId($res['devolucionId']); $pagoTotal += $res['cantidad']; $venta->SavePago(); //Actualizamos el Status a Usado = 1 $devolucion->setVentaId($res['idVta']); $devolucion->UpdateUsado(); /* //Guardamos registro en el historial del monedero if($res['monederoId']){ $monedero->setFecha($fecha); $monedero->setMonederoId($res['monederoId']); $monedero->setVentaId($ventaId); $monedero->setTotal($res['cantidad']); $monedero->setTipo('Pago'); $monedero->SaveHistorial(); //Actualizamos el Saldo $monedero->RemoveSaldo(); }//if */ }//foreach $venta->setVentaId($ventaId); $venta->setPago($pagoTotal); $venta->UpdateTotalPago(); $_SESSION['pagosVta'] = array(); $conceptos = array(); $_SESSION['conceptos'] = array(); echo 'ok[#]'; echo $ventaId; break; case 'saveEspera': $vendedorId = $_POST['vendedorId']; $conceptos = $_SESSION['conceptos']; if(count($conceptos) == 0){ echo 'fail[#]'; echo 'Debe agregar al menos un producto.'; exit; } $tienePromo = false; foreach($conceptos as $res){ if($res['promocionId'] != ''){ $tienePromo = true; break; } } if($vendedorId == ''){ echo 'fail[#]'; echo 'Por favor, seleccione al vendedor.'; exit; } if($tienePromo){ echo 'fail[#]'; echo 'La venta no se puede poner en espera ya que tiene una promocion aplicada.'; echo ' Por favor, verifique.'; exit; } //Obtenemos los Totales $total = 0; $promocionId = 0; foreach($conceptos as $res){ if($res['descuento'] == '100%') $res['total'] = 0; $total += $res['total']; if($res['promocionId']) $promocionId = $res['promocionId']; } //Obtenemos los Totales $sucursal->setSucursalId($sucursalId); $porcIva = $sucursal->GetIva(); $porcIva = $porcIva / 100; $subtotal = $total / (1 + $porcIva); $subtotal = number_format($subtotal,2,'.',''); $iva = $subtotal * $porcIva; $iva = number_format($iva,2,'.',''); $venta->setSucursalId($sucursalId); $venta->setVendedorId($vendedorId); $venta->setUsuarioId($_SESSION['loginKey']); $venta->setFecha(date('Y-m-d H:i:s')); $venta->setPromocionId($promocionId); $venta->setSubtotal($subtotal); $venta->setIva($iva); $venta->setTotal($total); $venta->setPago($pagoTotal); $venta->setStatus('Activo'); $ventaId = $venta->Save2(); //Guardamos los Productos foreach($conceptos as $res){ $prodItemId = $res['prodItemId']; $producto->setProdItemId($prodItemId); $info = $producto->GetInfoItemById(); $venta->setVentaId($ventaId); $venta->setPromocionId($res['promocionId']); $venta->setCantidad($res['cantidad']); $venta->setPrecioUnitario($res['precio']); $venta->setTotal($res['total']); if($res['tipoProd'] == 'producto'){ $venta->setProdItemId($prodItemId); $venta->setProductoId($info['productoId']); $venta->setMonederoId(0); }else{ $venta->setMonederoId($prodItemId); $venta->setProdItemId(0); $venta->setProductoId(0); } if($res['descuento'] > 0){ $venta->setTipoDesc('Porcentaje'); $venta->setValDesc(100); }else{ $venta->setTipoDesc(''); $venta->setValDesc(0); } $venta->SaveProducto2(); //Actualizamos el Status de los Productos a Vendido $venta->setUsuarioId($_SESSION['loginKey']); if($res['tipoProd'] == 'producto') $venta->VenderProductos2(); }//foreach $conceptos = array(); $_SESSION['conceptos'] = array(); //Generamos Registro en la Tabla ControlVenta $venta->setUsuarioId($_SESSION['loginKey']); $venta->setSucursalId($sucursalId); $venta->ControlVenta(); echo 'ok[#]'; break; case 'cancelarVenta': $_SESSION['pagosVta'] = array(); $conceptos = $_SESSION['conceptos']; $conceptos = $util->CheckArray($conceptos); //Desapartamos los productos foreach($conceptos as $res){ $venta->setCantidad($res['cantidad']); $venta->setSucursalId($sucursalId); $venta->setProductoId($res['productoId']); $venta->setUsuarioId($_SESSION['loginKey']); $venta->DesapartarProducts(); } $conceptos = array(); $_SESSION['conceptos'] = array(); $_SESSION['conceptosD'] = array(); $_SESSION['infDev'] = array(); //Generamos Registro en la Tabla ControlVenta $venta->setUsuarioId($_SESSION['loginKey']); $venta->setSucursalId($sucursalId); $venta->ControlVenta(); echo 'ok[#]'; $smarty->assign('conceptos', $conceptos); $smarty->assign('DOC_ROOT', DOC_ROOT); $smarty->display(DOC_ROOT.'/templates/lists/conceptos.tpl'); break; case 'limpiarForm': $conceptos = array(); echo 'ok[#]'; $venta->setSucursalId($sucursalId); echo $venta->GetNextFolio(); echo '[#]'; $smarty->assign('conceptos', $conceptos); $smarty->assign('DOC_ROOT', DOC_ROOT); $smarty->display(DOC_ROOT.'/templates/lists/conceptos.tpl'); break; case 'checkMonedero': $codigo = trim($_POST['codigo']); if($codigo == ''){ echo 'fail[#]'; echo 'Debe ingresar el Codigo del Monedero o Tarjeta'; exit; } $monedero->setCodigo($codigo); $monederoId = $monedero->GetIdByCodigo(); if($monederoId){ $monedero->setMonederoId($monederoId); $infM = $monedero->Info(); echo 'ok[#]'; echo number_format($infM['saldo'],2); }else{ echo 'fail[#]'; echo 'El Codigo del Monedero o Tarjeta No existe. Por favor, verifique.'; } break; case 'checkSaldo': $ventaId = $_POST['ventaId']; if($ventaId == ''){ echo 'fail[#]'; echo 'Debe ingresar el No. de Ticket.'; exit; } $devolucion->setVentaId($ventaId); $saldo = $devolucion->GetSaldo(); echo 'ok[#]'; echo number_format($saldo,2); break; case 'getProdInfoVta': $productoId = $_POST['productoId']; $producto->setProductoId($productoId); $infP = $producto->Info(); $producto->setCodigoBarra($infP['codigoBarra']); $producto->setProductoId(0); $prodItemId = $producto->GetProductByCodigo(); $inventario->setSucursalId($sucursalId); $inventario->setProductoId($productoId); $disponible = $inventario->GetDispByProd(); $producto->setSucursalId($sucursalId); $producto->setProductoId($productoId); $precioVentaIva = $producto->GetVentaPrice(); echo 'ok[#]'; echo $precioVentaIva; echo '[#]'; echo $disponible; echo '[#]'; echo utf8_encode($infP['modelo']); echo '[#]'; echo $prodItemId; break; case 'getProdInfoVtaByCode': $codigoBarra = $_POST['codigoBarra']; $producto->setCodigoBarra($codigoBarra); $prodItemId = $producto->GetActiveProductByCodigo(); $producto->setProdItemId($prodItemId); $info = $producto->GetInfoItemById(); $producto->setProductoId($info['productoId']); $infP = $producto->Info(); $producto->setSucursalId($sucursalId); $precioVentaIva = $producto->GetVentaPrice(); $inventario->setSucursalId($sucursalId); $inventario->setProductoId($info['productoId']); $disponible = $inventario->GetDispByProd(); $producto->setProdItemId($prodItemId); $nombre = $producto->GetModeloById(); echo 'ok[#]'; echo $precioVentaIva; echo '[#]'; echo $disponible; echo '[#]'; echo utf8_encode($nombre); echo '[#]'; echo $prodItemId; break; case 'getMonInfoVta': $monederoId = $_POST['monederoId']; $monedero->setMonederoId($monederoId); $infM = $monedero->Info(); echo 'ok[#]'; echo number_format($infM['saldo'],2); break; case 'updateCambio': $resPagos = $_POST['metodoPago']; $resPagos = $util->CheckArray($resPagos); //Obtenemos el Total de los Pagos $totalPago = 0; foreach($resPagos as $k => $val) $totalPago += trim($_POST['cantidad_'.$k]); //Obtenemos el Total de los Productos $conceptos = $_SESSION['conceptos']; $subtotal = 0; foreach($conceptos as $res){ if($res['descuento'] == '100%') $res['total'] = 0; $subtotal += $res['total']; } /* $sucursal->setSucursalId($sucursalId); $porcIva = $sucursal->GetIva(); $porcIva = $porcIva / 100; $iva = $subtotal * $porcIva; $iva = number_format($iva,2,'.',''); $total = $subtotal + $iva; */ $total = $subtotal; $cambio = 0; if($totalPago > $total) $cambio = $totalPago - $total; $porPagar = 0; if($totalPago < $total) $porPagar = $total - $totalPago; echo 'ok[#]'; echo number_format($totalPago,2); echo '[#]'; echo number_format($porPagar,2); echo '[#]'; echo number_format($cambio,2); break; case 'updateCambioDesc': $ventaId = $_POST['idVta']; $resPagos = $_POST['metodoPago']; $resPagos = $util->CheckArray($resPagos); //Obtenemos el Total de los Pagos $totalPago = 0; foreach($resPagos as $k => $val) $totalPago += trim($_POST['cantidad_'.$k]); //Obtenemos el Total de los Productos $venta->setVentaId($ventaId); $info = $venta->Info(); $total = $info['totalDesc']; $total = number_format($total,2,'.',''); $cambio = 0; if($totalPago > $total) $cambio = $totalPago - $total; $porPagar = 0; if($totalPago < $total) $porPagar = $total - $totalPago; echo 'ok[#]'; echo number_format($totalPago,2); echo '[#]'; echo number_format($porPagar,2); echo '[#]'; echo number_format($cambio,2); break; case 'checkDesctos': $descuento->setSucursalId($sucursalId); $descuento->setUsuarioId($_SESSION['loginKey']); $descuento->setStatus('DescAp'); $ventas = $descuento->EnumByStatus(); $totalVtas = count($ventas); if($totalVtas == 1){ $res = $ventas[0]; echo 'ok[#]'; echo 'La Venta No. '.$res['ventaId'].' ya tiene descuentos aplicados. Favor de verificar.'; }elseif($totalVtas > 1){ echo 'ok[#]'; echo 'Existen ventas con descuentos aplicados. Favor de verificar.'; } //Liberamos los Productos que hayan sido Apartados por accidente $venta->setSucursalId($sucursalId); $venta->LiberarProductos(); break; case 'checkVtasEspera': $venta->setSucursalId($sucursalId); $venta->setUsuarioId($_SESSION['loginKey']); $exist = $venta->ExistVentaEspera(); if($exist){ echo 'ok[#]'; echo 'Existen ventas en espera. Favor de verificar.'; } break; //PRODUCTOS case 'addProduct': $prodItemId = $_POST['prodItemId']; $cantidad = $_POST['cantidad']; $tipoProd = $_POST['tipoProd']; if($tipoProd == 'tarjeta'){ $conceptos = $_SESSION['conceptos']; $monedero->setMonederoId($prodItemId); $infM = $monedero->Info(); $card['name'] = 'Tarjeta de Prepago de '.$infM['saldo']; $card['prodItemId'] = $prodItemId; $card['tipoProd'] = 'tarjeta'; $card['cantidad'] = $cantidad; $card['descuento'] = '0.00'; $card['precio'] = $infM['saldo']; $total = $card['precio'] * $cantidad; $card['total'] = number_format($total,2,'.',''); $conceptos[] = $card; }else{ for($k=1; $k<=$cantidad; $k++){ //Obtenemos el Precio para poder agruparlo. $producto->setProdItemId($prodItemId); $info = $producto->GetInfoItemById(); $productoId = $info['productoId']; $producto->setProductoId($productoId); $producto->setSucursalId($sucursalId); $precioVenta = $producto->GetVentaPrice(); //Checamos el precio para poder agruparlos $agregar = true; $cant = 1; /* $resConceptos = $_SESSION['conceptos']; $conceptos = array(); foreach($resConceptos as $res){ if($res['prodItemId'] == $prodItemId){ if($res['precio'] == $precioVenta){ $res['cantidad'] += $cant; $total = $res['precio'] * $res['cantidad']; $res['total'] = number_format($total,2,'.',''); $agregar = false; }//if }//if $conceptos[] = $res; }//foreach */ $conceptos = $_SESSION['conceptos']; if($agregar){ $producto->setProdItemId($prodItemId); $info = $producto->GetInfoItemById(); $productoId = $info['productoId']; $producto->setProductoId($productoId); $infP = $producto->Info(); $producto->setSucursalId($sucursalId); $precioVentaIva = $producto->GetVentaPrice(); $name = $info['codigoBarra'].'
'; $name .= $infP['modelo']; $card['name'] = utf8_encode($name); $card['productoId'] = $productoId; $card['prodItemId'] = $prodItemId; $card['tipoProd'] = 'producto'; $card['cantidad'] = $cant; $card['descuento'] = '0.00'; $card['precio'] = $precioVentaIva; $card['precioR'] = $precioVentaIva; $total = $card['precio'] * $cant; $card['total'] = number_format($total,2,'.',''); $conceptos[] = $card; }//if $_SESSION['conceptos'] = $conceptos; //Apartamos los productos $venta->setCantidad($cant); $venta->setSucursalId($sucursalId); $venta->setProductoId($productoId); $venta->setUsuarioId($_SESSION['loginKey']); $venta->ApartarProducts(); }//for }//if //Obtenemos los Totales $total = 0; foreach($conceptos as $res){ if($res['descuento'] == '100%') $res['total'] = 0; $total += $res['total']; } $sucursal->setSucursalId($sucursalId); $porcIva = $sucursal->GetIva(); $porcIva = $porcIva / 100; $subtotal = $total / (1 + $porcIva); $subtotal = number_format($subtotal,2,'.',''); $iva = $subtotal * $porcIva; $iva = number_format($iva,2,'.',''); //Agrupamos los Productos solo para Vista $prodIds = array(); foreach($conceptos as $res){ $productoId = $res['productoId']; if(!in_array($productoId, $prodIds)) $prodIds[] = $productoId; }//foreach $concepts = array(); foreach($prodIds as $productoId){ $total2 = 0; $precio = 0; $cantidad = 0; $card = array(); foreach($conceptos as $res){ if($res['productoId'] == $productoId){ if($res['promocionId'] > 0){ if($res['descuento'] == '100%') $res['total'] = 0; $concepts[] = $res; continue; } $card = $res; if($res['precio'] > $precio) $precio = $res['precio']; $cantidad += $res['cantidad']; if($res['descuento'] == '100%') $res['total'] = 0; $total2 += $res['total']; } }//foreach if($card){ $card['precio'] = $precio; $card['cantidad'] = $cantidad; $card['total'] = $total2; $concepts[] = $card; } }//foreach echo 'ok[#]'; $smarty->assign('conceptos', $concepts); $smarty->assign('DOC_ROOT', DOC_ROOT); $smarty->display(DOC_ROOT.'/templates/lists/conceptos.tpl'); echo '[#]'; echo number_format($subtotal,2); echo '[#]'; echo number_format($iva,2); echo '[#]'; echo number_format($total,2); break; case 'deleteProduct': $productoId = $_POST['k']; $resConceptos = $_SESSION['conceptos']; foreach($resConceptos as $res){ if($res['productoId'] == $productoId){ $infP = $res; break; } } $cantidad = 0; $conceptos = array(); foreach($resConceptos as $res){ if($infP['productoId'] == $res['productoId']) $cantidad += $res['cantidad']; else $conceptos[] = $res; }//foreach $infP['cantidad'] = $cantidad; $_SESSION['conceptos'] = $conceptos; //Agrupamos los Productos solo para Vista $prodIds = array(); foreach($conceptos as $res){ $productoId = $res['productoId']; if(!in_array($productoId, $prodIds)) $prodIds[] = $productoId; }//foreach $concepts = array(); foreach($prodIds as $productoId){ $total2 = 0; $precio = 0; $cantidad = 0; $card = array(); $cardP = array(); foreach($conceptos as $res){ if($res['productoId'] == $productoId){ if($res['promocionId'] > 0){ if($res['descuento'] == '100%') $res['total'] = 0; $concepts[] = $res; continue; } $card = $res; if($res['precio'] > $precio) $precio = $res['precio']; $cantidad += $res['cantidad']; if($res['descuento'] == '100%') $res['total'] = 0; $total2 += $res['total']; }//if }//foreach if($card){ $card['precio'] = $precio; $card['cantidad'] = $cantidad; $card['total'] = $total2; $concepts[] = $card; } }//foreach //Obtenemos los Totales $total = 0; foreach($concepts as $res) $total += $res['total']; $sucursal->setSucursalId($sucursalId); $porcIva = $sucursal->GetIva(); $porcIva = $porcIva / 100; $subtotal = $total / (1 + $porcIva); $subtotal = number_format($subtotal,2,'.',''); $iva = $subtotal * $porcIva; $iva = number_format($iva,2,'.',''); //Desapartamos los productos if($infP['tipoProd'] == 'producto'){ $venta->setCantidad($infP['cantidad']); $venta->setSucursalId($sucursalId); $venta->setProductoId($infP['productoId']); $venta->setUsuarioId($_SESSION['loginKey']); $venta->DesapartarProducts(); } echo 'ok[#]'; $smarty->assign('conceptos', $concepts); $smarty->assign('DOC_ROOT', DOC_ROOT); $smarty->display(DOC_ROOT.'/templates/lists/conceptos.tpl'); echo '[#]'; echo number_format($subtotal,2); echo '[#]'; echo number_format($iva,2); echo '[#]'; echo number_format($total,2); echo '[#]'; echo $infP['prodItemId']; break; //METODOS DE PAGO case 'savePagos': $metodoPago = $_POST['metodoPago']; $pagos = array(); foreach($metodoPago as $k => $val){ $card['metodoPagoId'] = $val; $card['cantidad'] = trim($_POST['cantidad_'.$k]); $card['idVta'] = trim($_POST['idVta_'.$k]); /* $card['codigoMon'] = trim($_POST['codigoMon_'.$k]); $monedero->setCodigo($card['codigoMon']); $monederoId = $monedero->GetIdByCodigo(); if($monederoId){ $monedero->setMonederoId($monederoId); $infM = $monedero->Info(); $card['saldoMon'] = number_format($infM['saldo'],2); } */ if($card['idVta']){ $devolucion->setVentaId($card['idVta']); $saldoFav = $devolucion->GetSaldo(); $card['saldoFav'] = number_format($saldoFav,2); }//if $pagos[] = $card; }//foreach $_SESSION['pagosVta'] = $pagos; break; case 'addPago': //Guardamos los Pagos $resPagos = $_POST['metodoPago']; $resPagos = $util->CheckArray($resPagos); $pagos = array(); foreach($resPagos as $k => $val){ $card['metodoPagoId'] = $val; $card['cantidad'] = trim($_POST['cantidad_'.$k]); $card['idVta'] = trim($_POST['idVta_'.$k]); $card['saldoFav'] = '0.00'; /* $card['codigoMon'] = trim($_POST['codigoMon_'.$k]); $card['saldoMon'] = '0.00'; $monedero->setCodigo($card['codigoMon']); $monederoId = $monedero->GetIdByCodigo(); if($monederoId){ $monedero->setMonederoId($monederoId); $infM = $monedero->Info(); $card['saldoMon'] = number_format($infM['saldo'],2); } */ if($card['idVta']){ $devolucion->setVentaId($card['idVta']); $saldoFav = $devolucion->GetSaldo(); $card['saldoFav'] = number_format($saldoFav,2); }//if $pagos[] = $card; }//foreach //Agregamos el Nuevo Pago $card['metodoPagoId'] = ''; $card['cantidad'] = ''; $card['idVta'] = ''; $card['saldoFav'] = '0.00'; /* $card['codigoMon'] = ''; $card['saldoMon'] = '0.00'; */ $pagos[] = $card; $_SESSION['pagosVta'] = $pagos; $metodosPago = $metodoPago->EnumerateAll(); $metodosPago = $util->EncodeResult($metodosPago); $smarty->assign('pagos', $pagos); $smarty->assign('metodosPago', $metodosPago); $smarty->assign('DOC_ROOT', DOC_ROOT); $smarty->display(DOC_ROOT.'/templates/lists/pagos-venta.tpl'); break; case 'deletePago': //Guardamos los Pagos $resPagos = $_POST['metodoPago']; $resPagos = $util->CheckArray($resPagos); $pagos = array(); foreach($resPagos as $k => $val){ $card['metodoPagoId'] = $val; $card['cantidad'] = trim($_POST['cantidad_'.$k]); $card['idVta'] = trim($_POST['idVta_'.$k]); $card['saldoFav'] = '0.00'; /* $card['codigoMon'] = trim($_POST['codigoMon_'.$k]); $card['saldoMon'] = '0.00'; $monedero->setCodigo($card['codigoMon']); $monederoId = $monedero->GetIdByCodigo(); if($monederoId){ $monedero->setMonederoId($monederoId); $infM = $monedero->Info(); $card['saldoMon'] = number_format($infM['saldo'],2); } */ if($card['idVta']){ $devolucion->setVentaId($card['idVta']); $saldoFav = $devolucion->GetSaldo(); $card['saldoFav'] = number_format($saldoFav,2); }//if $pagos[] = $card; } //Eliminamos el Pago $k = $_POST['k']; unset($pagos[$k]); $_SESSION['pagosVta'] = $pagos; $metodosPago = $metodoPago->EnumerateAll(); $metodosPago = $util->EncodeResult($metodosPago); $smarty->assign('pagos', $pagos); $smarty->assign('metodosPago', $metodosPago); $smarty->assign('DOC_ROOT', DOC_ROOT); $smarty->display(DOC_ROOT.'/templates/lists/pagos-venta.tpl'); break; //*** case 'loadSubcats': $prodSubcat->setProdCatId($_POST['prodCatId']); $subcategorias = $prodSubcat->EnumerateAll(); $subcategorias = $util->EncodeResult($subcategorias); echo 'ok[#]'; $smarty->assign('subcategorias', $subcategorias); $smarty->assign('DOC_ROOT', DOC_ROOT); $smarty->display(DOC_ROOT.'/templates/lists/enumProdSubcatVta.tpl'); break; case 'loadProductos': $disponible = $_POST['disponible']; $producto->setProveedorId($_POST['proveedorId']); $producto->setProdCatId($_POST['prodCatId']); $producto->setProdSubcatId($_POST['prodSubcatId']); $resProds = $producto->SearchVta(); $productos = array(); foreach($resProds as $res){ $inventario->setSucursalId($sucursalId); $inventario->setProductoId($res['productoId']); $res['disponible'] = $inventario->GetDispByProd(); $res['nombre'] = $res['modelo']; $producto->setSucursalId($sucursalId); $producto->setProductoId($res['productoId']); $res['precioVentaIva'] = $producto->GetVentaPrice(); if($disponible){ if($res['disponible']) $productos[] = $res; }else $productos[] = $res; }//foreach echo 'ok[#]'; $smarty->assign('productos', $productos); $smarty->assign('DOC_ROOT', DOC_ROOT); $smarty->display(DOC_ROOT.'/templates/lists/enumProdVta.tpl'); break; case 'aplicarPromo': $sucursalId = $_SESSION['idSuc']; //Checamos los Productos $idProds = array(0); $conceptos = $_SESSION['conceptos']; $promoId = 0; foreach($conceptos as $res){ $producto->setProdItemId($res['prodItemId']); $infP = $producto->GetInfoItemById(); if($res['promocionId'] > 0){ $idProds = array(0); $promoId = $res['promocionId']; break; } $idProds[] = $infP['productoId']; } if($promoId){ $promocion->setPromocionId($promoId); $nomPromo = utf8_encode($promocion->GetNameById()); $promocion->setPromocionId($promocionId); $info = $promocion->Info(); $res['nombre'] = utf8_encode($info['nombre']); $promociones[] = $res; $smarty->assign('promoId',$promoId); $smarty->assign('nomPromo',$nomPromo); }else{ $idProductos = implode(',', $idProds); //Obtenemos las Promociones por Producto $resPromos1 = $promocion->EnumPromosByProd($idProductos); $resPromos2 = $promocion->EnumPromosAplicaTodos(); $resPromos = array(); foreach($resPromos1 as $res) $resPromos[]['promocionId'] = $res['promocionId']; foreach($resPromos2 as $res) $resPromos[]['promocionId'] = $res['promocionId']; //Checamos que Promociones aplican $promociones = array(); foreach($resPromos as $res){ $promocionId = $res['promocionId']; $promocion->setPromocionId($promocionId); $promocion->setSucursalId($sucursalId); if(!$promocion->ExistSucursal()) continue; $infP = $promocion->Info(); if($infP['status'] == 'Inactivo') continue; if($infP['vigencia'] == 'Periodo'){ if(date('Y-m-d') < $infP['fechaIni']) continue; elseif(date('Y-m-d') > $infP['fechaFin']) continue; }//if //Checamos en los Productos si aplica esta Promo $aplica = false; foreach($idProds as $productoId){ $promocion->setPromocionId($promocionId); $promocion->setProductoId($productoId); //Si la promocion NO aplica a TODOS los productos entonces checar el producto if($infP['aplicaTodos'] == 0){ if(!$promocion->ExistProdInPromo()) continue; } if($promocion->ExcProdInPromo()) continue; $nomAplica = $infP['aplica']; if($nomAplica == 'XxY'){ $promocion->setProductoId($productoId); $cantProds = $promocion->GetCantProdsVta(); if($cantProds >= $infP['valorX']){ $aplica = true; break; } }elseif($nomAplica == 'N1Desc'){ $promocion->setProductoId($productoId); $cantProds = $promocion->GetCantProdsVta(); if($cantProds >= $infP['valorN']){ $aplica = true; break; } }elseif($nomAplica == 'DescCuenta'){ $promocion->setProductoId($productoId); $totalCompra = $promocion->GetTotalByProdVta(); if($totalCompra >= $infP['totalCompra']){ $aplica = true; break; } }elseif($nomAplica == 'CompraX'){ $promocion->setProductoId($productoId); $totalCompra = $promocion->GetTotalByProdVta(); if($totalCompra >= $infP['totalCompra']){ $producto->setSucursalId($sucursalId); $producto->setProductoId($infP['productoId']); if($producto->IsAvailable()){ $aplica = true; break; } }//if }elseif($nomAplica == 'CompraXabonoM'){ $promocion->setProductoId($productoId); $totalCompra = $promocion->GetTotalByProdVta(); if($totalCompra >= $infP['totalCompra']){ $aplica = true; break; } }elseif($nomAplica == 'ArtConDesc'){ $promocion->setProductoId($productoId); $totalCompra = $promocion->GetTotalByProdVta(); if($totalCompra >= $infP['totalCompra']){ $aplica = true; break; } }elseif($nomAplica == '3x2'){ $promocion->setPromocionId($promocionId); $cantProds = $promocion->GetCantGralProdsVta(); if($cantProds >= 3){ $aplica = true; foreach($promociones as $p){ if($p['promocionId'] == $promocionId){ $aplica = false; break; } } break; } }//elseif }//foreach if(!$aplica) continue; $promocion->setPromocionId($promocionId); $info = $promocion->Info(); $res['nombre'] = utf8_encode($info['nombre']); $promociones[] = $res; }//foreach }//else echo 'ok[#]'; $smarty->assign('promociones', $promociones); $smarty->assign('DOC_ROOT', DOC_ROOT); $smarty->display(DOC_ROOT.'/templates/boxes/aplicar-promo-venta-popup.tpl'); echo '[#]'; echo count($promociones); break; case 'asignarPromo': $promocionId = $_POST['promocionId']; $sucursalId = $_SESSION['idSuc']; $resConceptos = $_SESSION['conceptos']; $promocion->setPromocionId($promocionId); $infP = $promocion->Info(); $nomAplica = $infP['aplica']; $totalDescBuenFin = 0; $aplicadoBuenFin = false; $subtotal = 0; $concepts = array(); foreach($resConceptos as $kC => $res){ $prodR = array(); $producto->setProdItemId($res['prodItemId']); $infI = $producto->GetInfoItemById(); $productoId = $infI['productoId']; $promocion->setPromocionId($promocionId); $promocion->setProductoId($productoId); $existePromo = false; if($infP['aplicaTodos'] == 1){ $existePromo = true; }else{ if($promocion->ExistProdInPromo()) $existePromo = true; } if($existePromo){ if($nomAplica == 'XxY'){ $promocion->setProductoId($productoId); $cantProds = $promocion->GetCantProdsVta(); if($cantProds >= $infP['valorX']){ $venta->setPromocionId($promocionId); $prodsWithPromo = $venta->GetProdsWithPromo($concepts); $cociente = $cantProds / $infP['valorX']; $cociente = floor($cociente); $valorX = $cociente * $infP['valorX']; /* $cociente = $res['cantidad'] / $infP['valorX']; $cociente = floor($cociente); $residuo = $res['cantidad'] - ($cociente * $infP['valorX']); $total = $res['precio'] * $infP['valorY']; $total *= $cociente; $total += $res['precio'] * $residuo; */ if($prodsWithPromo < $valorX){ $res['precio'] = $infP['valorY']; $total = $infP['valorY']; /*********/ $res['promocionId'] = $promocionId; $res['promocion'] = utf8_encode($infP['nombre']); $res['total'] = $total; }//if }//if }elseif($nomAplica == 'DescCuenta'){ $venta->setProductoId($res['productoId']); $cantP = $venta->GetCantConcepto(); $totalVta = $venta->GetTotalConceptos(); //if($res['total'] > $infP['totalCompra']){ if($totalVta > $infP['totalCompra']){ $total = $res['total']; if($infP['tipoDesc'] == 'Porcentaje'){ $totalDesc = ($infP['valorDesc'] / 100) * $total; $total = $total - $totalDesc; $res['total'] = number_format($total,2,'.',''); }else{ $vDesc = $infP['valorDesc'] / $cantP; //$total = $total - $infP['valorDesc']; $total -= $vDesc; $res['total'] = number_format($total,2,'.',''); } $res['promocionId'] = $promocionId; $res['promocion'] = utf8_encode($infP['nombre']); }//if }elseif($nomAplica == 'N1Desc'){ $promocion->setProductoId($productoId); $cantProds = $promocion->GetCantProdsVta(); if($cantProds > $infP['valorN']){ $venta->setProductoId($productoId); $prodsAct = $venta->GetCurrentProds($kC); if($prodsAct > $infP['valorN']){ $total = $res['total']; if($infP['tipoDesc'] == 'Porcentaje'){ $totalDesc = ($infP['valorDesc'] / 100) * ($res['precio'] * $res['cantidad']); $precio = $res['precio'] - $totalDesc; $total = $total - $totalDesc; $res['precio'] = number_format($precio,2,'.',''); $res['total'] = number_format($total,2,'.',''); }else{ $totalDesc = $infP['valorDesc'] * $res['cantidad']; $precio = $res['precio'] - $totalDesc; $total = $total - $totalDesc; $res['precio'] = number_format($precio,2,'.',''); $res['total'] = number_format($total,2,'.',''); } $res['promocionId'] = $promocionId; $res['promocion'] = utf8_encode($infP['nombre']); }//if }//if }elseif($nomAplica == 'ArtConDesc'){ $total = $res['total']; /* $tempTotal = 0; for($k=1; $k<=$res['cantidad']; $k++){ $tempTotal += $res['precio']; if($tempTotal >= $infP['totalCompra']){ break; } } */ $venta->setProductoId($res['productoId']); $tempTotal = $venta->GetTotalByBloque($kC); /* echo 'Total = '.$tempTotal; echo '
kC = '.$kC; */ if($tempTotal >= $infP['totalCompra']){ $tempTotal = $venta->GetTotalByBloqueAnt($kC); /* echo '
'; echo 'Total Ant = '.$tempTotal; echo '
kC = '.$kC; echo '
'; */ /* for($k=1; $k<=$res['cantidad']; $k++){ $tempTotal += $res['precio']; if($tempTotal >= $infP['totalCompra']){ break; } } $cantResto = $res['cantidad'] - $k; */ if($tempTotal >= $infP['totalCompra']) $cantResto = 1; if($cantResto > 0){ if($infP['tipoDesc'] == 'Porcentaje'){ $totalDesc = ($infP['valorDesc'] / 100) * ($res['precio'] * $cantResto); $precio = $res['precio'] - $totalDesc; $total = $total - $totalDesc; $res['price'] = number_format($precio,2,'.',''); $res['total'] = number_format($total,2,'.',''); }else{ $totalDesc = $infP['valorDesc'] * $cantResto; $precio = $res['precio'] - $totalDesc; $total = $total - $totalDesc; $res['price'] = number_format($precio,2,'.',''); $res['total'] = number_format($total,2,'.',''); } $res['promocionId'] = $promocionId; $res['promocion'] = utf8_encode($infP['nombre']); }//if }//if }elseif($nomAplica == 'CompraX'){ $venta->setProductoId($res['productoId']); $totalVta = $venta->GetTotalConceptos(); if($totalVta > $infP['totalCompra']){ $prodR = array(); $venta->setPromocionId($promocionId); if(!$venta->ExistPromoInConceptos($concepts)){ $producto->setProductoId($infP['productoId']); $infProd = $producto->Info(); $producto->setProductoId(0); $producto->setCodigoBarra($infProd['codigoBarra']); $prodItemId = $producto->GetProductByCodigo(); $producto->setProductoId($infP['productoId']); $nomProd = $infProd['modelo']; $prodR['name'] = utf8_encode($infProd['codigoBarra'].'
'.$nomProd); $prodR['productoId'] = $infP['productoId']; $prodR['prodItemId'] = $prodItemId; $prodR['cantidad'] = $infP['cantArtRegalo']; $totalP = $prodR['cantidad'] * $infProd['precioVenta']; $prodR['descuento'] = '100%'; $prodR['precio'] = $infProd['precioVenta']; $prodR['total'] = $totalP; //Apartamos los productos $venta->setCantidad($infP['cantArtRegalo']); $venta->setSucursalId($sucursalId); $venta->setProductoId($infP['productoId']); $venta->setUsuarioId($_SESSION['loginKey']); $venta->ApartarProducts(); }//else $res['promocionId'] = $promocionId; $res['promocion'] = utf8_encode($infP['nombre']); }//elseif }elseif($nomAplica == 'CompraXabonoM'){ if($res['total'] > $infP['totalCompra']){ $res['promocionId'] = $promocionId; $res['promocion'] = utf8_encode($infP['nombre']); }//elseif }elseif($nomAplica == '3x2'){ $promocion->setPromocionId($promocionId); if(!$aplicadoBuenFin){ $cantProds = $promocion->GetCantGralProdsVta(); if($cantProds >= 3){ $prodId = $promocion->GetProdBuenFin(); if($productoId == $prodId){ $res['promocionId'] = $promocionId; $res['promocion'] = utf8_encode($infP['nombre']); $aplicadoBuenFin = true; $res['descuento'] = '100%'; //$res['total'] = 0; $totalDescBuenFin = $res['total']; } } }//if }//elseif }//if $subtotal += $res['total']; $concepts[] = $res; if(count($prodR)) $concepts[] = $prodR; }//foreach $_SESSION['conceptos'] = $concepts; $conceptos = $concepts; //Obtenemos los Totales $total = $subtotal - $totalDescBuenFin; $sucursal->setSucursalId($sucursalId); $porcIva = $sucursal->GetIva(); $porcIva = $porcIva / 100; $subtotal = $total / (1 + $porcIva); $subtotal = number_format($subtotal,2,'.',''); $iva = $subtotal * $porcIva; $iva = number_format($iva,2,'.',''); //Agrupamos los Productos solo para Vista $prodIds = array(); foreach($conceptos as $res){ $productoId = $res['productoId']; if(!in_array($productoId, $prodIds)) $prodIds[] = $productoId; }//foreach $concepts = array(); foreach($prodIds as $productoId){ $total2 = 0; $precio = 0; $cantidad = 0; $card = array(); $cardP = array(); foreach($conceptos as $res){ if($res['productoId'] == $productoId){ if($res['promocionId'] > 0){ if($res['descuento'] == '100%') $res['total'] = 0; $concepts[] = $res; $card = array(); continue; } $card = $res; if($res['precio'] > $precio) $precio = $res['precio']; $cantidad += $res['cantidad']; if($res['descuento'] == '100%') $res['total'] = 0; $total2 += $res['total']; }//if }//foreach if($card){ $card['precio'] = $precio; $card['cantidad'] = $cantidad; $card['total'] = $total2; $concepts[] = $card; } }//foreach echo 'ok[#]'; $smarty->assign('conceptos', $concepts); $smarty->assign('DOC_ROOT', DOC_ROOT); $smarty->display(DOC_ROOT.'/templates/lists/conceptos.tpl'); echo '[#]'; echo number_format($subtotal,2); echo '[#]'; echo number_format($iva,2); echo '[#]'; echo number_format($total,2); break; case 'eliminarPromo': $promocionId = $_POST['promocionId']; $sucursalId = $_SESSION['idSuc']; $resConceptos = $_SESSION['conceptos']; $promocion->setPromocionId($promocionId); $infP = $promocion->Info(); $nomAplica = $infP['aplica']; $elimProd = false; $subtotal = 0; $concepts = array(); foreach($resConceptos as $res){ if($res['promocionId'] == $promocionId){ $res['precio'] = $res['precioR']; $total = $res['cantidad'] * $res['precioR']; $res['total'] = number_format($total,2,'.',''); unset($res['promocionId']); unset($res['promocion']); if($nomAplica == 'CompraX'){ $elimProd = true; } if($nomAplica == '3x2') $res['descuento'] = '0.00'; }//if if($elimProd){ if($res['productoId'] == $infP['productoId']){ //Desapartamos los productos $venta->setCantidad($infP['cantArtRegalo']); $venta->setSucursalId($sucursalId); $venta->setProductoId($infP['productoId']); $venta->setUsuarioId($_SESSION['loginKey']); $venta->DesapartarProducts(); $elimProd = false; continue; } } $subtotal += $res['total']; $concepts[] = $res; }//foreach $_SESSION['conceptos'] = $concepts; //Obtenemos los Totales $total = $subtotal; $sucursal->setSucursalId($sucursalId); $porcIva = $sucursal->GetIva(); $porcIva = $porcIva / 100; $subtotal = $total / (1 + $porcIva); $subtotal = number_format($subtotal,2,'.',''); $iva = $subtotal * $porcIva; $iva = number_format($iva,2,'.',''); $conceptos = $concepts; //Agrupamos los Productos solo para Vista $prodIds = array(); foreach($conceptos as $res){ $productoId = $res['productoId']; if(!in_array($productoId, $prodIds)) $prodIds[] = $productoId; }//foreach $concepts = array(); foreach($prodIds as $productoId){ $total2 = 0; $precio = 0; $cantidad = 0; $card = array(); foreach($conceptos as $res){ if($res['productoId'] == $productoId){ if($res['promocionId'] > 0){ if($res['descuento'] == '100%') $res['total'] = 0; $concepts[] = $res; continue; } $card = $res; if($res['precio'] > $precio) $precio = $res['precio']; $cantidad += $res['cantidad']; if($res['descuento'] == '100%') $res['total'] = 0; $total2 += $res['total']; }//if }//foreach if($card){ $card['precio'] = $precio; $card['cantidad'] = $cantidad; $card['total'] = $total2; $concepts[] = $card; } }//foreach echo 'ok[#]'; $smarty->assign('conceptos', $concepts); $smarty->assign('DOC_ROOT', DOC_ROOT); $smarty->display(DOC_ROOT.'/templates/lists/conceptos.tpl'); echo '[#]'; echo number_format($subtotal,2); echo '[#]'; echo number_format($iva,2); echo '[#]'; echo number_format($total,2); break; case 'mark': $notasFact = $_SESSION['notasPorFacturar']; $idNota = $_POST['id']; if(!$notasFact){ $notasFact = array(); } if(!in_array($idNota, $notasFact)){ $notasFact[$idNota] = $idNota; }else{ unset($notasFact[$idNota]); } $_SESSION["notasPorFacturar"] = $notasFact; $notas = array(); foreach($notasFact as $id){ $notas[] = $id; } sort($notas); echo "{#}"; echo implode(" - ", $notas); break; }//switch ?>