Esempio n. 1
0
 /**
  * @param $id
  */
 public function destroy($id)
 {
     //if(Sentinel::hasAccess('user.delete')){
     if ($depositos = Deposito::find($id)) {
         flash()->success('El deposito se ha cancelado.');
         $depositos->estatus = 1;
         $depositos->usuario_cancelacion_id = $this->user_auth->id;
         $depositos->fecha_cancelacion = Carbon::now();
         $depositos->update();
         $depositosAplicados = $depositos->depositosAplicados;
         foreach ($depositosAplicados as $depositoAplicado) {
             if ($depositoAplicado->estatus == 0) {
                 $depositoAplicadoNew = $depositoAplicado->replicate();
                 $depositoAplicadoNew->cantidad = -$depositoAplicado->cantidad;
                 $depositoAplicadoNew->estatus = 1;
                 $depositoAplicadoNew->save();
                 $venta = $depositoAplicado->venta;
                 $venta->ammount_applied = $venta->ammount_applied - $depositoAplicado->cantidad;
                 $venta->save();
             }
         }
     }
     //}else{
     //return response()->json(['error'=>'No tiene permisos para acceder a esta area.'], 401);
     //}
 }
Esempio n. 2
0
 /**
  * Store a newly created resource in storage.
  *
  * @return Response
  */
 public function guardarReferencias(DepositoReferenciasRequest $request)
 {
     $depositoRef = json_decode($request->deposito);
     $deposito = new Deposito(['banco' => $depositoRef->{'banco'}, 'fecha' => $depositoRef->{'fecha'}, 'monto' => $depositoRef->{'monto'}, 'moneda' => $depositoRef->{'moneda'}, 'cuenta_contable' => $depositoRef->{'cuenta_contable'}, 'complementaria' => $depositoRef->{'complementaria'}, 'tipo_pago' => $depositoRef->{'tipo_pago'}, 'folio' => $depositoRef->{'folio'}, 'global' => isset($depositoRef->{'global'}) ? true : false, 'usuario_id' => $depositoRef->{'usuario_id'}, 'comban' => isset($depositoRef->{'comban'}) ? $depositoRef->{'comban'} : "", 'estatus' => 0]);
     $deposito->save();
     $referencias = json_decode($request->referencias);
     foreach ($referencias as $key => $value) {
         if ($value->isNew) {
             $ventas = Sales::where('reference', $value->id)->where('credit_debit', 'credit')->get();
             $montoAplicar = $value->monto;
             if (count($ventas) > 0) {
                 // si se encontraron ventas con referencia ingresada
                 foreach ($ventas as $venta) {
                     //si el monto de la venta es mayor al monto aplicado
                     //entonces aplicamos
                     if ($venta->ammount > $venta->ammount_applied) {
                         $montoRestante = $venta->ammount - $venta->ammount_applied;
                         // si el monto a aplicar es mayor al monto aplicado descontamos del monto a aplicar
                         if ($montoAplicar > $montoRestante) {
                             $monto = $montoRestante;
                             $montoAplicar = $montoAplicar - $montoRestante;
                         } else {
                             $monto = $montoAplicar;
                             $montoAplicar = 0;
                         }
                         if ($monto > 0) {
                             $depositoAplicacion = new DepositoAplicacion(['venta_id' => $venta->id, 'deposito_id' => $deposito->id, 'usuario_id' => $this->user_auth->id, 'cantidad' => $monto]);
                             $venta->ammount_applied = $venta->ammount_applied + $monto;
                             $depositoAplicacion->save();
                         }
                         $venta->update();
                     }
                 }
             } else {
                 $ventaNueva = new Sales(['transaction_id' => '-1', 'reference' => $value->id, 'ra_start_date' => Carbon::now(), 'ra_end_date' => Carbon::now(), 'factura_uuid' => "", 'ammount' => 0, 'ammount_applied' => $montoAplicar, 'credit_debit' => 'credit', 'payment_method' => '', 'ra_total' => 0, 'customer_number' => '', 'op_location' => '', 'cl_location' => '', 'gl_account' => '', 'concept' => '', 'description' => '', 'date' => Carbon::now(), 'factura_number' => '']);
                 $ventaNueva->save();
                 $depositoAplicacion = new DepositoAplicacion(['venta_id' => $ventaNueva->id, 'deposito_id' => $deposito->id, 'usuario_id' => $this->user_auth->id, 'cantidad' => $montoAplicar]);
                 $depositoAplicacion->save();
             }
         }
     }
     flash()->success('Las referencias de venta se han almacenado correctamente.');
     $deposito = new Deposito();
     $cuentas = Cuentas::cuentasArray($this->user_auth->id);
     $cuentasDls = Cuentas::cuentasDolaresArray();
     return view('contabilidad::Deposits.index', compact('deposito', 'cuentas', 'cuentasDls'));
 }