<?php
class CotizacionesControlador extends Controladores {
function mostrarTodas(){
Vistas::mostrar("ventas","cotizaciones/todas-cotizaciones", array());
}
function tablatodas(){
$total = array();
$totalItem = '0';
$Cotizaciones = Cotizaciones::todas();
foreach($Cotizaciones as $cotizacion){
$Items = CotizacionesItems::deLaCotizacion($cotizacion->cotizacionID);
foreach($Items as $item){
$totalItem = $totalItem + (($item->itemCANTIDAD * $item->itemVLRUNITARIO)+$item->itemVLRIMPUESTOS);
}
array_push($total,$totalItem);
$totalItem = '0';
}
Vistas::mostrar("ventas","cotizaciones/todas-cotizaciones/tabla", array("Cotizaciones"=>$Cotizaciones, "Totales"=>$total));
}
function nuevaCotizacion(){
$TiposIdentificacion = TiposIdentificacion::todos();
$Categorias = CategoriasServicios::todas();
$Municipios = GeoMunicipios::todos();
Vistas::mostrar("ventas","cotizaciones/cotizacion",
array("Categorias"=>$Categorias, "TiposIdentificacion"=> $TiposIdentificacion, "Municipios"=> $Municipios));
}
function datosCliente() {
$Persona = Personas::porIdentificacion($this->identificacion, $this->tipoIdentificacion);
if (!is_null($Persona)) {
echo RespuestasSistema::exito(array("Persona" => $Persona));
} else {
echo RespuestasSistema::fallo("No se encontró una persona con identificación [" . $this->identificacion . " ], verifique el tipo y el número e intente nuevamente!");
}
}
function servicios(){
$Servicios = Servicios::porCategoriaID($this->categoria);
if (!is_null($Servicios)) {
echo RespuestasSistema::exito(array("Servicios" => $Servicios));
} else {
echo RespuestasSistema::fallo("No se encontraron servicios de la categoria [" . $this->categoria . " ].");
}
}
function nuevoSoporte(){
$Cotizacion = Cotizaciones::porID($this->cotizacionID);
Vistas::mostrar("ventas","cotizaciones/soporte-cotizacion", array('Cotizacion'=>$Cotizacion));
}
function cargarSoporte(){
var_dump($_POST);
/*$Cargado = SoportesPagos::registrar($this->usuarioID);
Vistas::mostrar("ventas","cotizaciones/soporte-cotizacion", array('Cotizacion'=>$Cotizacion));*/
}
function vistaPrevia(){
$Logo = Parametros::valor("LOGOCCSM");
$Cotizacion = Cotizaciones::datosCompletos($this->cotizacionID);
//$Colaborador = Colaboradores::porIdUsuario($this->usuarioID);
Vistas::mostrar("ventas","cotizaciones/vista-previa",array("Logo"=>$Logo, "Cotizacion"=>$Cotizacion));
}
function eliminarCotizacion(){
$Eliminado = "";
foreach ($this->cotizaciones as $cotizacion){
$Eliminado .= CotizacionesItems::eliminarDeLaCotizacion($cotizacion);
}
foreach ($this->cotizaciones as $cotizacion){
$Eliminado .= Cotizaciones::desactivar($cotizacion);
}
if (!is_null($Eliminado)) {
$Cotizaciones = Cotizaciones::todas();
echo RespuestasSistema::exito(array("Cotizaciones" => $Cotizaciones));
//Vistas::mostrar("ventas","cotizaciones/todas-cotizaciones", array("Cotizaciones"=>$Cotizaciones));
} else {
echo RespuestasSistema::fallo("No se pudo eliminar la cotización [ " . $this->cotizacionID . " ].");
}
}
function reactivarCotizacion(){
// $Activada = Cotizaciones::activar( $this->cotizacionCONSECUTIVO);
// $Cotizaciones = Cotizaciones::todas();
// if (!is_null($Activada)) {
// echo RespuestasSistema::exito(array("Cotizacion" => $this->cotizacionCONSECUTIVO));
// } else {
echo RespuestasSistema::fallo("No se pudo activar la cotización con el consecutivo [ " . $this->cotizacionCONSECUTIVO . " ].");
// }
}
function editarCotizacion(){
$TiposIdentificacion = TiposIdentificacion::todos();
$Categorias = CategoriasServicios::todas();
$Municipios = GeoMunicipios::todos();
$Cotizacion = Cotizaciones::datosCompletos($this->cotizacionID);
Vistas::mostrar("ventas","cotizaciones/cotizacion", array("Categorias"=>$Categorias, "TiposIdentificacion"=> $TiposIdentificacion, "Municipios"=> $Municipios, "CotizacionEditar"=>$Cotizacion));
}
function registrarCotizacion(){
$listItem = array();
$listItem2 = array();
$Registrado = "";
$Actualizado = "";
$Eliminado = "";
$personaID = Personas::idPorIdentificacion($this->cedulaCliente);
Personas::actualizarInformacionCliente($this->telefonoCliente,$this->direccionCliente, $this->correoCliente, $this->telefonoCliente, $this->ciudadCliente, $personaID);
if(isset($this->consecutivo)){
$Cotizacion = Cotizaciones::idPorConsecutivo($this->consecutivo);
$serviciosViejos = Cotizaciones::porConsecutivo($this->consecutivo);
}else{
$Cotizacion = null;
}
$fecha= new DateTime('now');
$fecha->add(new DateInterval('P'.Parametros::valor('DIASVIGENCIACOTIZACION').'D'));
$this->fechaVencimiento = $fecha->format('Y-m-d');
if(is_null($Cotizacion)){
$CotizacionRegistradaID = Cotizaciones::registrar($personaID, Consecutivos::usar('COTIZACIONES'), $this->fechaVencimiento, $this->Observaciones, $this->usuarioID);
$Cotizacion = Cotizaciones::porID($CotizacionRegistradaID);
foreach($this->servicioID as $servicio){
$Registrado .= CotizacionesItems::registrar($servicio,$Cotizacion->cotizacionID, $this->itemDESCRIPCION[$servicio],
$this->itemCANTIDAD[$servicio], $this->itemVLRUNITARIO[$servicio], $this->itemVLRIMPUESTOS[$servicio],
$this->itemIMPUESTO[$servicio],$this->Observaciones);
}
}else{
foreach($this->servicioID as $servicio){
Cotizaciones::actualizar($Cotizacion->cotizacionID,$this->fechaVencimiento, $this->Observaciones, $this->usuarioID);
if(($this->ItemID[$servicio]) != '0'){
$Actualizado .= CotizacionesItems::actualizar($this->ItemID[$servicio], $servicio, $Cotizacion->cotizacionID, $this->itemDESCRIPCION[$servicio],
$this->itemCANTIDAD[$servicio], $this->itemVLRUNITARIO[$servicio],$this->itemVLRIMPUESTOS[$servicio],
$this->itemIMPUESTO[$servicio],$this->Observaciones);
}else{
$Registrado .= CotizacionesItems::registrar($servicio, $Cotizacion->cotizacionID, $this->itemDESCRIPCION[$servicio], $this->itemCANTIDAD[$servicio],
$this->itemVLRUNITARIO[$servicio],$this->itemVLRIMPUESTOS[$servicio],
$this->itemIMPUESTO[$servicio],$this->Observaciones);
}
}
foreach($serviciosViejos as $item){
//foreach($serviciosNuevos as $servicio){
foreach($this->servicioID as $servicio){
//$id = explode("-",$servicio->$servicioID);
//if($item->itemID == $id[0]){
if($item->itemID == $this->ItemID[$servicio]){
if(!in_array($item->itemID, $listItem)){
if(!in_array($item->itemID, $listItem2)){
array_push($listItem,$item->itemID);
}else{
$id = array_search($item->itemID, $listItem2);
array_push($listItem,$item->itemID);
unset($listItem2[$id]);
}
}
break;
}else{
if(!in_array($item->itemID, $listItem2)){
if(!in_array($item->itemID, $listItem)){
array_push($listItem2, $item->itemID);
}
}
}
}
}
foreach($listItem2 as $itemID){
$Eliminado .= CotizacionesItems::eliminar($itemID);
}
}
if (!is_null($Registrado) || !is_null($Actualizado) || !is_null($Eliminado)) {
echo RespuestasSistema::exito(array("Cotizacion" => $Cotizacion));
} else {
echo RespuestasSistema::fallo("No se pudo Registrar/Actualizar la cotización.");
}
}
}