Exemplo n.º 1
0
 public static function ingresoCtaCte($ctacte_id)
 {
     DB::begintransaction();
     try {
         $CC = Ctacte::findOrFail($ctacte_id);
         $data = array("caja_id" => $CC->caja_id, "importe" => 0, "ingreso_egreso" => "I", "fecha" => date("Y-m-d"), "hora" => date("H:i:s"), "user_id" => Auth::user()->id, "tipo_mov_caja_id" => 2, "medios_pago_caja_id" => NULL, "ctacte_id" => $CC->id);
         $lineas_rec = $CC->lineas_recibo()->get();
         //dd($lineas_rec->toArray());
         foreach ($lineas_rec as $pago) {
             $MC = new MovimientoCaja();
             $data_pago = $data;
             $data_pago["importe"] = $pago->importe;
             $query = MedioPagoCaja::where('tipo', '=', $pago->tipo);
             if ($pago->tipo_cambio > 0) {
                 $query->where('moneda', '=', 'DOL');
             } else {
                 $query->where('moneda', '=', 'ARS');
             }
             $MP = $query->first();
             $data_pago["medios_pago_caja_id"] = $MP->id;
             $MC->fill($data_pago);
             if (!$MC->save()) {
                 DB::rollback();
                 return false;
             }
         }
         DB::commit();
         return true;
     } catch (Exception $e) {
         DB::rollback();
         return Response::json(array('error' => true, 'mensaje' => $e->getMessage()), 200);
     }
 }
 public function crear()
 {
     DB::beginTransaction();
     try {
         $data = Input::all();
         $new = $data;
         unset($new['apikey']);
         unset($new['session_key']);
         $items = array();
         $pagos = array();
         $new = array_map(function ($n) {
             return $n == 'NULL' ? NULL : $n;
         }, $new);
         if (isset($new["items"])) {
             foreach ($new["items"] as $i => $item) {
                 $items[$i] = array_map(function ($n) {
                     return $n == 'NULL' ? NULL : $n;
                 }, $item);
             }
             unset($new["items"]);
         }
         if (isset($new["pago"])) {
             foreach ($new["pago"] as $p => $pago) {
                 $pagos[$p] = array_map(function ($n) {
                     return $n == 'NULL' ? NULL : $n;
                 }, $pago);
             }
             unset($new["pago"]);
         }
         $new["user_id"] = Auth::user()->id;
         $modelo_ctacte = new Ctacte();
         $ctacte = $modelo_ctacte->create($new);
         if ($ctacte->save()) {
             $this->eventoAuditar($ctacte);
             if (count($items)) {
                 foreach ($items as $item) {
                     $ctacte_fac_lin = new CtacteFacLin();
                     $item['ctacte_id'] = $ctacte->id;
                     $fac_lin = $ctacte_fac_lin->create($item);
                     if (!$fac_lin->save()) {
                         DB::rollback();
                         return Response::json(array('error' => true, 'mensaje' => HerramientasController::getErrores($fac_lin->validator), 'listado' => $data, 'paso' => 1), 200);
                     }
                 }
             }
             if (count($pagos)) {
                 $referencia = $ctacte->id;
                 if (substr($ctacte->tipo_prev, 0, 1) == 'F') {
                     $new["tipo_cbte"] = !empty($new["tipo_cbte"]) ? 'RE' : NULL;
                     $new["tipo_prev"] = 'RE';
                     $new["referencia"] = $ctacte->id;
                     $new["importe_iva"] = 0;
                     $importe = 0;
                     foreach ($pagos as $p) {
                         $importe += $p["importe"];
                     }
                     $new["importe_neto"] = $importe;
                     $new["importe_bruto"] = $importe;
                     $modelo_ctacte1 = new Ctacte();
                     $ctacte1 = $modelo_ctacte1->create($new);
                     if ($ctacte1->save()) {
                         $this->eventoAuditar($ctacte1);
                         $referencia = $ctacte1->id;
                     } else {
                         DB::rollback();
                         return Response::json(array('error' => true, 'mensaje' => HerramientasController::getErrores($ctacte1->validator), 'paso' => 2, 'listado' => $data), 200);
                     }
                 }
                 foreach ($pagos as $pago) {
                     $ctacte_rec_lin = new CtacteRecLin();
                     $pago['ctacte_id'] = $referencia;
                     $rec_lin = $ctacte_rec_lin->create($pago);
                     if (!$rec_lin->save()) {
                         DB::rollback();
                         return Response::json(array('error' => true, 'mensaje' => HerramientasController::getErrores($rec_lin->validator), 'listado' => $data, 'pas' => 3), 200);
                     }
                 }
                 if (!MovimientoCaja::ingresoCtacte($referencia)) {
                     DB::rollback();
                     return Response::json(array('error' => true, 'mensaje' => "No se pudo grabar movimiento de caja asociado", 'listado' => $data), 200);
                 }
             }
             DB::commit();
             return Response::json(array('error' => false, 'listado' => $ctacte->where('id', '=', $ctacte->id)->get()->toArray()), 200);
         } else {
             DB::rollback();
             return Response::json(array('error' => true, 'mensaje' => HerramientasController::getErrores($ctacte->validator), 'paso' => 4, 'listado' => $data), 200);
         }
     } catch (\Exception $e) {
         DB::rollback();
         return Response::json(array('error' => true, 'mensaje' => $e->getMessage()), 200);
     }
 }
 public function informe()
 {
     try {
         $data = Input::all();
         $desde = $data["desde"];
         $hasta = $data["hasta"];
         $query = MovimientoCaja::where('fecha', '>=', $desde)->where('fecha', '<=', $hasta);
         if (isset($data["caja_id"]) && !empty($data["caja_id"])) {
             $query->where("caja_id", "=", $data["caja_id"]);
         }
         if (isset($data["tipo_mov_caja_id"]) && !empty($data["tipo_mov_caja_id"])) {
             $query->where("tipo_mov_caja_id", "=", $data["tipo_mov_caja_id"]);
         }
         return Response::json(array('error' => false, 'listado' => $query->get()), 200);
     } catch (Exception $e) {
         DB::rollback();
         return Response::json(array('error' => true, 'mensaje' => $e->getMessage()), 200);
     }
 }