Ejemplo n.º 1
0
 public function importarArticulos()
 {
     $reqs = Req::whereBetween('req', $this->arr_rango)->get(['id', 'req', 'estatus']);
     foreach ($reqs as $req) {
         $articulos_legacy = $this->consultarArticulosLegacy($req->req);
         foreach ($articulos_legacy as $art_legacy) {
             if (!empty($art_legacy->oc)) {
                 $oc_id = Oc::whereOc($art_legacy->oc)->pluck('id');
                 if (empty($oc_id)) {
                     $oc_id = 0;
                 }
             } else {
                 $oc_id = 0;
             }
             $articulo = new Articulo();
             $articulo->req_id = $req->id;
             $articulo->articulo = $art_legacy->art . ' ' . $art_legacy->esp;
             $articulo->cantidad = $art_legacy->cantidad;
             $articulo->impuesto = $art_legacy->impuesto;
             $articulo->monto = $art_legacy->monto;
             $articulo->oc_id = $oc_id;
             $articulo->unidad = $art_legacy->unidad;
             $articulo->inventariable = $art_legacy->alta;
             $articulo->save();
             if (!empty($art_legacy->rm)) {
                 $rm_id = Rm::whereRm($art_legacy->rm)->value('id');
                 $articulo->rms()->attach($rm_id, ['monto' => $art_legacy->monto]);
             }
         }
     }
 }
Ejemplo n.º 2
0
 /**
  * Actualiza información con la autorización.
  *
  * @param  int  $id
  * @return Response
  */
 public function asignarRms(Request $request)
 {
     $rm_id = $request->input('rm_id');
     $arr_articulo_id = $request->input('arr_articulo_id');
     if (!isset($arr_articulo_id)) {
         $arr_articulo_id = array();
     }
     $articulos = Articulo::whereReqId($request->input('req_id'))->get();
     foreach ($articulos as $articulo) {
         if (array_search($articulo->id, $arr_articulo_id) !== false) {
             if ($articulo->rms->count() > 0) {
                 $articulo->rms()->updateExistingPivot($articulo->rms[0]->id, ['rm_id' => $rm_id, 'monto' => round($articulo->monto, 2)]);
             } else {
                 $articulo->rms()->attach($rm_id, ['monto' => round($articulo->monto, 2)]);
             }
             //$articulo->rms()->sync([$rm_id => ['monto' => $articulo->monto_total]]);
         }
         $alta = $request->input('alta_' . $articulo->id);
         isset($alta) ? $inventariable = $request->input('alta_' . $articulo->id) : ($inventariable = 0);
         if ($articulo->inventariable !== $alta) {
             $articulo->inventariable = $alta;
             $articulo->save();
         }
     }
     return redirect()->action('AutorizarReqController@formAutorizar', [$request->input('req_id')]);
 }
Ejemplo n.º 3
0
 /**
  * Show the form for creating a new resource.
  *
  * @return Response
  */
 public function create($oc)
 {
     $oc = Oc::whereOc($oc)->get();
     $articulos = Articulo::whereOcId($oc[0]->id)->get();
     $urgs = Urg::all(array('id', 'urg', 'd_urg'));
     return view('almacen.entrada.formArticulosOc', compact('oc', 'articulos', 'urgs'));
 }
Ejemplo n.º 4
0
 /**
  * Actualiza a 0's el monto de cada artículo cotizado en la tabla articulos
  */
 public function unsetMontoArticulo()
 {
     foreach ($this->articulos as $articulo) {
         $articulo_x_modificar = Articulo::find($articulo->id);
         $articulo_x_modificar->monto = 0;
         $articulo_x_modificar->save();
     }
 }
