/** * 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)); }