Esempio n. 1
0
 /**
  * Store a newly created resource in storage.
  *
  * @return Response
  */
 public function store(Request $request)
 {
     $tipo = $request->input('tipo');
     $egreso_id = $request->input('egreso_id');
     if ($tipo == 'Ingreso' && !empty($egreso_id)) {
         $no_identificado_id = $request->input('no_identificado_id');
         $no_identificado = NoIdentificado::findOrFail($no_identificado_id);
         $egreso = Egreso::findOrFail($egreso_id);
         $egreso->load('rms');
         //Determina el monto total
         $sum_monto = 0;
         $arr_monto_rms = [];
         foreach ($egreso->rms as $rm) {
             $monto_rm_id = $request->input('monto_rm_id_' . $rm->id);
             if (!empty($monto_rm_id)) {
                 $arr_monto_rms[$rm->id] = $monto_rm_id;
             }
         }
         //Determina el monto total
         foreach ($arr_monto_rms as $monto_rm) {
             $sum_monto += $monto_rm;
         }
         //Generar Póliza
         $poliza = Poliza::create(['cuenta_bancaria_id' => $no_identificado->cuenta_bancaria_id, 'fecha' => Carbon::now()->toDateString(), 'tipo' => $tipo, 'user_id' => \Auth::user()->id]);
         //Generar Cargo (cuenta_id => 10 //No Identificado)
         $poliza->polizaCargos()->create(['cuenta_id' => 10, 'monto' => $sum_monto, 'origen_id' => $no_identificado_id, 'origen_type' => 'Guia\\Models\\NoIdentificado']);
         //Generar Abono
         $poliza_abono = $poliza->polizaAbonos()->create(['cuenta_id' => $egreso->cuenta_id, 'monto' => $sum_monto, 'origen_id' => $egreso_id, 'origen_type' => 'Guia\\Models\\Egreso']);
         //Insertar RMs
         foreach ($arr_monto_rms as $rm => $monto) {
             $poliza_abono->rms()->attach($rm, ['monto' => $monto]);
         }
         //Actualizar NoIdentificado
         if (round($no_identificado->monto, 2) == round($sum_monto, 2)) {
             $no_identificado->identificado = 1;
             $no_identificado->fecha_identificado = Carbon::now()->toDateString();
             $no_identificado->save();
         }
         return redirect()->action('EgresosController@show', $egreso_id)->with(['message' => 'Póliza de Ingreso creada con éxito']);
     } else {
         return redirect()->back()->with(['message' => 'No se puede realizar esta acción']);
     }
 }
Esempio n. 2
0
 public function cancelar($id, Request $request)
 {
     $motivo = $request->input('motivo');
     if (empty($motivo)) {
         return redirect()->back()->with(['message' => 'Por favor especifique motivo de cancelación', 'alert-class' => 'alert-warning']);
     }
     $egreso = Egreso::findOrFail($id);
     if (empty($egreso->cheque)) {
         return redirect()->back()->with(['message' => 'Error: El egreso ' . $egreso->poliza . ' no es un cheque', 'alert-class' => 'alert-danger']);
     }
     /**
      * @todo Analizar caso cuando exista comprobación
      */
     //Actualiza Estatus de Solicitud || Oc&Req => Autorizada
     $pago = new PagoDocumento();
     $pago->cancelarPago($egreso);
     //Generar Póliza de Cancelación
     $poliza = Poliza::create(['fecha' => Carbon::today()->toDateString(), 'tipo' => 'Cancelación', 'concepto' => 'Cancelación Cheque ' . $egreso->cheque . ' ' . $motivo, 'user_id' => \Auth::user()->id]);
     $poliza_abono = $poliza->polizaAbonos()->create(['cuenta_id' => $egreso->cuenta_id, 'monto' => $egreso->monto, 'origen_id' => $egreso->id, 'origen_type' => 'Guia\\Models\\Egreso']);
     //Insertar RMs si existen en Egreso
     if (count($egreso->rms) > 0) {
         foreach ($egreso->rms as $rm) {
             $monto_rm = $rm->pivot->monto;
             $poliza_abono->rms()->attach($rm->id, ['monto' => $monto_rm]);
         }
     }
     $poliza->polizaCargos()->create(['cuenta_id' => 27, 'monto' => $egreso->monto, 'origen_id' => $egreso->id, 'origen_type' => 'Guia\\Models\\Egreso']);
     $cheque = $egreso->cheque;
     $egreso->estatus = 'Cancelado';
     $egreso->fecha_cobro = Carbon::today()->toDateString();
     $egreso->save();
     $egreso->delete();
     return redirect()->back()->with(['message' => 'Cheque ' . $cheque . ' cancelado con éxito']);
 }