Ejemplo n.º 5
0
 public function importarInvitaciones()
 {
     $legacy_invitaciones = $this->consultarInvitacionesLegacy();
     foreach ($legacy_invitaciones as $invita_legacy) {
         $req = Req::whereReq($invita_legacy->req)->first(['id', 'estatus']);
         $fecha_cuadro = \DB::connection($this->db_origen)->table('tbl_req')->where('req', '=', $invita_legacy->req)->pluck('fecha_cuadro');
         $cuadro_legacy = $this->consultarCuadroLegacy($invita_legacy->req);
         $articulos = Articulo::whereReqId($req->id)->get(['id']);
         if (count($articulos) > 0) {
             $cuadro_id = $this->crearCuadro($req, $fecha_cuadro);
             for ($i = 1; $i < 7; $i++) {
                 $benef_id_i = 'benef_id_' . $i;
                 if (!empty($invita_legacy->{$benef_id_i})) {
                     $fecha_invita_i = 'fecha_invita_' . $i;
                     //Extrae de invitación para poblar una nueva cotización
                     $benef_id = $this->getBenefId($invita_legacy->{$benef_id_i});
                     $cotiza_nueva = new Cotizacion();
                     $cotiza_nueva->req_id = $req->id;
                     $cotiza_nueva->cuadro_id = $cuadro_id;
                     $cotiza_nueva->benef_id = $benef_id;
                     $cotiza_nueva->fecha_invitacion = $invita_legacy->{$fecha_invita_i};
                     $cotiza_nueva->save();
                     //extrae información de cuadro para poblar articulo_cotizacion
                     if (count($cuadro_legacy) > 0) {
                         if (count($articulos) != count($cuadro_legacy)) {
                             dd($req->id . ' #Articulos: ' . count($articulos) . ' #Cuadro: ' . count($cuadro_legacy));
                         }
                         $k = 0;
                         foreach ($cuadro_legacy as $cotizacion_legacy) {
                             $costo_i = 'costo_' . $i;
                             $sel_i = 'sel_' . $i;
                             if ($cotizacion_legacy->{$costo_i} > 0) {
                                 if ($cotizacion_legacy->{$sel_i} == 'S') {
                                     $sel = 1;
                                 } else {
                                     $sel = 0;
                                 }
                                 $cotiza_nueva->articulos()->attach($articulos[$k]->id, ['costo' => $cotizacion_legacy->{$costo_i}, 'sel' => $sel]);
                             }
                             $k++;
                         }
                     }
                 }
             }
         } else {
             dd($req->id);
         }
     }
 }
Ejemplo n.º 6
0
 public function actualizarImpuesto()
 {
     $reqs_legacy = $this->consultarReqsLegacy();
     foreach ($reqs_legacy as $req) {
         $req_id = Req::whereReq($req)->pluck('id');
         $articulos = Articulo::whereReqId($req_id)->get();
         $cuadro_legacy = $this->consultarCuadroLegacy($req);
         if (count($articulos) != count($cuadro_legacy)) {
             dd($req->id . ' #Articulos: ' . count($articulos) . ' #Cuadro: ' . count($cuadro_legacy));
         }
         $i = 0;
         foreach ($articulos as $articulo) {
             $articulo->impuesto = $cuadro_legacy[$i]->impuesto;
             $articulo->save();
             $i++;
         }
     }
 }
Ejemplo n.º 7
0
 private function getMontoReservado(Proyecto $proyecto)
 {
     $reqs_id = Req::where('proyecto_id', $proyecto->id)->where('estatus', 'Autorizada')->lists('id')->all();
     $articulos = Articulo::whereIn('req_id', $reqs_id)->with('rms')->get();
     $reservado_reqs = $articulos->sum('articulo_rm.monto');
     //$reservado_reqs = round($rm_objeto->articulos()->whereIn('req_id', $reqs_id)->sum('articulo_rm.monto'),2);
     $reservado_solicitudes = round(Solicitud::where('proyecto_id', $proyecto->id)->where('estatus', 'Autorizada')->sum('monto'), 2);
     $montoReservado = $reservado_reqs + $reservado_solicitudes;
     return round($montoReservado, 2);
 }
Ejemplo n.º 8
0
 public function cuadroPdf($id)
 {
     $cuadro = Cuadro::find($id);
     $cuadro->load('cotizaciones');
     $articulos = Articulo::whereReqId($cuadro->req_id)->get();
     $articulos->load('cotizaciones');
     $cuadro_pdf = new CuadroPdf($cuadro, $articulos);
     return response($cuadro_pdf->crearPdf())->header('Content-Type', 'application/pdf');
 }
