Files
ventas_php/ajax/cuentas-pagar.php

621 lines
18 KiB
PHP
Executable File

<?php
include_once('../init.php');
include_once('../config.php');
include_once(DOC_ROOT.'/libraries.php');
session_start();
$p = $_SESSION['edpP'];
$projectId = $_SESSION['curProjId'];
if(isset($_POST['action']))
$_POST['type'] = $_POST['action'];
switch($_POST['type'])
{
case 'viewDescuentos':
$value = split("#",$_POST['value']);
$proveedorId = $value[0];
$pedidoId = $value[1];
$cuentaPagar->setPedidoId($pedidoId);
$cuentasPago = $cuentaPagar->EnumerateById();
$proveedor->setProveedorId($proveedorId);
$descuentos = $proveedor->GetDescuentos();
$nombreProveedor = $proveedor->GetNameById();
$totalPublicidad = ($cuentasPago['total']*$descuentos['publicidad'])/100;
$totalFlete = ($cuentasPago['total']*$descuentos['flete'])/100;
$totalDesarrollo = ($cuentasPago['total']*$descuentos['desarrollo'])/100;
$totalEspecial = ($cuentasPago['total']*$descuentos['especial'])/100;
//$totalDescuentos = $descuentos['publicidad'] + $descuentos['flete'] + $descuentos['desarrollo'] + $descuentos['especial'];
$totalDescuentos = $totalPublicidad+$totalDesarrollo+$totalFlete+$totalEspecial;
$smarty->assign('totalPublicidad', $totalPublicidad);
$smarty->assign('totalFlete', $totalFlete);
$smarty->assign('totalDesarrollo', $totalDesarrollo);
$smarty->assign('totalEspecial', $totalEspecial);
$smarty->assign('totalDescuentos', $totalDescuentos);
$smarty->assign('descuentos', $descuentos);
$smarty->assign('nombreProveedor', $nombreProveedor);
$smarty->assign('DOC_ROOT', DOC_ROOT);
$smarty->display(DOC_ROOT.'/templates/boxes/ver-descuentos-popup.tpl');
break;
//PAGOS
case 'addPago':
$pedidoId = $_POST['pedidoId'];
$pedido->setPedidoId($pedidoId);
$infP = $pedido->Info();
if($infP['total2'] > 0)
$infP['total'] = $infP['total2'];
$info['folioProv'] = $infP['folioProv'];
$bonificacion->setPedidoId($pedidoId);
$bonificaciones = $bonificacion->getBonificaciones();
$devoluciones = $bonificacion->getDevoluciones();
$totalDesc = $infP['totalPub'] + $infP['totalDes'] + $infP['totalFlete'] + $infP['totalEsp'];
$totalDesctos = number_format($totalDesc,2,'.','');
//Obtenemos los abonos realizados
$cuentaPagar->setPedidoId($pedidoId);
$abonos = $cuentaPagar->GetTotalPagos();
$totalNotas = $cuentaPagar->GetTotalNotas();
$info['saldo'] = $infP['total'] - $abonos - $bonificaciones - $devoluciones - $totalDesctos - $totalNotas;
$metodosPago = $metodoPago->EnumerateAll();
$metodosPago = $util->EncodeResult($metodosPago);
$ctasBancarias = $cuentaBancaria->EnumerateAll();
$ctasBancarias = $util->EncodeResult($ctasBancarias);
$info['noPedido'] = $infP['noPedido'];
$info['pedidoId'] = $pedidoId;
$smarty->assign('info', $info);
$smarty->assign('metodosPago', $metodosPago);
$smarty->assign('ctasBancarias', $ctasBancarias);
$smarty->assign('DOC_ROOT', DOC_ROOT);
$smarty->display(DOC_ROOT.'/templates/boxes/agregar-pago-popup.tpl');
break;
case 'saveAddPago':
$pedidoId = $_POST['pedidoId'];
$metodoPagoId = $_POST['metodoPagoId'];
$cuentaBancariaId = $_POST['cuentaBancariaId'];
$cantidad = $_POST['cantidad'];
$noCheque = $_POST['noCheque'];
$fecha = ($_POST['fecha'] != '') ? date('Y-m-d',strtotime($_POST['fecha'])) : '';
$pedido->setPedidoId($pedidoId);
$info = $pedido->Info();
if($info['total2'] > 0)
$info['total'] = $info['total2'];
$cuentaPagar->setPedidoId($pedidoId);
$cuentaPagar->setMetodoPagoId($metodoPagoId);
$cuentaPagar->setProveedorId($info['proveedorId']);
$cuentaPagar->setCantidad($cantidad);
$cuentaPagar->setFecha($fecha);
$cuentaPagar->setNoCheque($noCheque);
$bonificacion->setPedidoId($pedidoId);
$bonificaciones = $bonificacion->getBonificaciones();
$devoluciones = $bonificacion->getDevoluciones();
$totalDesc = $info['totalPub'] + $info['totalDes'] + $info['totalFlete'] + $info['totalEsp'];
$totalDesctos = number_format($totalDesc,2,'.','');
//Obtenemos los abonos realizados
$abonos = $cuentaPagar->GetTotalPagos();
$totalNotas = $cuentaPagar->GetTotalNotas();
$saldo = $info['total'] - $abonos - $bonificaciones - $devoluciones - $totalDesctos - $totalNotas;
$saldo = number_format($saldo,2,'.','');
if($cantidad > $saldo){
$util->setError(20075, 'error', '', '');
$util->PrintErrors();
echo 'fail[#]';
$smarty->display(DOC_ROOT.'/templates/boxes/status_on_popup.tpl');
exit;
}
if(!$cuentaPagar->SavePago())
{
echo 'fail[#]';
$smarty->display(DOC_ROOT.'/templates/boxes/status_on_popup.tpl');
}
else
{
//Checamos si ya esta pagado totalmente
$abonos = $cuentaPagar->GetTotalPagos();
$saldo = $info['total'] - $abonos - $bonificaciones - $devoluciones - $totalDesctos - $totalNotas;
$saldo = number_format($saldo,2,'.','');
$pagado = ($saldo == 0) ? 1 : 0;
//Actualizamos el status a Pagado
if($pagado){
$pedido->setPedidoId($pedidoId);
$pedido->setPagado(1);
$pedido->UpdatePagado();
}
echo 'ok[#]';
$smarty->display(DOC_ROOT.'/templates/boxes/status_on_popup.tpl');
}
break;
case 'deletePago':
$pedidoPagoId = $_POST['id'];
$cuentaPagar->setPedidoPagoId($pedidoPagoId);
$infP = $cuentaPagar->InfoPago();
$pedidoId = $infP['pedidoId'];
if(!$cuentaPagar->DeletePago())
{
echo 'fail[#]';
$smarty->display(DOC_ROOT.'/templates/boxes/status_on_popup.tpl');
}
else
{
$pedido->setPedidoId($pedidoId);
$info = $pedido->Info();
//Quitamos el status de Pagado
$pedido->setPagado(0);
$pedido->UpdatePagado();
echo 'ok[#]';
$smarty->display(DOC_ROOT.'/templates/boxes/status_on_popup.tpl');
}
break;
//NOTAS CREDITOS
case 'addNota':
$pedidoId = $_POST['pedidoId'];
$pedido->setPedidoId($pedidoId);
$infP = $pedido->Info();
if($infP['total2'] > 0)
$infP['total'] = $infP['total2'];
$bonificacion->setPedidoId($pedidoId);
$bonificaciones = $bonificacion->getBonificaciones();
$devoluciones = $bonificacion->getDevoluciones();
$totalDesc = $infP['totalPub'] + $infP['totalDes'] + $infP['totalFlete'] + $infP['totalEsp'];
$totalDesctos = number_format($totalDesc,2,'.','');
//Obtenemos los abonos realizados
$cuentaPagar->setPedidoId($pedidoId);
$abonos = $cuentaPagar->GetTotalPagos();
$totalNotas = $cuentaPagar->GetTotalNotas();
$info['saldo'] = $infP['total'] - $abonos - $bonificaciones - $devoluciones - $totalDesctos - $totalNotas;
$info['noPedido'] = $infP['noPedido'];
$info['pedidoId'] = $pedidoId;
$smarty->assign('info', $info);
$smarty->assign('DOC_ROOT', DOC_ROOT);
$smarty->display(DOC_ROOT.'/templates/boxes/agregar-nota-popup.tpl');
break;
case 'saveAddNota':
$pedidoId = $_POST['pedidoId'];
$cantidad = $_POST['cantidad'];
$noNota = $_POST['noNota'];
$fecha = ($_POST['fecha'] != '') ? date('Y-m-d',strtotime($_POST['fecha'])) : '';
$pedido->setPedidoId($pedidoId);
$info = $pedido->Info();
if($info['total2'] > 0)
$info['total'] = $info['total2'];
$cuentaPagar->setPedidoId($pedidoId);
$cuentaPagar->setProveedorId($info['proveedorId']);
$cuentaPagar->setNoNota($noNota);
$cuentaPagar->setCantidad($cantidad);
$cuentaPagar->setFecha($fecha);
$bonificacion->setPedidoId($pedidoId);
$bonificaciones = $bonificacion->getBonificaciones();
$devoluciones = $bonificacion->getDevoluciones();
$totalDesc = $info['totalPub'] + $info['totalDes'] + $info['totalFlete'] + $info['totalEsp'];
$totalDesctos = number_format($totalDesc,2,'.','');
//Obtenemos los abonos realizados
$abonos = $cuentaPagar->GetTotalPagos();
$totalNotas = $cuentaPagar->GetTotalNotas();
$saldo = $info['total'] - $abonos - $bonificaciones - $devoluciones - $totalDesctos - $totalNotas;
$saldo = number_format($saldo,2,'.','');
if($cantidad > $saldo){
$util->setError(20075, 'error', '', '');
$util->PrintErrors();
echo 'fail[#]';
$smarty->display(DOC_ROOT.'/templates/boxes/status_on_popup.tpl');
exit;
}
if(!$cuentaPagar->SaveNota())
{
echo 'fail[#]';
$smarty->display(DOC_ROOT.'/templates/boxes/status_on_popup.tpl');
}
else
{
$totalNotas = $cuentaPagar->GetTotalNotas();
//Checamos si ya esta pagado totalmente
$saldo = $info['total'] - $abonos - $bonificaciones - $devoluciones - $totalDesctos - $totalNotas;
$saldo = number_format($saldo,2,'.','');
$pagado = ($saldo == 0) ? 1 : 0;
//Actualizamos el status a Pagado
if($pagado){
$pedido->setPedidoId($pedidoId);
$pedido->setPagado(1);
$pedido->UpdatePagado();
}
echo 'ok[#]';
echo $pedidoId;
echo '[#]';
echo '$'.number_format($totalNotas,2);
echo '[#]';
echo '$'.number_format($saldo,2);
echo '[#]';
echo $pagado;
echo '[#]';
$smarty->display(DOC_ROOT.'/templates/boxes/status_on_popup.tpl');
echo '[#]';
$cuentaPagar->setPedidoId($pedidoId);
$resNotas = $cuentaPagar->EnumNotas();
$notas = array();
foreach($resNotas as $val){
$val['fecha'] = date('d-m-Y',strtotime($val['fecha']));
$notas[] = $val;
}
$item['notas'] = $notas;
$smarty->assign('item', $item);
$smarty->assign('DOC_ROOT', DOC_ROOT);
$smarty->display(DOC_ROOT.'/templates/lists/cuentas-notas.tpl');
}
break;
case 'deleteNota':
$pedidoNotaId = $_POST['id'];
$cuentaPagar->setPedidoNotaId($pedidoNotaId);
$infN = $cuentaPagar->InfoNota();
$pedidoId = $infN['pedidoId'];
if(!$cuentaPagar->DeleteNota())
{
echo 'fail[#]';
$smarty->display(DOC_ROOT.'/templates/boxes/status_on_popup.tpl');
}
else
{
$pedido->setPedidoId($pedidoId);
$info = $pedido->Info();
if($info['total2'] > 0)
$info['total'] = $info['total2'];
//Quitamos el status de Pagado
$pedido->setPagado(0);
$pedido->UpdatePagado();
//Obtenemos las notas realizadas
$cuentaPagar->setPedidoId($pedidoId);
$totalNotas = $cuentaPagar->GetTotalNotas();
//Obtenemos los abonos realizados
$cuentaPagar->setPedidoId($pedidoId);
$abonos = $cuentaPagar->GetTotalPagos();
$totalNotas = $cuentaPagar->GetTotalNotas();
$bonificacion->setPedidoId($pedidoId);
$bonificaciones = $bonificacion->getBonificaciones();
$devoluciones = $bonificacion->getDevoluciones();
$totalDesc = $info['totalPub'] + $info['totalDes'] + $info['totalFlete'] + $info['totalEsp'];
$totalDesctos = number_format($totalDesc,2,'.','');
//$res['saldo'] = $res['total'] - $res['abonos'] - $res['bonificaciones'] - $res['devoluciones'];
$saldo = $info['total'] - $abonos - $bonificaciones - $devoluciones - $totalDesctos - $totalNotas;
echo 'ok[#]';
echo $pedidoId;
echo '[#]';
echo '$'.number_format($totalNotas,2);
echo '[#]';
echo '$'.number_format($saldo,2);
echo '[#]';
$smarty->display(DOC_ROOT.'/templates/boxes/status_on_popup.tpl');
echo '[#]';
$cuentaPagar->setPedidoId($pedidoId);
$resNotas = $cuentaPagar->EnumNotas();
$notas = array();
foreach($resNotas as $val){
$val['fecha'] = date('d-m-Y',strtotime($val['fecha']));
$notas[] = $val;
}
$item['notas'] = $notas;
$smarty->assign('item', $item);
$smarty->assign('DOC_ROOT', DOC_ROOT);
$smarty->display(DOC_ROOT.'/templates/lists/cuentas-notas.tpl');
}
break;
//OTHERS
case 'search':
$cuentaPagar->setProveedorId($_POST['proveedorId2']);
$resCuenta = $cuentaPagar->Search();
$info['total'] = 0;
$info['totalAbonos'] = 0;
$info['totalNotas'] = 0;
$info['totalDesc'] = 0;
$info['totalBonif'] = 0;
$info['totalDev'] = 0;
$info['totalSaldo'] = 0;
$items = array();
foreach($resCuenta as $res){
if(preg_match('/FOLIO/i',$res['folioProv']))
continue;
$proveedor->setProveedorId($res['proveedorId']);
$res['proveedor'] = utf8_encode($proveedor->GetNameById());
//Obtenemos los abonos realizados
$cuentaPagar->setPedidoId($res['pedidoId']);
$res['abonos'] = $cuentaPagar->GetTotalPagos();
//Obtenemos las notas de credito
$cuentaPagar->setPedidoId($res['pedidoId']);
$res['totalNotas'] = $cuentaPagar->GetTotalNotas();
$bonificacion->setPedidoId($res['pedidoId']);
$res['bonificaciones'] = $bonificacion->getBonificaciones();
$res['devoluciones'] = $bonificacion->getDevoluciones();
$totalDesc = $res['totalPub'] + $res['totalDes'] + $res['totalFlete'] + $res['totalEsp'];
$res['totalDescuentos'] = number_format($totalDesc,2,'.','');
if($res['total2'] > 0)
$res['total'] = $res['total2'];
$res['saldo'] = $res['total'] - $res['abonos'] - $res['bonificaciones'] - $res['devoluciones'] - $res['totalDescuentos'] - $res['totalNotas'];
//Obtenemos las Notas de Credito
$cuentaPagar->setPedidoId($res['pedidoId']);
$resNotas = $cuentaPagar->EnumNotas();
$notas = array();
foreach($resNotas as $val){
$val['fecha'] = date('d-m-Y',strtotime($val['fecha']));
$notas[] = $val;
}
$res['notas'] = $notas;
$info['total'] += $res['total'];
$info['totalAbonos'] += $res['abonos'];
$info['totalNotas'] += $res['totalNotas'];
$info['totalDesc'] += $res['totalDescuentos'];
$info['totalBonif'] += $res['bonificaciones'];
$info['totalDev'] += $res['devoluciones'];
$info['totalSaldo'] += $res['saldo'];
$items[] = $res;
}
$cuentasPagar['items'] = $items;
$smarty->assign('info', $info);
$smarty->assign('tipo', 'search');
$smarty->assign('cuentasPagar', $cuentasPagar);
$smarty->assign('DOC_ROOT', DOC_ROOT);
$smarty->display(DOC_ROOT.'/templates/lists/cuentas-pagar.tpl');
break;
case 'search2':
$cuentaPagar->setProveedorId($_POST['proveedorId2']);
$resProv = $cuentaPagar->EnumProveedores();
$info['total'] = 0;
$info['totalAbonos'] = 0;
$info['totalNotas'] = 0;
$info['totalDesc'] = 0;
$info['totalBonif'] = 0;
$info['totalDev'] = 0;
$info['totalSaldo'] = 0;
$info['totalSaldoInicial'] = 0;
$info['totalTotal'] = 0;
$proveedores = array();
foreach($resProv as $val){
$proveedor->setProveedorId($val['proveedorId']);
$infPv = $proveedor->Info();
$val['noProv'] = $infPv['noProv'];
$val['proveedor'] = utf8_encode($proveedor->GetNameById());
$proveedor->setProveedorId($val['proveedorId']);
$infP = $proveedor->Info();
$cuentaPagar->setProveedorId($val['proveedorId']);
$resCuenta = $cuentaPagar->Search();
$totalG = 0;
$totAbonos = 0;
$totNotas = 0;
$totBonificaciones = 0;
$totDevoluciones = 0;
$totDescuentos = 0;
$totSaldo = 0;
$facturas = array();
foreach($resCuenta as $res){
if(preg_match('/FOLIO/i',$res['folioProv']))
continue;
//Obtenemos los abonos realizados
$cuentaPagar->setPedidoId($res['pedidoId']);
$res['abonos'] = $cuentaPagar->GetTotalPagos();
$res['totalNotas'] = $cuentaPagar->GetTotalNotas();
$bonificacion->setPedidoId($res['pedidoId']);
$res['bonificaciones'] = $bonificacion->getBonificaciones();
$res['devoluciones'] = $bonificacion->getDevoluciones();
$totalDesc = $res['totalPub'] + $res['totalDes'] + $res['totalFlete'] + $res['totalEsp'];
$res['totalDescuentos'] = number_format($totalDesc,2,'.','');
if($res['total2'] > 0)
$res['total'] = $res['total2'];
$res['saldo'] = $res['total'] - $res['abonos'] - $res['bonificaciones'] - $res['devoluciones'] - $res['totalDescuentos'] - $res['totalNotas'];
$totalG += $res['total'];
$totAbonos += $res['abonos'];
$totNotas += $res['totalNotas'];
$totBonificaciones += $res['bonificaciones'];
$totDevoluciones += $res['devoluciones'];
$totDescuentos += $res['totalDescuentos'];
$totSaldo += $res['saldo'];
$info['total'] += $res['total'];
$info['totalAbonos'] += $res['abonos'];
$info['totalNotas'] += $res['totalNotas'];
$info['totalDesc'] += $res['totalDescuentos'];
$info['totalBonif'] += $res['bonificaciones'];
$info['totalDev'] += $res['devoluciones'];
$info['totalSaldo'] += $res['saldo'];
//Obtenemos los Pagos
$cuentaPagar->setPedidoId($res['pedidoId']);
$resPagos = $cuentaPagar->EnumPagos();
$pagos = array();
foreach($resPagos as $res2){
$metodoPago->setMetodoPagoId($res2['metodoPagoId']);
$res2['metodoPago'] = $metodoPago->GetNameById();
$res2['fecha'] = date('d-m-Y',strtotime($res2['fecha']));
$pagos[] = $res2;
}
$res['pagos'] = $pagos;
$facturas[] = $res;
}//foreach
$val['facturas'] = $facturas;
if($totalG > 0){
$cuentaPagar->setProveedorId($val['proveedorId']);
$abonosSaldoIni = $cuentaPagar->GetTotalPagosProv();
$val['total'] = $totalG + $infP['saldoCtaPagar'];
$val['abonos'] += ($totAbonos + $abonosSaldoIni);
$val['totalNotas'] += $totNotas;
$val['bonificaciones'] += $totBonificaciones;
$val['devoluciones'] += $totDevoluciones;
$val['totalDescuentos'] += $totDescuentos;
$val['saldo'] += ($totSaldo + $infP['saldoCtaPagar'] - $abonosSaldoIni);
$val['saldoInicial'] = $infP['saldoCtaPagar'];
$val['totalTotal'] = $val['saldo'] + $infP['saldoCtaPagar'];
$info['totalSaldoInicial'] += $infP['saldoCtaPagar'];
$info['totalTotal'] += $val['totalTotal'];
$info['total'] += $infP['saldoCtaPagar'];
$info['totalSaldo'] += ($infP['saldoCtaPagar'] - $abonosSaldoIni);
$info['totalAbonos'] += $abonosSaldoIni;
$proveedores[] = $val;
}
}//foreach
$proveedores = $util->orderMultiDimensionalArray($proveedores, 'proveedor');
$smarty->assign('info', $info);
$smarty->assign('tipo', 'search');
$smarty->assign('proveedores', $proveedores);
$smarty->assign('DOC_ROOT', DOC_ROOT);
$smarty->display(DOC_ROOT.'/templates/lists/cuentas-pagar2.tpl');
break;
}
?>