/**
  * Creates a new model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  */
 public function actionCreate()
 {
     $model = new Ingresos();
     // Uncomment the following line if AJAX validation is needed
     // $this->performAjaxValidation($model);
     if (isset($_POST['Ingresos'])) {
         $elPaciente = Paciente::model()->findByPk($_GET['idPaciente']);
         $model->attributes = $_POST['Ingresos'];
         $model->forma_pago = $_POST['Ingresos']['forma_pago'];
         $model->descripcion = $_POST['Ingresos']['descripcion'];
         $model->vendedor_id = $_POST['Ingresos']['vendedor_id'];
         $model->paciente_id = $_GET['idPaciente'];
         $model->cita_id = $_POST["cita_id"];
         $model->contrato_id = $_POST['Ingresos']["contrato_id"];
         $model->n_identificacion = $elPaciente->n_identificacion;
         $model->fecha = date("Y-m-d H:i:s");
         $model->fecha_sola = date("Y-m-d");
         $model->estado = "Activo";
         if ($_POST['Ingresos']['personal_seguimiento'] == "") {
             //$model->personal_seguimiento = 26; antes de Monteria
             $model->personal_seguimiento = 1;
         } else {
             $model->personal_seguimiento = $_POST['Ingresos']['personal_seguimiento'];
         }
         $model->personal_id = Yii::app()->user->usuarioId;
         if ($model->save()) {
             if ($model->contrato_id == NULL) {
                 //Ingresos sin Contrato (Cajas de Pacientes)
                 $elPaciente->saldo = $elPaciente->saldo + $model->valor;
                 $elPaciente->update();
                 //Movimientos
                 $movimientosCaja = new PacienteMovimientos();
                 $movimientosCaja->paciente_id = $model->paciente_id;
                 $movimientosCaja->valor = $model->valor;
                 $movimientosCaja->tipo = "Ingreso";
                 $movimientosCaja->ingreso_id = $model->id;
                 $movimientosCaja->sub_tipo = "Ingreso sin Contrato";
                 $movimientosCaja->descripcion = "Ingreso a caja de paciente directamente en su perfil";
                 $movimientosCaja->usuario_id = Yii::app()->user->usuarioId;
                 $movimientosCaja->fecha = date("Y-m-d H:i:s");
                 $movimientosCaja->save();
             }
             if ($model->contrato_id != NULL) {
                 //Actualizar Saldo a favor de contrato
                 $los_contratos = Contratos::model()->findByPk($model->contrato_id);
                 $tratamiento_condescuentoTodos = 0;
                 $tratamiendo_sindescuentoTodos = 0;
                 $tratamientosRealizadosTodos = ContratosTratamientoRealizados::model()->findAll("contrato_id = {$los_contratos->id}");
                 foreach ($tratamientosRealizadosTodos as $tratamientos_realizadosTodos) {
                     $preciosTratamiento = ContratoDetalle::model()->find("contrato_id = {$tratamientos_realizadosTodos->contrato_id} and linea_servicio_id = {$tratamientos_realizadosTodos->linea_servicio_id}");
                     $tratamiento_condescuentoTodos = $tratamiento_condescuentoTodos + $preciosTratamiento->vu_desc;
                     $tratamiendo_sindescuentoTodos = $tratamiendo_sindescuentoTodos + $preciosTratamiento->vu;
                 }
                 //Saldo a favor
                 if ($los_contratos->saldo == 0) {
                     if ($los_contratos->estado == "Liquidado") {
                         $saldo_favorTodos = 0;
                     } else {
                         $saldo_favorTodos = $los_contratos->total - $model->saldo - $tratamiento_condescuentoTodos;
                     }
                 } else {
                     if ($los_contratos->saldo == $los_contratos->total) {
                         if ($los_contratos->descuento == "Si") {
                             $saldo_favorTodos = $tratamiento_condescuentoTodos * -1;
                         } else {
                             $saldo_favorTodos = $tratamiendo_sindescuentoTodos * -1;
                         }
                     } else {
                         if ($los_contratos->descuento == "Si") {
                             $saldo_favorTodos = $los_contratos->total - $los_contratos->saldo - $tratamiento_condescuentoTodos;
                         } else {
                             $saldo_favorTodos = $los_contratos->total - $los_contratos->saldo - $tratamiendo_sindescuentoTodos;
                         }
                     }
                 }
                 $los_contratos->saldo_favor = $saldo_favorTodos;
                 $los_contratos->update();
             }
             //Fin de actualizar saldo a favor
             if ($model->contrato_id != NULL) {
                 $elContrato = Contratos::model()->findByPk($model->contrato_id);
                 if (isset($_GET['tipo'])) {
                     $elContrato->observaciones_liquidacion = $model->descripcion;
                     $elContrato->estado = "Liquidado";
                 }
                 $elContrato->saldo = $elContrato->saldo - $model->valor;
                 $elContrato->save();
                 //Actualizar cuenta por cobrar
                 $lacuentaXC = CuentasXc::model()->find("paciente_id = {$elPaciente->id}");
                 if ($lacuentaXC) {
                     //Verificar si saldo es menor que cero
                     $nuevoSaldo = $lacuentaXC->saldo - $model->valor;
                     if ($nuevoSaldo <= 0) {
                         $lacuentaXC->saldo = 0;
                     } else {
                         $lacuentaXC->saldo = $nuevoSaldo;
                     }
                     //$lacuentaXC->update();
                     //Cuenta por cobrrar detalle
                     //$cuentaXC_detalle = CuentasXcDetalle::model()->find("paciente_id = $elPaciente->id");
                     $cuentaXC_detalle = CuentasXcDetalle::model()->find("contrato_id = {$model->contrato_id}");
                     if ($cuentaXC_detalle) {
                         $nuevoSaldoDetalle = $cuentaXC_detalle->saldo - $model->valor;
                         if ($nuevoSaldoDetalle <= 0) {
                             $cuentaXC_detalle->saldo = 0;
                         } else {
                             $cuentaXC_detalle->saldo = $nuevoSaldoDetalle;
                         }
                         $cuentaXC_detalle->update();
                         $sumadetalles = CuentasXcDetalle::model()->findAll("paciente_id = {$elPaciente->id}");
                         $total_detalles = 0;
                         foreach ($sumadetalles as $suma_detalles) {
                             $total_detalles = $total_detalles + $suma_detalles->saldo;
                         }
                         $lacuentaXC->saldo = $total_detalles;
                         $lacuentaXC->update();
                     }
                 }
                 //Si saldo de contrato = 0
                 $saldoContrato = Contratos::model()->findByPk($model->contrato_id);
                 if ($saldoContrato) {
                     if ($saldoContrato->saldo > 0) {
                         //Actualizar pago a Asistenciales
                         $pagoAsistenciales = PagoCosmetologas::model()->findAll("contrato_id = {$model->contrato_id}");
                         if ($pagoAsistenciales) {
                             foreach ($pagoAsistenciales as $pago_asistenciales) {
                                 $pago_asistenciales->saldo = $pago_asistenciales->saldo + $model->valor;
                                 $pago_asistenciales->update();
                             }
                         }
                     } else {
                         if ($saldoContrato->saldo == 0 and $saldoContrato->estado = "Liquidado") {
                             $pagoAsistenciales = PagoCosmetologas::model()->findAll("contrato_id = {$model->contrato_id}");
                             if ($pagoAsistenciales) {
                                 foreach ($pagoAsistenciales as $pago_asistenciales) {
                                     $pago_asistenciales->saldo = 0;
                                     $pago_asistenciales->update();
                                 }
                             }
                         } else {
                             //Actualizar pago a Asistenciales
                             $sumaIngresos = 0;
                             $total_vu_descuento_suma = 0;
                             $detalleIngresos = Ingresos::model()->findAll("contrato_id = {$model->contrato_id} and estado = 'Activo'");
                             foreach ($detalleIngresos as $detalle_ingreso) {
                                 $sumaIngresos = $sumaIngresos + $detalle_ingreso->valor;
                             }
                             //Detalle de contratos
                             $datosContratoDetalle = ContratoDetalle::model()->findAll("contrato_id = {$model->contrato_id}");
                             foreach ($datosContratoDetalle as $datos_Contrato_Detalle) {
                                 $total_vu_descuento_suma = $total_vu_descuento_suma + $datos_Contrato_Detalle->vu_desc * $datos_Contrato_Detalle->realizadas;
                             }
                             $pagoAsistenciales = PagoCosmetologas::model()->findAll("contrato_id = {$model->contrato_id}");
                             if ($pagoAsistenciales) {
                                 foreach ($pagoAsistenciales as $pago_asistenciales) {
                                     $pago_asistenciales->saldo = $sumaIngresos - $total_vu_descuento_suma;
                                     $pago_asistenciales->update();
                                 }
                             }
                         }
                     }
                 }
             }
             //Verificar si es liquidacion de procedimiento sin contrato
             if ($model->cita_id != NULL) {
                 $lacuentaXC = CuentasXc::model()->find("paciente_id = {$elPaciente->id}");
                 if ($lacuentaXC) {
                     //Verificar si saldo es menor que cero
                     $nuevoSaldo = $lacuentaXC->saldo - $model->valor;
                     if ($nuevoSaldo <= 0) {
                         $lacuentaXC->saldo = 0;
                     } else {
                         $lacuentaXC->saldo = $nuevoSaldo;
                     }
                     //$lacuentaXC->update();
                     //Cuenta por cobrrar detalle
                     $cuentaXC_detalle = CuentasXcDetalle::model()->find("cita_id = {$model->cita_id}");
                     $nuevoSaldoDetalle = $cuentaXC_detalle->saldo - $model->valor;
                     if ($nuevoSaldoDetalle <= 0) {
                         $cuentaXC_detalle->saldo = 0;
                     } else {
                         $cuentaXC_detalle->saldo = $nuevoSaldoDetalle;
                     }
                     $cuentaXC_detalle->update();
                     $sumadetalles = CuentasXcDetalle::model()->findAll("paciente_id = {$elPaciente->id}");
                     $total_detalles = 0;
                     foreach ($sumadetalles as $suma_detalles) {
                         $total_detalles = $total_detalles + $suma_detalles->saldo;
                     }
                     $lacuentaXC->saldo = $total_detalles;
                     $lacuentaXC->update();
                 }
                 $pagoAsistenciales = PagoCosmetologas::model()->findAll("cita_id = {$model->cita_id}");
                 if ($pagoAsistenciales) {
                     foreach ($pagoAsistenciales as $pago_asistenciales) {
                         $pago_asistenciales->saldo = 0;
                         $pago_asistenciales->update();
                     }
                 }
             }
             if ($model->forma_pago == "Cheque") {
                 //Los detalles de la Compra
                 for ($i = 0; $i <= $_POST['variable']; $i++) {
                     if (isset($_POST['numero_' . $i])) {
                         $detalleC = new IngresosCheques();
                         $detalleC->ingresos_id = $model->id;
                         $detalleC->numero = $_POST['numero_' . $i];
                         $detalleC->entidad = $_POST['entidad_' . $i];
                         $detalleC->valor = $_POST['valor_' . $i];
                         $detalleC->f_cobro = Yii::app()->dateformatter->format("yyyy-MM-dd", $_POST['fecha_cobro_' . $i]);
                         $detalleC->save();
                     }
                 }
             }
             if ($model->forma_pago == "Efectivo") {
                 $laCaja = CajaEfectivo::model()->findByPk($model->personal_id);
                 if ($laCaja === null) {
                     //Nueva Caja
                     $nuevaCaja = new CajaEfectivo();
                     $nuevaCaja->personal_id = $model->personal_id;
                     $nuevaCaja->total = $model->valor;
                     $nuevaCaja->save();
                     //Registrar Ingreso en el detalle de caja
                     $nuevaCajaDetalle = new CajaEfectivoDetalle();
                     $nuevaCajaDetalle->caja_efectivo_id = $nuevaCaja->personal_id;
                     $nuevaCajaDetalle->monto = $model->valor;
                     $nuevaCajaDetalle->tipo = "Ingreso";
                     $nuevaCajaDetalle->ingreso_id = $model->id;
                     $nuevaCajaDetalle->fecha = date("Y-m-d HH:ii:ss");
                     $nuevaCajaDetalle->save();
                 } else {
                     //Actualizar Caja
                     $laCaja->total = $laCaja->total + $model->valor;
                     $laCaja->save();
                     //Registrar Ingreso en el detalle de caja
                     $nuevaCajaDetalle = new CajaEfectivoDetalle();
                     $nuevaCajaDetalle->caja_efectivo_id = $model->personal_id;
                     $nuevaCajaDetalle->monto = $model->valor;
                     $nuevaCajaDetalle->tipo = "Ingreso";
                     $nuevaCajaDetalle->ingreso_id = $model->id;
                     $nuevaCajaDetalle->fecha = date("Y-m-d H:i:s");
                     $nuevaCajaDetalle->save();
                 }
             }
             if ($model->forma_pago == "Caja Personal") {
                 // $movimientoDeposito 				= new PacienteMovimientos;
                 // $movimientoDeposito->paciente_id	= $pacienteOrigen->id;
                 // $movimientoDeposito->valor 			= $model->valor;
                 // $movimientoDeposito->tipo			= "Egreso";
                 // $movimientoDeposito->sub_tipo 		= "Ingreso a Contrato";
                 // $movimientoDeposito->descripcion	= "Se realizo ingreso a contrato No. ".$model->contrato_id.".";
                 // $movimientoDeposito->ingreso_id 	= $model->id;
                 // $movimientoDeposito->contrato_id	= $model->contrato_id;
                 // $movimientoDeposito->usuario_id		= Yii::app()->user->usuarioId;
                 // $movimientoDeposito->fecha 			= date("Y-m-d H:i:s");
                 // $movimientoDeposito->save();
             }
             //Para envio de correos
             $this->actionEnvioCorreoIngreso($model->id);
             if ($model->contrato_id != NULL) {
                 $this->redirect(array('view', 'id' => $model->id));
             } else {
                 $this->redirect(array('view', 'id' => $model->id));
             }
             //$this->actionImprimirIngresos($model->id);
         }
     }
     $this->render('create', array('model' => $model));
 }
 public function actionCreate()
 {
     $model = new Ventas();
     // Uncomment the following line if AJAX validation is needed
     // $this->performAjaxValidation($model);
     if (isset($_POST['Ventas'])) {
         //Datos de Paciente
         $elPaciente = Paciente::model()->findByPk($_POST['elpaciente_id']);
         if ($_POST['Ventas']['credito_fecha'] == "") {
             $fechaCredito = "0000-00-00";
         } else {
             $fechaCredito = Yii::app()->dateformatter->format("yyyy-MM-dd", $_POST['Ventas']['credito_fecha']);
         }
         if ($_POST['Ventas']['credito_fecha2'] == "") {
             $fechaCredito2 = "0000-00-00";
         } else {
             $fechaCredito2 = Yii::app()->dateformatter->format("yyyy-MM-dd", $_POST['Ventas']['credito_fecha2']);
         }
         $model->attributes = $_POST['Ventas'];
         $model->forma_pago = $_POST['Ventas']['forma_pago'];
         $model->descripcion = $_POST['Ventas']['descripcion'];
         $model->paciente_id = $_POST['elpaciente_id'];
         $model->n_identificacion = $elPaciente->n_identificacion;
         $model->credito_fecha = $fechaCredito;
         $model->fecha = date("Y-m-d");
         $model->fecha_hora = date("Y-m-d H:i:s");
         $model->estado = "Activo";
         $model->personal = Yii::app()->user->usuarioId;
         $model->vendedor_id = $_POST['Ventas']['vendedor_id'];
         //Mas de una forma de pago
         $model->forma_pago2 = $_POST['Ventas']['forma_pago2'];
         $model->credito_fecha2 = $fechaCredito2;
         $model->total1 = $_POST['Ventas']['total1'];
         $model->total2 = $_POST['Ventas']['total2'];
         $model->credito_dias2 = $_POST['Ventas']['credito_dias2'];
         $model->tarjeta_tipo2 = $_POST['Ventas']['tarjeta_tipo2'];
         $model->tarjeta_aprobacion2 = $_POST['Ventas']['tarjeta_aprobacion2'];
         $model->tarjeta_entidad2 = $_POST['Ventas']['tarjeta_entidad2'];
         $model->tarjeta_cuenta_banco2 = $_POST['Ventas']['tarjeta_cuenta_banco2'];
         $model->consignacion_cuenta_banco2 = $_POST['Ventas']['consignacion_cuenta_banco2'];
         $model->consignacion_banco2 = $_POST['Ventas']['consignacion_banco2'];
         $model->consignacion_cuenta2 = $_POST['Ventas']['consignacion_cuenta2'];
         if ($model->save()) {
             //Los detalles de la Compra
             for ($i = 0; $i <= $_POST['variable']; $i++) {
                 if (isset($_POST['producto_' . $i])) {
                     $detalleC = new VentasDetalle();
                     $detalleC->venta_id = $model->id;
                     $detalleC->producto_id = $_POST['producto_' . $i];
                     $detalleC->cantidad = $_POST['cantidad_' . $i];
                     $detalleC->valor = $_POST['valor_' . $i];
                     $detalleC->iva = $_POST['iva_' . $i];
                     $detalleC->total = $_POST['total_' . $i];
                     $detalleC->paciente_id = $model->paciente_id;
                     $detalleC->fecha = $model->fecha;
                     $detalleC->save();
                     //Aumentar inventario
                     $elProducto = ProductoInventario::model()->findByPk($_POST['producto_' . $i]);
                     $elProducto->cantidad = $elProducto->cantidad - $_POST['cantidad_' . $i];
                     $elProducto->save();
                 }
             }
             if ($model->forma_pago == "Cheque") {
                 //Los detalles de la Compra
                 for ($i = 0; $i <= $_POST['variablec']; $i++) {
                     if (isset($_POST['numero_' . $i])) {
                         $detalleC = new VentasCheques();
                         $detalleC->ingresos_id = $model->id;
                         $detalleC->numero = $_POST['numero_' . $i];
                         $detalleC->entidad = $_POST['entidad_' . $i];
                         $detalleC->valor = $_POST['valor_' . $i];
                         $detalleC->f_cobro = Yii::app()->dateformatter->format("yyyy-MM-dd", $_POST['fecha_cobro_' . $i]);
                         $detalleC->save();
                     }
                 }
             }
             if ($model->forma_pago == "Efectivo") {
                 //$this->actionEnvioCorreoVenta($model->id);
                 $laCaja = CajaEfectivo::model()->findByPk($model->personal);
                 if ($laCaja === null) {
                     //Nueva Caja
                     $nuevaCaja = new CajaEfectivo();
                     $nuevaCaja->personal_id = $model->personal;
                     if ($model->total2 > 0) {
                         $nuevaCaja->total = $model->total1;
                     } else {
                         $nuevaCaja->total = $model->total_venta;
                     }
                     $nuevaCaja->save();
                     //Registrar Ingreso en el detalle de caja
                     $nuevaCajaDetalle = new CajaEfectivoDetalle();
                     $nuevaCajaDetalle->caja_efectivo_id = $nuevaCaja->personal_id;
                     if ($model->total2 > 0) {
                         $nuevaCajaDetalle->monto = $model->total1;
                     } else {
                         $nuevaCajaDetalle->monto = $model->total_venta;
                     }
                     $nuevaCajaDetalle->tipo = "Venta";
                     $nuevaCajaDetalle->venta_id = $model->id;
                     $nuevaCajaDetalle->fecha = date("Y-m-d H:i:s");
                     $nuevaCajaDetalle->save();
                 } else {
                     //Actualizar Caja
                     if ($model->total2 > 0) {
                         $laCaja->total = $laCaja->total + $model->total1;
                     } else {
                         $laCaja->total = $laCaja->total + $model->total_venta;
                     }
                     $laCaja->save();
                     //Registrar Ingreso en el detalle de caja
                     $nuevaCajaDetalle = new CajaEfectivoDetalle();
                     $nuevaCajaDetalle->caja_efectivo_id = $model->personal;
                     if ($model->total2 > 0) {
                         $nuevaCajaDetalle->monto = $model->total1;
                     } else {
                         $nuevaCajaDetalle->monto = $model->total_venta;
                     }
                     $nuevaCajaDetalle->tipo = "Venta";
                     $nuevaCajaDetalle->venta_id = $model->id;
                     $nuevaCajaDetalle->fecha = date("Y-m-d H:i:s");
                     $nuevaCajaDetalle->save();
                 }
             }
             //Render de Vista
             $this->redirect(array('view', 'id' => $model->id));
         }
     }
     $this->render('create', array('model' => $model));
 }
 public function actionCreate()
 {
     $model = new Egresos();
     // Uncomment the following line if AJAX validation is needed
     // $this->performAjaxValidation($model);
     if (isset($_POST['Egresos'])) {
         //Buscar Proveedores
         $datosProveedor = ProductoProveedor::model()->findByPk($_POST['id_proveedor']);
         $model->attributes = $_POST['Egresos'];
         $model->observaciones = $_POST['Egresos']['observaciones'];
         $model->proveedor_id = $_POST['id_proveedor'];
         $model->n_identificacion = $datosProveedor->doc_nit;
         $model->aplica_factura = $_POST['Egresos']['aplica_factura'];
         $model->fecha = date("Y-m-d H:i:s");
         $model->fecha_sola = date("Y-m-d");
         $model->personal_id = Yii::app()->user->usuarioId;
         $model->estado = "Activo";
         if ($model->save()) {
             if ($model->forma_pago == "Efectivo") {
                 //Para envio de correos
                 $this->actionEnvioCorreoEgresos($model->id);
                 //Afectar Caja
                 $datosCaja = CajaEfectivo::model()->findByPk(Yii::app()->user->usuarioId);
                 $datosCaja->total = $datosCaja->total - $model->valor_egreso;
                 $datosCaja->update();
                 //Registrar Ingreso en el detalle de caja
                 $nuevaCajaDetalle = new CajaEfectivoDetalle();
                 $nuevaCajaDetalle->caja_efectivo_id = $datosCaja->personal_id;
                 $nuevaCajaDetalle->monto = $model->valor_egreso * -1;
                 $nuevaCajaDetalle->tipo = "Egreso";
                 $nuevaCajaDetalle->egreso_id = $model->id;
                 $nuevaCajaDetalle->fecha = date("Y-m-d H:i:s");
                 $nuevaCajaDetalle->save();
                 if ($model->aplica_factura == "Si") {
                     $laCompra = ProductoCompras::model()->findByPk($model->factura_id);
                     $laCompra->saldo = $laCompra->saldo - $model->valor_egreso;
                     $laCompra->save();
                 }
             }
             $this->redirect(array('view', 'id' => $model->id));
         }
     }
     $this->render('create', array('model' => $model));
 }