Ejemplo n.º 9
0
 /**
  * Remove the specified resource from storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function destroy($id)
 {
     $articulo = Articulo::findOrFail($id);
     $req_id = $articulo->req->id;
     $articulo->delete();
     return redirect()->action('RequisicionController@show', array($req_id));
 }
Ejemplo n.º 10
0
 /**
  * Actualiza cuadro comparativo
  *
  * @param  int  $id
  * @return Response
  */
 public function update($id, MatrizCuadroRequest $request)
 {
     /**
      * @todo Validar que no se seleccione una cotización de un artículo con costo == 0
      */
     $cuadro = Cuadro::find($id);
     $arr_articulos_id = Articulo::whereReqId($cuadro->req_id)->lists('id')->all();
     $arr_cotizaciones_id = Cotizacion::whereReqId($cuadro->req_id)->lists('id')->all();
     foreach ($arr_articulos_id as $articulo_id) {
         $articulo = Articulo::find($articulo_id);
         $sel_value = $request->input('sel_' . $articulo_id);
         $no_cotizado = $request->input('no_cotizado_' . $articulo_id);
         if (empty($no_cotizado)) {
             $no_cotizado = 0;
         }
         foreach ($arr_cotizaciones_id as $cotizacion_id) {
             $costo_nuevo = $request->input('costo_' . $articulo_id . '_' . $cotizacion_id);
             if (isset($costo_nuevo)) {
                 $sel_value == $cotizacion_id && $costo_nuevo > 0 && empty($no_cotizado) ? $sel = 1 : ($sel = 0);
                 //Verifica existencia de pivote
                 if ($articulo->cotizaciones()->get()->contains($cotizacion_id)) {
                     $costo_actual = $articulo->cotizaciones()->whereCotizacionId($cotizacion_id)->first()->pivot->costo;
                     $sel_actual = $articulo->cotizaciones()->whereCotizacionId($cotizacion_id)->first()->pivot->sel;
                     if ($costo_actual != $costo_nuevo || $sel_actual != $sel) {
                         $articulo->cotizaciones()->updateExistingPivot($cotizacion_id, ['costo' => round($costo_nuevo, 2), 'sel' => $sel]);
                     }
                 } else {
                     //Crea un nuevo registro en pivote articulo_cotizacion
                     $articulo->cotizaciones()->attach([$cotizacion_id => ['costo' => round($costo_nuevo, 2), 'sel' => $sel]]);
                 }
             }
         }
         //Actualizar impuesto en articulos
         $articulo->impuesto = $request->input('impuesto_' . $articulo_id);
         $articulo->no_cotizado = $no_cotizado;
         $articulo->save();
     }
     //Actualiza información de vigencia y garantía @cotizaciones
     foreach ($arr_cotizaciones_id as $cotizacion_id) {
         $cotizacion = Cotizacion::find($cotizacion_id);
         $cotizacion->vigencia = $request->input('vigencia_' . $cotizacion_id);
         $cotizacion->garantia = $request->input('garantia_' . $cotizacion_id);
         $cotizacion->imprimir = true;
         $cotizacion->save();
     }
     //Actualizar Tipo de Cambio en @reqs
     $tipo_cambio = $request->input('tipo_cambio');
     $moneda = $request->input('moneda');
     $req = Req::find($cuadro->req_id);
     if ($req->tipo_cambio != $tipo_cambio || $req->moneda != $moneda) {
         $req->tipo_cambio = $tipo_cambio;
         $req->moneda = $moneda;
         $req->save();
     }
     return redirect()->action('MatrizCuadroController@show', array($cuadro->req_id));
 }
Ejemplo n.º 11
0
 private function actualizar_articulo($id, $oc_id)
 {
     $articulo = Articulo::find($id);
     $articulo->oc_id = $oc_id;
     $articulo->save();
 }
Ejemplo n.º 12
0
 public function invitacionPdf($id)
 {
     $invitacion = Cotizacion::find($id);
     $articulos = Articulo::whereReqId($invitacion->req_id)->get();
     $invita_pdf = new InvitacionPdf($invitacion, $articulos);
     return response($invita_pdf->crearPdf())->header('Content-Type', 'application/pdf');
 }
Ejemplo n.º 13
0
 public function formatoPdf($id)
 {
     $req = Req::find($id);
     $articulos = Articulo::whereReqId($id)->get();
     $req_pdf = new Requisicion($req, $articulos);
     return response($req_pdf->crearPdf()->header('Content-Type', 'application/pdf'));
 }
Ejemplo n.º 14
0
 /**
  * Remove the specified resource from storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function destroy($id)
 {
     $oc = Oc::findOrFail($id);
     /**
      * @todo Enviar correo a Jefe de la Unidad de Presupuesto
      * @todo Eliminar archivos cargados
      */
     Articulo::where('oc_id', '=', $id)->update(['oc_id' => 0]);
     $req_id = $oc->req_id;
     $oc->delete();
     return redirect()->action('OcsController@index', $req_id)->with(['message' => 'Orden de Compra cancelada con éxito', 'alert-class' => 'alert-success']);
 }