Esempio n. 3
0
 public function importarReembolsosFaltantes()
 {
     $legacy_reembolsos = \DB::connection($this->db_origen)->table('tbl_reembolsos')->where('cta_b', $this->cuenta_bancaria->cuenta_bancaria)->whereNotIn('ingreso_id', $this->reembolsos_importados)->get();
     foreach ($legacy_reembolsos as $legacy_reembolso) {
         $cuenta_bancaria_id_egreso = $this->getCuentaBancariaId($legacy_reembolso->cta_b_cheg);
         $legacy_ingreso = \DB::connection($this->db_origen)->table('tbl_ingresos')->where('cta_b', $legacy_reembolso->cta_b)->where('ingreso_id', $legacy_reembolso->ingreso_id)->first();
         if (!empty($legacy_ingreso->ingreso_id)) {
             //Crear No Identificado
             $no_identificado = NoIdentificado::create(['cuenta_bancaria_id' => $this->cuenta_bancaria->id, 'fecha' => $legacy_ingreso->fecha, 'monto' => $legacy_ingreso->monto, 'no_deposito' => '', 'identificado' => 0]);
             $poliza = Poliza::create(['fecha' => $legacy_ingreso->fecha, 'tipo' => 'Ingreso', 'concepto' => $legacy_ingreso->cmt, 'user_id' => \Auth::user()->id]);
             $poliza->polizaCargos()->create(['cuenta_id' => 10, 'monto' => $legacy_ingreso->monto, 'origen_id' => $no_identificado->id, 'origen_type' => 'Guia\\Models\\NoIdentificado']);
             $egreso_query = Egreso::where('cuenta_bancaria_id', $cuenta_bancaria_id_egreso);
             if ($legacy_reembolso->tipo == 'ch') {
                 $egreso_query->where('cheque', $legacy_reembolso->ch_eg);
             } else {
                 $egreso_query->where('poliza', $legacy_reembolso->ch_eg);
             }
             $egreso_id = $egreso_query->pluck('id');
             $origen_id = $egreso_id;
             $origen_type = 'Guia\\Models\\Egreso';
             $cuenta_id = $this->getCuentaId($legacy_ingreso->concepto);
             $poliza_abono = $poliza->polizaAbonos()->create(['cuenta_id' => $cuenta_id, 'monto' => $legacy_ingreso->monto, 'origen_id' => $origen_id, 'origen_type' => $origen_type]);
             //Registrar RMs del Ingreso
             $legacy_ingreso_rms = \DB::connection($this->db_origen)->table('tbl_ingresos_rm')->where('cta_b', $legacy_ingreso->cta_b)->where('ingreso_id', $legacy_ingreso->ingreso_id)->get();
             if (count($legacy_ingreso_rms) > 0) {
                 foreach ($legacy_ingreso_rms as $legacy_ingreso_rm) {
                     $rm_id = Rm::whereRm($legacy_ingreso_rm->rm)->pluck('id');
                     $poliza_abono->rms()->attach($rm_id, ['monto' => $legacy_ingreso_rm->monto]);
                 }
             }
         }
     }
 }
 private function getPolizasIngresos()
 {
     $polizas_ingreso = Poliza::where('tipo', 'Ingreso')->whereBetween('fecha', [$this->fecha_inicio, $this->fecha_fin])->with(['polizaAbonos' => function ($query) {
         $query->where('cuenta_bancaria_id', $this->cuenta_bancaria_id);
     }])->get();
     return $polizas_ingreso;
 }